Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 594031 - zipl handles only 896 characters of kernel parameters in /etc/zipl.conf
zipl handles only 896 characters of kernel parameters in /etc/zipl.conf
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: s390utils (Show other bugs)
6.0
s390x Linux
medium Severity medium
: rc
: ---
Assigned To: Dan Horák
qe-baseos-daemons
:
Depends On:
Blocks: 582286
  Show dependency treegraph
 
Reported: 2010-05-20 07:50 EDT by Jan Stodola
Modified: 2010-07-02 15:50 EDT (History)
3 users (show)

See Also:
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 15:50:18 EDT
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 07:50 EDT, Jan Stodola
no flags Details
check the lenght of the parameters line (1.51 KB, patch)
2010-05-20 10:44 EDT, Dan Horák
no flags Details | Diff

  None (edit)
Description Jan Stodola 2010-05-20 07:50:14 EDT
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 08:06:39 EDT
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 08:57:01 EDT
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 10:44:01 EDT
Created attachment 415439 [details]
check the lenght of the parameters line
Comment 4 Dan Horák 2010-05-20 11:02:00 EDT
patch applied to s390utils-1.8.2-24.el6
Comment 5 Hendrik Brueckner 2010-05-21 03:40:42 EDT
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 03:13:35 EDT
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 04:24:10 EDT
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 15:50:18 EDT
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.