From: Cornelia Huck <cohuck@redhat.com>
To: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, borntraeger@de.ibm.com, agraf@suse.de,
rth@twiddle.net, pasic@linux.vnet.ibm.com,
pmorel@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 3/3] s390x/css: generate channel path initialized CRW for channel path hotplug
Date: Thu, 27 Jul 2017 13:59:10 +0200 [thread overview]
Message-ID: <20170727135910.27d9e42e@gondolin> (raw)
In-Reply-To: <20170727015418.85407-4-bjsdjshi@linux.vnet.ibm.com>
On Thu, 27 Jul 2017 03:54:18 +0200
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> When a channel path is hot plugged into a CSS, we should generate
> a channel path initialized CRW (channel report word). The current
> code does not do that, instead it puts a stub function with a TODO
> reminder there.
>
> This implements the css_generate_chp_crws() function by:
> 1. refactor the existing code.
> 2. add an @add parameter to provide future callers with the
> capability of generating channel path permanent error with
> facility not initialized CRW.
> 3. add a @hotplugged parameter, so to opt out generating initialized
> CRWs for predefined channel paths.
I'm not 100% sure whether the logic is correct here. Let me elaborate:
The current code flow when hotplugging a device is:
- Generate the schib.
- Check if any of the chpids refers to a not yet existing channel path;
generate it if that is the case.
- Post a crw for the subchannel.
The second step is where the current code seems to be not quite correct
already. It is fine for coldplugged devices, but I really think we need
to make sure that all referenced channel paths are in place before we
hotplug a new device. It was not really relevant when we just had one
very virtual channel path, and 3270 is experimental so it is not a
problem in practice.
This, of course, implies we need deeper changes. We need to create the
channel paths before the subchannel is created and refuse hotplug of a
device if not all channel paths it needs are defined. This means we
need some things before we can claim real channel path support:
- Have a way to specify channel paths on the command line resp. when
hotplugging. This implies they need to be real objects.
- Have a way to specify which channel paths belong to a subchannel in
the same context. Keep existing device types working with the current
method.
- Give channel paths states: Defined, configured. The right time for a
CRW is the transition between those states.
- Only queue a 'device come' CRW for a subchannel if at least one of
its channel paths is in the configured state. Detach or make not
operational a subchannel if all of its paths are deconfigured.
Something along those lines also matches better what I've seen on z/VM
or LPAR. I realize that it's not easy :(
tl;dr: I don't think we want chp crws until after we have a good chp
model.
>
> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> ---
> hw/s390x/3270-ccw.c | 3 ++-
> hw/s390x/css.c | 55 ++++++++++++++++++++++++++++++++++++-----------
> hw/s390x/s390-ccw.c | 2 +-
> hw/s390x/virtio-ccw.c | 3 ++-
> include/hw/s390x/css.h | 8 ++++---
> include/hw/s390x/ioinst.h | 1 +
> 6 files changed, 53 insertions(+), 19 deletions(-)
next prev parent reply other threads:[~2017-07-27 11:59 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-27 1:54 [Qemu-devel] [PATCH 0/3] Channel Path realted CRW generation Dong Jia Shi
2017-07-27 1:54 ` [Qemu-devel] [PATCH 1/3] s390x/css: use macro for event-information pending error recover code Dong Jia Shi
2017-07-27 10:10 ` Cornelia Huck
2017-07-28 7:12 ` Dong Jia Shi
2017-07-28 7:26 ` Cornelia Huck
2017-07-27 1:54 ` [Qemu-devel] [PATCH 2/3] s390x/css: generate solicited crw for rchp completion signaling Dong Jia Shi
2017-07-27 11:22 ` Cornelia Huck
2017-07-28 7:25 ` Dong Jia Shi
2017-07-28 7:29 ` Cornelia Huck
2017-07-27 1:54 ` [Qemu-devel] [PATCH 3/3] s390x/css: generate channel path initialized CRW for channel path hotplug Dong Jia Shi
2017-07-27 11:59 ` Cornelia Huck [this message]
2017-07-27 13:37 ` Halil Pasic
2017-07-27 14:14 ` Cornelia Huck
2017-07-27 16:15 ` Halil Pasic
2017-07-28 10:11 ` Cornelia Huck
2017-07-28 12:32 ` Halil Pasic
2017-07-28 12:58 ` Cornelia Huck
2017-07-28 14:29 ` Halil Pasic
2017-07-31 8:26 ` Cornelia Huck
2017-07-31 1:46 ` Dong Jia Shi
2017-07-31 8:41 ` Cornelia Huck
2017-08-01 1:23 ` Dong Jia Shi
2017-07-31 3:51 ` Dong Jia Shi
2017-07-31 11:13 ` Cornelia Huck
2017-07-31 12:30 ` Halil Pasic
2017-08-01 2:02 ` Dong Jia Shi
2017-08-01 2:29 ` Dong Jia Shi
2017-08-01 7:24 ` Cornelia Huck
2017-08-01 7:57 ` Dong Jia Shi
2017-07-27 9:46 ` [Qemu-devel] [PATCH 0/3] Channel Path realted CRW generation Cornelia Huck
2017-07-28 9:21 ` Dong Jia Shi
2017-07-28 11:53 ` Cornelia Huck
2017-07-28 15:50 ` Dong Jia Shi
2017-07-31 8:54 ` Cornelia Huck
2017-08-01 2:12 ` Dong Jia Shi
2017-08-01 7:19 ` 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=20170727135910.27d9e42e@gondolin \
--to=cohuck@redhat.com \
--cc=agraf@suse.de \
--cc=bjsdjshi@linux.vnet.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.