Bug 594031 - zipl handles only 896 characters of kernel parameters in /etc/zipl.conf
Summary: zipl handles only 896 characters of kernel parameters in /etc/zipl.conf
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: s390utils (Show other bugs)
(Show other bugs)
Version: 6.0
Hardware: s390x Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Dan Horák
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Keywords:
Depends On:
Blocks: 582286
TreeView+ depends on / blocked
 
Reported: 2010-05-20 11:50 UTC by Jan Stodola
Modified: 2010-07-02 19:50 UTC (History)
3 users (show)

Fixed In Version: s390utils-1.8.2-24.el6
Doc Type: Bug Fix
Doc Text:
There is a limitation in the maximum size of arguments passed to the kernel during boot on the s390(x) architecture to 896 bytes/characters. It comes from the design of the bootloader on that platform and as such it can't be changed. Users must be careful when preparing the kernel parameters, because the zipl utility will throw an error when the limit is exceeded.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-07-02 19:50:18 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
zipl -V and return value (2.39 KB, text/plain)
2010-05-20 11:50 UTC, Jan Stodola
no flags Details
check the lenght of the parameters line (1.51 KB, patch)
2010-05-20 14:44 UTC, Dan Horák
no flags Details | Diff

Description Jan Stodola 2010-05-20 11:50:14 UTC
Created attachment 415393 [details]
zipl -V and return value

Description of problem:
System has a problem to boot if user specify kernel command line longer than 896 characters in /etc/zipl.conf. For example, system with following zipl.conf doesn't boot:

[defaultboot]
default=linux
target=/boot/
[linux]
        image=/boot/vmlinuz-2.6.32-25.el6.s390x
        ramdisk=/boot/initramfs-2.6.32-25.el6.s390x.img
        parameters="root=/dev/mapper/vg_rtt4-lv_root rd_DASD=0.0.3024,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3124,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3224,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3324,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3424,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3524,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3624,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3724,use_diag=0,readonly=0,erplog=0,failfast=0 rd_LUKS_UUID=luks-32ba8fea-d163-4a08-a9b4-9316eeaf4c9b rd_LUKS_UUID=luks-33424f70-51fb-47f4-bd29-5506e11a678a rd_LUKS_UUID=luks-38aee7a5-c0c3-400b-b5c6-583c66d33518 rd_LUKS_UUID=luks-5996c36f-7ac7-40a8-bd25-847814052979 rd_LUKS_UUID=luks-a6f89daa-848e-4c74-b041-c48db20817ea rd_LUKS_UUID=luks-a948edf2-f22b-4444-99c4-d7860795d3cf rd_LUKS_UUID=luks-ab8e2298-331d-47e2-a6f1-228eb73e2c18 rd_LUKS_UUID=luks-b13cf47e-5e4d-485b-8834-d2a7a8c9b9d2 rd_LVM_LV=vg_rtt4/lv_root rd_LVM_LV=vg_rtt4/lv_swap rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!0.0.0009 crashkernel=auto"

boot messages:
...
Kernel command line: root=/dev/mapper/vg_rtt4-lv_root rd_DASD=0.0.3024,use_diag=
0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3124,use_diag=0,readonly=0,erplog=0
,failfast=0 rd_DASD=0.0.3224,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0
.0.3324,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3424,use_diag=0,re
adonly=0,erplog=0,failfast=0 rd_DASD=0.0.3524,use_diag=0,readonly=0,erplog=0,fai
lfast=0 rd_DASD=0.0.3624,use_diag=0,readonly=0,erplog=0,failfast=0 rd_DASD=0.0.3
724,use_diag=0,readonly=0,erplog=0,failfast=0 rd_LUKS_UUID=luks-32ba8fea-d163-4a
08-a9b4-9316eeaf4c9b rd_LUKS_UUID=luks-33424f70-51fb-47f4-bd29-5506e11a678a rd_L
UKS_UUID=luks-38aee7a5-c0c3-400b-b5c6-583c66d33518 rd_LUKS_UUID=luks-5996c36f-7a
c7-40a8-bd25-847814052979 rd_LUKS_UUID=luks-a6f89daa-848e-4c74-b041-c48db20817ea
 rd_LUKS_UUID=luks-a948edf2-f22b-4444-99c4-d7860795d3cf rd_LUKS_UUID=luks-ab8e22
98-331d-47e2-a6f1-228eb73e2c18 rd_LU 
...


Version-Release number of selected component (if applicable):
RHEL6.0-20100512.0
s390utils-1.8.2-22.el6

How reproducible:
always

Steps to Reproduce:
1. run graphical installation with 8 (or more) DASD disks, use encryption and use autopartitioning. 
2. reboot when installation is finished
  
Actual results:
* system doesn't boot, kernel command line (/proc/cmdline) is not complete
* when user runs zipl command, return value is 0 even when the kernel command line is longer than zipl kernel command line length limitation.

Expected results:
* zipl can write whole kernel command line specified in /etc/zipl.conf
* if the command line is longer than max limit, zipl has to return with non-zero status

Comment 1 RHEL Product and Program Management 2010-05-20 12:06:39 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 2 Dan Horák 2010-05-20 12:57:01 UTC
The core of this issue must be discussed with IBM to clear what are the reasons for the 896B limit.
The RHEL package can implement the size check and return non-zero code if the parameters line is too long.

Comment 3 Dan Horák 2010-05-20 14:44:01 UTC
Created attachment 415439 [details]
check the lenght of the parameters line

Comment 4 Dan Horák 2010-05-20 15:02:00 UTC
patch applied to s390utils-1.8.2-24.el6

Comment 5 Hendrik Brueckner 2010-05-21 07:40:42 UTC
Hi Dan,

(In reply to comment #2)
> The core of this issue must be discussed with IBM to clear what are the reasons
> for the 896B limit.

The limit of 896 bytes is an s390(x) arch specific setting. There a fixed memory address to which the command line must be loaded (0x10480) and it must not exceed the given limit.  In general, the 0x10xxx memory is a also reserved and used by other IPL related information.

Comment 7 Jan Stodola 2010-05-28 07:13:35 UTC
retested with s390utils-1.8.2-24.el6, build RHEL6.0-20100527.2:

# /sbin/zipl 
Using config file '/etc/zipl.conf'
Error: The length of parameters line (1185 bytes) exceeds the allowed maximum (896 bytes)
# echo $?
1

In case of installation, anaconda displays warning message:

There was an error installing the bootloader.
The system may not be bootable.


Moving to VERIFIED and requesting release note to document the 896 bytes limit.

Comment 8 Dan Horák 2010-06-03 08:24:10 UTC
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.

New Contents:
There is a limitation in the maximum size of arguments passed to the kernel during boot on the s390(x) architecture to 896 bytes/characters. It comes from the design of the bootloader on that platform and as such it can't be changed. Users must be careful when preparing the kernel parameters, because the zipl utility will throw an error when the limit is exceeded.

Comment 12 releng-rhel@redhat.com 2010-07-02 19:50:18 UTC
Red Hat Enterprise Linux Beta 2 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.


Note You need to log in before you can comment on or make changes to this bug.