From: Cornelia Huck <cohuck@redhat.com>
To: Peter Oberparleiter <oberpar@linux.ibm.com>,
Vineeth Vijayan <vneethv@linux.ibm.com>
Cc: linux-s390@vger.kernel.org, Eric Farman <farman@linux.ibm.com>,
Halil Pasic <pasic@linux.ibm.com>,
Boris Fiuczynski <fiuczy@linux.ibm.com>
Subject: [RFD] uevent handling for subchannels
Date: Fri, 3 Apr 2020 12:40:32 +0200 [thread overview]
Message-ID: <20200403124032.5e70603d.cohuck@redhat.com> (raw)
Hi,
this is kind-of-a-followup to the uevent patches I sent in
<20200327124503.9794-1-cohuck@redhat.com> last Friday.
Currently, the common I/O layer will suppress uevents for subchannels
that are being registered, delegating generating a delayed ADD uevent
to the driver that actually binds to it and only generating the uevent
itself if no driver gets bound. The initial version of that delaying
was introduced in fa1a8c23eb7d ("s390: cio: Delay uevents for
subchannels"); from what I remember, we were seeing quite bad storms of
uevents on LPARs that had a lot of I/O subchannels with no device
accessible through them.
So while there's definitely a good reason for wanting to delay uevents,
it is also introducing problems. One is udev rules for subchannels that
are supposed to do something before a driver binds (e.g. setting
driver_override to bind an I/O subchannel to vfio_ccw instead of
io_subchannel) are not effective, as the ADD uevent will only be
generated when the io_subchannel driver is already done with doing all
setup. Another one is that only the ADD uevent is generated after
uevent suppression is lifted; any other uevents that might have been
generated are lost.
So, what to do about this, especially in the light of vfio-ccw handling?
One idea I had is to call css_sch_is_valid() from
css_register_subchannel(); this would exclude the largest class of
non-operational subchannels already (those that don't have a valid
device; I'm not quite sure if there's also something needed for EADM
subchannels?) If we got rid of the uevent delaying, we would still get
ADD/REMOVE events for subchannels where the device turns out to be
non-accessible, but I believe (hope) that those are not too many in a
sane system at least. As a bonus, we could also add additional values
from the pmcw to the uevent; the device number, for example, could be
helpful for vfio-ccw matching rules.
A drawback is that we change the timing (not the sequence, AFAICS) of
the uevents, which might break brittle setups.
Thoughts?
next reply other threads:[~2020-04-03 10:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-03 10:40 Cornelia Huck [this message]
2020-04-17 12:38 ` [RFD] uevent handling for subchannels Cornelia Huck
2020-04-20 15:29 ` Vineeth Vijayan
2020-04-23 14:52 ` Vineeth Vijayan
2020-04-23 16:20 ` Cornelia Huck
2020-04-27 10:10 ` Peter Oberparleiter
2020-04-30 10:43 ` Cornelia Huck
2020-06-29 11:56 ` Cornelia Huck
2020-07-01 9:23 ` Cornelia Huck
2020-09-14 11:46 ` Cornelia Huck
2020-09-15 10:25 ` Vineeth Vijayan
2020-09-15 10:31 ` Cornelia Huck
2020-04-23 15:55 ` Halil Pasic
2020-04-23 16:27 ` Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200403124032.5e70603d.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=farman@linux.ibm.com \
--cc=fiuczy@linux.ibm.com \
--cc=linux-s390@vger.kernel.org \
--cc=oberpar@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=vneethv@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox