Bug 633469
Summary: | [6.1 FEAT] Enhance cio_ignore usage in scripts using new handler for pending work - installer part | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | IBM Bug Proxy <bugproxy> |
Component: | anaconda | Assignee: | David Cantrell <dcantrell> |
Status: | CLOSED ERRATA | QA Contact: | Release Test Team <release-test-team-automation> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 6.0 | CC: | dhorak, gmuelas, jjarvis, jstodola, maier, mgrf, nobody+PNT0273897, rwilliam, sbest |
Target Milestone: | beta | Keywords: | FutureFeature, Reopened |
Target Release: | 6.1 | ||
Hardware: | s390x | ||
OS: | All | ||
Whiteboard: | |||
Fixed In Version: | anaconda-13.21.111-1 | Doc Type: | Enhancement |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2011-05-19 12:50:17 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 631517, 631527, 633356 | ||
Bug Blocks: | 538808, 580566, 633862, 647893 |
Description
IBM Bug Proxy
2010-09-13 19:42:55 UTC
And what are the changes required to implement this? Hello, the changes needed to implement this feature are to use the kernel infrastructure (provided by RH Bug 631517) and the tool (provided by RH Bug 631527) in the installer to solve the issues workarounded with timeouts in RHEL 6.0. For more deatils, please read RH Bug 533494 comments #15 through #35, and get in contact with Dan Horak. Very simplified speaking this feature only exists of inserting a write into a sysfs file to reliably block right after each dynamic free of devices from cio_ignore (and before the already existing udevadm settle) inside linuxrc.s390. Should only be four occurrences. The cio_ignore handling in storage/zfcp.py already delegates to zfcp_cio_free (aka device_cio_free) of s390utils and works transparently as soon as s390utils are updated in RH bug 633356. ------- Comment From rsisk.com 2010-10-04 10:42 EDT------- Code Upstream Status: No Code Required ------- Comment From mgrf.com 2010-11-30 05:11 EDT------- Close this feature request as duplicate to 66875 - RHBZ 631527 - [6.1 FEAT] Provide userspace handle to wait for cio pending work - userspace The functionality could be implemented into s390tools (s390utils) only and get referred to during install and boot. The calls from installer and scripts already exist with RHEL6 (6.0 FEAT cio_ignore...) feature request. . So nothing to implement for the installer anymore. *** This bug has been marked as a duplicate of bug 66875 *** *** This bug has been marked as a duplicate of bug 631527 *** I was too fast closing this feature a DUP because there is still work to be done in linuxrc As mentioned by Steffen Maier in Comment #4 (RHBZ) (#7 LTC BZ) In anaconda's rhel6-branch, there are still the following usages of cio_ignore WITHOUT the necessary cio_settle in loader/linuxrc.s390. Those MUST be adapted to call the corresponding user space tool in order to transparently handle dynamic freeing from cio_ignore. # read file from CMS and write it to /tmp function readcmsfile() # $1=dasdport $2=filename { local dev if [ $# -ne 2 ]; then return; fi # precondition: udevd created dasda block device node if ! sysecho /proc/cio_ignore "free $1"; then echo $"DASD $1 could not be cleared from device blacklist" return 1 fi # /proc/cio_ignore won't block on freeing devices until resensing # has been completed, so wait until the udev event queue depletes # (without udevadm settle we could wait 2 seconds unconditionally) #debug ls -laF /dev/.udev udevadm settle # even though the device might now be online, some of its # sysfs attributes might not yet be available sleep 1 function dialog_network_table() { ... if [ "$choice" = "c" ]; then echo $"Clearing device blacklist..." if sysecho /proc/cio_ignore "free all"; then cio_wc_bytes=0 # /proc/cio_ignore won't block on freeing devices # until resensing has been completed, so wait until # the udev event queue depletes. # This may take a long time so we show "progress": #( while true; do echo -n "."; sleep 3; done ) & #local childpid=$! #debug ls -laF /dev/.udev udevadm settle function semantic_check_subchannels() { ... if [ ! -d "$dev_p" -a "$cio_wc_bytes" != "0" ]; then # - try to free from /proc/cio_ignore if they don't exist echo $"Device $devbusid not present, trying to clear from blacklist\ and resense..." if sysecho /proc/cio_ignore "free $devbusid"; then # /proc/cio_ignore won't block on freeing devices # until resensing has been completed, so wait until # the udev event queue depletes (without udevadm settle we # could wait 2 seconds unconditionally) #debug ls -laF /dev/.udev udevadm settle # even though the device might now be online, some of its # sysfs attributes (e.g. cutype) might not yet be available sleep 1 ### MAIN ### ... if sysecho /proc/cio_ignore "free $CD_DEVICE"; then udevadm settle # even though device might now be online, some of its # sysfs attributes might not yet be available sleep 1 That is, there is some code in linuxrc which should be using the "*_cio_free" functions implemented in s390utils, which will get updated to use the new handler. There is still one place in linuxrc that is not fixed: function semantic_check_subchannels() { ... if [ ! -d "$dev_p" -a "$cio_wc_bytes" != "0" ]; then # - try to free from /proc/cio_ignore if they don't exist echo $"Device $devbusid not present, trying to clear from blacklist and resense..." if sysecho /proc/cio_ignore "free $devbusid"; then # /proc/cio_ignore won't block on freeing devices # until resensing has been completed, so wait until # the udev event queue depletes (without udevadm settle we # could wait 2 seconds unconditionally) #debug ls -laF /dev/.udev udevadm settle # even though the device might now be online, some of its # sysfs attributes (e.g. cutype) might not yet be available sleep 1 else echo $"Device $devbusid could not be cleared from device blacklist" fi fi ... Tested with anaconda-13.21.108 Moving back to ASSIGNED This fix is approved and planned for inclusion in snapshot 3. There is no direct write into /proc/cio_ignore in anaconda-13.21.111 source code, build RHEL6.1-20110406.0. Moving to VERIFIED. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2011-0530.html |