kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Halil Pasic <pasic@linux.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: linux-s390@vger.kernel.org, Eric Farman <farman@linux.ibm.com>,
	kvm@vger.kernel.org, Pierre Morel <pmorel@linux.ibm.com>,
	qemu-s390x@nongnu.org, Farhan Ali <alifm@linux.ibm.com>,
	qemu-devel@nongnu.org,
	Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [PATCH 0/3] vfio-ccw: support hsch/csch (kernel part)
Date: Tue, 4 Dec 2018 16:02:36 +0100	[thread overview]
Message-ID: <20181204160236.54de2784@oc2783563651> (raw)
In-Reply-To: <20181204141130.06496b9b.cohuck@redhat.com>

On Tue, 4 Dec 2018 14:11:30 +0100
Cornelia Huck <cohuck@redhat.com> wrote:

> On Tue, 4 Dec 2018 13:38:10 +0100
> Halil Pasic <pasic@linux.ibm.com> wrote:
> 
> > On Thu, 22 Nov 2018 17:54:29 +0100
> > Cornelia Huck <cohuck@redhat.com> wrote:
> > 
> > > [This is the Linux kernel part, git tree is available at
> > > https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/vfio-ccw.git vfio-ccw-caps
> > > 
> > > The companion QEMU patches are available at
> > > https://github.com/cohuck/qemu vfio-ccw-caps]
> > > 
> > > Currently, vfio-ccw only relays START SUBCHANNEL requests to the real
> > > device. This tends to work well for the most common 'good path' scenarios;
> > > however, as we emulate {HALT,CLEAR} SUBCHANNEL in QEMU, things like
> > > clearing pending requests at the device is currently not supported.
> > > This may be a problem for e.g. error recovery.  
> > 
> > I'm wondering: what about MODIFY SUBCHANNEL? Do we plan to add MSCH
> > as well or is it supposed to remain 'userspace emulated'? AFAIR MSCH
> > may have an effect on error recovery as well.
> 
> I think that would require a deeper change, as we have the requirement
> to enable the subchannel before handing it to userspace. IOW, the guest
> does not cause the subchannel to be enabled/disabled, but the host does.
> 

My point is, when the subchannel is disabled, 'firmware' is responsible
for suppressing interrupts and error conditions, and also for
doing the appropriate recovery procedure, so to say under the hood.

I think Jason has discovered some problems related to this while doing
his DASD IPL with vfio-ccw work, but I don't quite remember any more.

IMHO it may be possible to emulate enable/disable, but it seems way more
error prone and complicated, than letting the guest enable/disable the
host subchannel.

I have no idea what was the reason for going with the initial design.
I would appreciate any hints or explanations, but I'm well aware that it
was a long time ago.


> Parameters (like for channel measurements) are a different game. It is
> something we should look into, but it will need a different region.

Yes emulation only channel measurements seem even less likely than proper
enable/disable. And 'that would need a different' region helps me
understanding the scope of async_cmd_region. Maybe we should reconsider
the comment '+ * @cmd_region: MMIO region for asynchronous I/O commands
other than START'.

> 
> > BTW I would like to have the concurrency discussion sorted out before
> > I proceed with my review, because reviewing the stuff without a fair idea
> > of what exactly are we trying to achieve would yield poor results.
> 
> I'm not sure what is unclear about what we're trying to achieve (enable
> the guest to issue halt/clear on real hardware)?

Yeah, that is perfectly clear, but it ain't the complete story. E.g.
are subsequent commands blocking until the preceding command finishes
is part of the interface. And what is good implementation depends on the
answer. What I mean, I first need to understand how things are supposed
to work (together) so I can double check that against the
implementation. Otherwise all I can do is nitpicking.

To get more tangible: we are in the middle of processing an SSCH request
(e.g. doing the translation) when a HSCH comes in. What should happen?
Should we start processing HSCH after he instruction part of SSCH is
done -- which currently includes translation? Or should we -EBUSY? Or do
we abort START related activities and do the HALT stuff?


> 
> But yes, we need to sort out that concurrency thing; I'm currently
> unsure if the core should do some things as well or if it's more of a
> vendor-driver thing.
> 

By core you mean vfio-mdev core? If yes, I think it is a vendor-driver
thing: limiting concurrency for all vfio-mdev  does not make sense IMHO.

Regards,
Halil

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

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 16:54 [PATCH 0/3] vfio-ccw: support hsch/csch (kernel part) Cornelia Huck
2018-11-22 16:54 ` [PATCH 1/3] vfio-ccw: add capabilities chain Cornelia Huck
2018-11-23 12:28   ` Pierre Morel
2018-11-23 12:45     ` Cornelia Huck
2018-11-23 13:26       ` Pierre Morel
2018-11-27 19:04   ` Farhan Ali
2018-11-28  9:05     ` Cornelia Huck
2018-12-17 21:53   ` Eric Farman
2018-12-18 17:24     ` Cornelia Huck
2018-12-18 17:56       ` Eric Farman
2018-12-19 16:28       ` Alex Williamson
2018-12-21 11:12         ` Cornelia Huck
2018-11-22 16:54 ` [PATCH 2/3] s390/cio: export hsch to modules Cornelia Huck
2018-11-23 12:30   ` Pierre Morel
2018-11-22 16:54 ` [PATCH 3/3] vfio-ccw: add handling for asnyc channel instructions Cornelia Huck
2018-11-23 13:08   ` Pierre Morel
2018-11-26  9:47     ` Cornelia Huck
2018-11-27 19:09   ` Farhan Ali
2018-11-28  9:02     ` Cornelia Huck
2018-11-28 14:31       ` Farhan Ali
2018-11-28 14:52         ` Cornelia Huck
2018-11-28 15:00           ` Farhan Ali
2018-11-28 15:35             ` Cornelia Huck
2018-11-28 15:55               ` Farhan Ali
2019-01-18 13:53                 ` Cornelia Huck
2018-11-27 19:57   ` Farhan Ali
2018-11-28  8:41     ` Cornelia Huck
2018-11-28 16:36   ` [qemu-s390x] " Halil Pasic
2018-11-29 16:52     ` Cornelia Huck
2018-11-29 17:24       ` Halil Pasic
2018-12-17 21:54   ` Eric Farman
2018-12-18 16:45     ` Cornelia Huck
2018-11-24 21:07 ` [qemu-s390x] [PATCH 0/3] vfio-ccw: support hsch/csch (kernel part) Halil Pasic
2018-11-26  9:26   ` Cornelia Huck
2018-11-26 18:57 ` Farhan Ali
2018-11-26 19:00   ` Cornelia Huck
2018-12-04 12:38 ` Halil Pasic
2018-12-04 13:11   ` Cornelia Huck
2018-12-04 15:02     ` Halil Pasic [this message]
2018-12-05 12:54       ` Cornelia Huck
2018-12-05 18:34         ` Farhan Ali
2018-12-06 14:39           ` Cornelia Huck
2018-12-06 15:26             ` Farhan Ali
2018-12-06 16:21               ` Cornelia Huck
2018-12-06 17:50                 ` Farhan Ali
2018-12-07  9:34                   ` Cornelia Huck
2018-12-06 18:47         ` Halil Pasic
2018-12-07 10:05           ` Cornelia Huck
2018-12-07 15:49             ` Halil Pasic
2018-12-07 16:54             ` Halil Pasic
2018-12-19 11:54               ` Cornelia Huck
2018-12-19 14:17                 ` Halil Pasic
2018-12-21 11:23                   ` Cornelia Huck
2018-12-21 12:42                     ` Halil Pasic

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=20181204160236.54de2784@oc2783563651 \
    --to=pasic@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=alifm@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=farman@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=pmorel@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).