All of lore.kernel.org
 help / color / mirror / Atom feed
From: Halil Pasic <pasic@linux.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Alexander Graf <agraf@suse.de>
Cc: Thomas Huth <thuth@redhat.com>,
	qemu-s390x@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] s390x/css: disabled subchannels cannot be status pending
Date: Fri, 4 May 2018 17:02:07 +0200	[thread overview]
Message-ID: <3597f256-cc9d-c1a2-9fa1-b8d2d1d3d3d7@linux.ibm.com> (raw)
In-Reply-To: <20180504131605.22816-1-cohuck@redhat.com>

Could we somehow get 'fix' or something similar into the title?

Also do we need cc stable for this? I guess this is broken
for a while now.

On 05/04/2018 03:16 PM, Cornelia Huck wrote:
> The 3270 code will try to post an attention interrupt when the
> 3270 emulator (e.g. x3270) attaches. If the guest has not yet
> enabled the subchannel for the 3270 device, we will give it a
> spurious status during msch when it does so later.

Maybe something like 'The spurious status will preclude the successful
execution of msch (e.g. when the guest later tries to enable
the subchannel).' I had difficulties getting your sentence right-away.

> 
> To fix this, just don't do anything in css_conditional_io_interrupt()
> if the subchannel is not enabled. The 3270 code will work fine with
> that, and the other user of this function (virtio-ccw) never
> attempts to post an interrupt for a disabled device to begin with.
> 

And I guess vfio-ccw is also unaffected, as the passed through
stuff is going to handle this correctly on the lower levels.

> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>

Overall I agree with the patch.

Acked-by: Halil Pasic <pasic@linux.ibm.com>

> ---
>   hw/s390x/css.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 301bf1772f..56c3fa8c89 100644
> --- a/hw/s390x/css.c
> +++ b/hw/s390x/css.c
> @@ -616,6 +616,14 @@ void css_inject_io_interrupt(SubchDev *sch)
>   
>   void css_conditional_io_interrupt(SubchDev *sch)

Loosely related:
What is the semantic difference between css_inject_io_interrupt and
this css_conditional_io_interrup? The css_conditional_io_interrupt
could be 'unsolicited' or 'virtio notification'. This function also
relies on the serialization of io instructions or?

Also there is this paragraph to be considered if this is indeed
about unsolicited:
"""
The subchannel and device status associated with
an unsolicited interruption condition is never merged
with that of any currently existing interruption condi-
tion. If the subchannel is currently status pending, the
unsolicited interruption condition is held in abeyance
in either the channel subsystem or the device, as
appropriate, until the status-pending condition has
been cleared.
"""


>   {
> +    /*
> +     * If the subchannel is not enabled, it is not made status pending
> +     * (see PoP p. 16-17, "Status Control").
> +     */

In not sure about the reference. We usually don't do that or? And the page
number may change. I would probably just drop the PoP reference.

> +    if (!(sch->curr_status.pmcw.flags & PMCW_FLAGS_MASK_ENA)) {
> +        return;
> +    }
> +

We don't have a scenario where the guest is expected to do some 'recovery'
after being educated about some condition by the means of an alert-status,
do we?

I also wonder if this is the right place to handle the problem. The
3870 also manipulates scsw.dstat before calling this. And I'm not sure
where/if is that cleared, or if it's OK to leave it set...

Regards,
Halil

  parent reply	other threads:[~2018-05-04 15:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-04 13:16 [Qemu-devel] [PATCH] s390x/css: disabled subchannels cannot be status pending Cornelia Huck
2018-05-04 13:39 ` Thomas Huth
2018-05-04 13:44   ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2018-05-04 15:02 ` Halil Pasic [this message]
2018-05-07 10:12   ` [Qemu-devel] " Cornelia Huck
2018-05-07 11:08     ` Halil Pasic
2018-05-07  8:41 ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
2018-05-08  9:55 ` [Qemu-devel] " 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=3597f256-cc9d-c1a2-9fa1-b8d2d1d3d3d7@linux.ibm.com \
    --to=pasic@linux.ibm.com \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=thuth@redhat.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 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.