From: Cornelia Huck <cohuck@redhat.com>
To: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
kvm@vger.kernel.org, qemu-devel@nongnu.org,
qemu-s390x@nongnu.org, borntraeger@de.ibm.com,
pasic@linux.vnet.ibm.com, pmorel@linux.vnet.ibm.com
Subject: Re: [RFC PATCH 1/3] vfio: ccw: introduce schib region
Date: Thu, 11 Jan 2018 15:16:59 +0100 [thread overview]
Message-ID: <20180111151659.2d997abf.cohuck@redhat.com> (raw)
In-Reply-To: <20180111030421.31418-2-bjsdjshi@linux.vnet.ibm.com>
On Thu, 11 Jan 2018 04:04:19 +0100
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> This introduces a new region for vfio-ccw to provide subchannel
> information for user space.
>
> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> ---
> drivers/s390/cio/vfio_ccw_fsm.c | 21 ++++++++++
> drivers/s390/cio/vfio_ccw_ops.c | 79 +++++++++++++++++++++++++++----------
> drivers/s390/cio/vfio_ccw_private.h | 3 ++
> include/uapi/linux/vfio.h | 1 +
> include/uapi/linux/vfio_ccw.h | 6 +++
> 5 files changed, 90 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/s390/cio/vfio_ccw_fsm.c b/drivers/s390/cio/vfio_ccw_fsm.c
> index c30420c517b1..be081ccabea3 100644
> --- a/drivers/s390/cio/vfio_ccw_fsm.c
> +++ b/drivers/s390/cio/vfio_ccw_fsm.c
> @@ -172,6 +172,22 @@ static void fsm_irq(struct vfio_ccw_private *private,
> complete(private->completion);
> }
>
> +static void fsm_update_subch(struct vfio_ccw_private *private,
> + enum vfio_ccw_event event)
> +{
> + struct subchannel *sch;
> +
> + sch = private->sch;
> + if (cio_update_schib(sch)) {
This implies device gone. Do we also want to trigger some event, or
just wait until a machine check comes around and we're notified in the
normal way? (Probably the latter.)
> + private->schib_region.cc = 3;
> + return;
> + }
> +
> + private->schib_region.cc = 0;
> + memcpy(private->schib_region.schib_area, &sch->schib,
> + sizeof(sch->schib));
We might want to add documentation that schib_area contains the schib
from the last successful invocation of stsch (if any). That makes sense
as the schib remains unchanged for cc=3 after stsch anyway, but it
can't hurt to spell it out.
> +}
> +
> /*
> * Device statemachine
> */
> @@ -180,25 +196,30 @@ fsm_func_t *vfio_ccw_jumptable[NR_VFIO_CCW_STATES][NR_VFIO_CCW_EVENTS] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_nop,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_error,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_disabled_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_STANDBY] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_error,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_IDLE] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_request,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_BOXED] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_busy,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_BUSY] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_busy,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
Does it makes to trigger this through the state machine if we always do
the same action and never change state?
> },
> };
Else, looks good.
WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
kvm@vger.kernel.org, qemu-devel@nongnu.org,
qemu-s390x@nongnu.org, borntraeger@de.ibm.com,
pasic@linux.vnet.ibm.com, pmorel@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [RFC PATCH 1/3] vfio: ccw: introduce schib region
Date: Thu, 11 Jan 2018 15:16:59 +0100 [thread overview]
Message-ID: <20180111151659.2d997abf.cohuck@redhat.com> (raw)
In-Reply-To: <20180111030421.31418-2-bjsdjshi@linux.vnet.ibm.com>
On Thu, 11 Jan 2018 04:04:19 +0100
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> This introduces a new region for vfio-ccw to provide subchannel
> information for user space.
>
> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> ---
> drivers/s390/cio/vfio_ccw_fsm.c | 21 ++++++++++
> drivers/s390/cio/vfio_ccw_ops.c | 79 +++++++++++++++++++++++++++----------
> drivers/s390/cio/vfio_ccw_private.h | 3 ++
> include/uapi/linux/vfio.h | 1 +
> include/uapi/linux/vfio_ccw.h | 6 +++
> 5 files changed, 90 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/s390/cio/vfio_ccw_fsm.c b/drivers/s390/cio/vfio_ccw_fsm.c
> index c30420c517b1..be081ccabea3 100644
> --- a/drivers/s390/cio/vfio_ccw_fsm.c
> +++ b/drivers/s390/cio/vfio_ccw_fsm.c
> @@ -172,6 +172,22 @@ static void fsm_irq(struct vfio_ccw_private *private,
> complete(private->completion);
> }
>
> +static void fsm_update_subch(struct vfio_ccw_private *private,
> + enum vfio_ccw_event event)
> +{
> + struct subchannel *sch;
> +
> + sch = private->sch;
> + if (cio_update_schib(sch)) {
This implies device gone. Do we also want to trigger some event, or
just wait until a machine check comes around and we're notified in the
normal way? (Probably the latter.)
> + private->schib_region.cc = 3;
> + return;
> + }
> +
> + private->schib_region.cc = 0;
> + memcpy(private->schib_region.schib_area, &sch->schib,
> + sizeof(sch->schib));
We might want to add documentation that schib_area contains the schib
from the last successful invocation of stsch (if any). That makes sense
as the schib remains unchanged for cc=3 after stsch anyway, but it
can't hurt to spell it out.
> +}
> +
> /*
> * Device statemachine
> */
> @@ -180,25 +196,30 @@ fsm_func_t *vfio_ccw_jumptable[NR_VFIO_CCW_STATES][NR_VFIO_CCW_EVENTS] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_nop,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_error,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_disabled_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_STANDBY] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_error,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_IDLE] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_request,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_BOXED] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_busy,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
> },
> [VFIO_CCW_STATE_BUSY] = {
> [VFIO_CCW_EVENT_NOT_OPER] = fsm_notoper,
> [VFIO_CCW_EVENT_IO_REQ] = fsm_io_busy,
> [VFIO_CCW_EVENT_INTERRUPT] = fsm_irq,
> + [VFIO_CCW_EVENT_UPDATE_SUBCH] = fsm_update_subch,
Does it makes to trigger this through the state machine if we always do
the same action and never change state?
> },
> };
Else, looks good.
next prev parent reply other threads:[~2018-01-11 14:16 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-11 3:04 [RFC PATCH 0/3] vfio: ccw: basic channel path event handling Dong Jia Shi
2018-01-11 3:04 ` [Qemu-devel] " Dong Jia Shi
2018-01-11 3:04 ` [RFC PATCH 1/3] vfio: ccw: introduce schib region Dong Jia Shi
2018-01-11 3:04 ` [Qemu-devel] " Dong Jia Shi
2018-01-11 14:16 ` Cornelia Huck [this message]
2018-01-11 14:16 ` Cornelia Huck
2018-01-15 6:43 ` Dong Jia Shi
2018-01-15 10:24 ` Cornelia Huck
2018-01-15 10:24 ` [Qemu-devel] " Cornelia Huck
2018-01-15 9:50 ` Pierre Morel
2018-01-15 9:50 ` [Qemu-devel] " Pierre Morel
2018-01-15 12:24 ` Cornelia Huck
2018-01-15 12:24 ` [Qemu-devel] " Cornelia Huck
2018-01-16 3:03 ` Dong Jia Shi
2018-01-11 3:04 ` [RFC PATCH 2/3] vfio: ccw: introduce channel path irq Dong Jia Shi
2018-01-11 3:04 ` [Qemu-devel] " Dong Jia Shi
2018-01-11 3:04 ` [RFC PATCH 3/3] vfio: ccw: handle chp event Dong Jia Shi
2018-01-11 3:04 ` [Qemu-devel] " Dong Jia Shi
2018-01-11 10:54 ` [RFC PATCH 0/3] vfio: ccw: basic channel path event handling Cornelia Huck
2018-01-11 10:54 ` [Qemu-devel] " Cornelia Huck
2018-01-15 8:57 ` Dong Jia Shi
2018-01-15 10:21 ` Pierre Morel
2018-01-15 10:21 ` [Qemu-devel] " Pierre Morel
2018-01-16 3:16 ` Dong Jia Shi
2018-01-16 15:53 ` Cornelia Huck
2018-01-16 15:53 ` [Qemu-devel] " Cornelia Huck
2018-01-12 18:10 ` Halil Pasic
2018-01-15 8:59 ` Dong Jia Shi
2018-01-16 15:57 ` Halil Pasic
2018-01-23 6:23 ` Dong Jia Shi
2018-01-25 11:12 ` Cornelia Huck
2018-01-25 12:56 ` Halil Pasic
2018-01-25 12:56 ` Halil Pasic
2018-01-30 3:37 ` Dong Jia Shi
2018-01-30 3:44 ` Dong Jia Shi
2018-01-30 3:44 ` Dong Jia Shi
2018-01-30 5:27 ` [Qemu-devel] " Dong Jia Shi
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=20180111151659.2d997abf.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=bjsdjshi@linux.vnet.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.vnet.ibm.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
/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.