From: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
kvm@vger.kernel.org, linux-s390@vger.kernel.org,
qemu-devel@nongnu.org, renxiaof@linux.vnet.ibm.com,
cornelia.huck@de.ibm.com, borntraeger@de.ibm.com, agraf@suse.com,
pmorel@linux.vnet.ibm.com, pasic@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH v4 14/16] docs: add documentation for vfio-ccw
Date: Wed, 22 Mar 2017 10:34:22 +0800 [thread overview]
Message-ID: <20170322023422.GP10704@bjsdjshi@linux.vnet.ibm.com> (raw)
In-Reply-To: <20170321124716.19f90fd6@t450s.home>
* Alex Williamson <alex.williamson@redhat.com> [2017-03-21 12:47:16 -0600]:
[...]
> > +vfio-ccw I/O region
> > +-------------------
> > +
> > +An I/O region is used to accept channel program request from user
> > +space and store I/O interrupt result for user space to retrieve. The
> > +defination of the region is:
> > +
> > +struct ccw_io_region {
> > +#define ORB_AREA_SIZE 12
> > + __u8 orb_area[ORB_AREA_SIZE];
> > +#define SCSW_AREA_SIZE 12
> > + __u8 scsw_area[SCSW_AREA_SIZE];
> > +#define IRB_AREA_SIZE 96
> > + __u8 irb_area[IRB_AREA_SIZE];
> > + __u32 ret_code;
> > +} __packed;
> > +
> > +While starting an I/O request, orb_area should be filled with the
> > +guest ORB, and scsw_area should be filled with the SCSW of the Virtual
> > +Subchannel.
> > +
> > +irb_area stores the I/O result.
> > +
> > +ret_code stores a return code for each access of the region.
Hi Alex,
>
> Pardon if these questions expose my lack of familiarity with S390:
>
> So I/O requests are asynchronous, the user is notified via interrupt
> when completed, can more than one request be queued at a time?
The answer is no. The subchannel will stay in a state that prohibiting
from a new request if there is processing for a previous request
ongoing. And we need to issue an explit I/O instruction to retrieve and
(or) clear the pending interruption before issue another I/O request.
> The communication format doesn't seem like it'd easily support that.
> Is it possible? A future enhancement that we should design for now?
As the above statements said, it's not possible.
>
> I'm also a little unclear what sort of I/O a user has access to via
> this interface and how the kernel polices that access. For instance,
> are multiple tape or disk devices available through a single I/O
> channel?
No. An I/O subchannel is dedicated to one device, and...
> How does the user configure which devices a user has access to when
> creating the vfio-ccw device?
...this mapping is usually determined/configured before the machine
startup by the administrtor of the upper level hypervisor. So when
creating the vfio-ccw device, we do not configure/modify this mapping.
When the guest I/O subchannel driver probing, it will issue a SENSE
command on the subchannel to recognize/find what kind of device is
behind the subchannel, and then it uses corresponding CCW device driver
serving the I/O device.
@Conny, please correct me if my understanding is not right.
>
> Otherwise I think the interface looks great. Thanks,
This is good news. :>
Thanks!
>
> Alex
>
--
Dong Jia Shi
next prev parent reply other threads:[~2017-03-22 2:34 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-17 3:17 [PATCH v4 00/16] basic vfio-ccw infrastructure Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 01/16] s390: cio: introduce cio_cancel_halt_clear Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 9:26 ` Sebastian Ott
2017-03-17 9:26 ` [Qemu-devel] " Sebastian Ott
2017-03-17 9:39 ` Dong Jia Shi
2017-03-17 9:51 ` Sebastian Ott
2017-03-17 9:51 ` [Qemu-devel] " Sebastian Ott
2017-03-20 1:16 ` Dong Jia Shi
2017-03-23 11:51 ` Sebastian Ott
2017-03-23 11:51 ` [Qemu-devel] " Sebastian Ott
2017-03-24 7:24 ` Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 02/16] s390: cio: export more interfaces Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 9:29 ` Sebastian Ott
2017-03-17 9:29 ` [Qemu-devel] " Sebastian Ott
2017-03-17 9:42 ` Dong Jia Shi
2017-03-23 12:02 ` Sebastian Ott
2017-03-23 12:02 ` [Qemu-devel] " Sebastian Ott
2017-03-24 1:04 ` Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 03/16] vfio: ccw: define device_api strings Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-21 18:47 ` Alex Williamson
2017-03-21 18:47 ` [Qemu-devel] " Alex Williamson
2017-03-17 3:17 ` [PATCH v4 04/16] vfio: ccw: basic implementation for vfio_ccw driver Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 05/16] vfio: ccw: introduce channel program interfaces Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 06/16] vfio: ccw: register vfio_ccw to the mediated device framework Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 07/16] vfio: ccw: introduce ccw_io_region Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 08/16] vfio: ccw: handle ccw command request Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 09/16] vfio: ccw: realize VFIO_DEVICE_GET_REGION_INFO ioctl Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-21 18:47 ` Alex Williamson
2017-03-21 18:47 ` [Qemu-devel] " Alex Williamson
2017-03-17 3:17 ` [PATCH v4 10/16] vfio: ccw: realize VFIO_DEVICE_RESET ioctl Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 11/16] vfio: ccw: realize VFIO_DEVICE_G(S)ET_IRQ_INFO ioctls Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-21 18:47 ` Alex Williamson
2017-03-21 18:47 ` [Qemu-devel] " Alex Williamson
2017-03-22 2:07 ` Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 12/16] vfio: ccw: return I/O results asynchronously Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 13/16] vfio: ccw: introduce a finite state machine Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 14/16] docs: add documentation for vfio-ccw Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-21 18:47 ` Alex Williamson
2017-03-21 18:47 ` [Qemu-devel] " Alex Williamson
2017-03-22 2:34 ` Dong Jia Shi [this message]
2017-03-28 8:16 ` Cornelia Huck
2017-03-28 8:16 ` [Qemu-devel] " Cornelia Huck
2017-03-28 8:49 ` Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 15/16] vfio: ccw: introduce support for ccw0 Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-17 3:17 ` [PATCH v4 16/16] MAINTAINERS: Add vfio-ccw maintainers Dong Jia Shi
2017-03-17 3:17 ` [Qemu-devel] " Dong Jia Shi
2017-03-28 8:20 ` [PATCH v4 00/16] basic vfio-ccw infrastructure Cornelia Huck
2017-03-28 8:20 ` [Qemu-devel] " Cornelia Huck
2017-03-28 8:39 ` Christian Borntraeger
2017-03-28 8:39 ` [Qemu-devel] " Christian Borntraeger
2017-03-28 8:39 ` Christian Borntraeger
2017-03-28 13:31 ` Cornelia Huck
2017-03-28 13:31 ` [Qemu-devel] " Cornelia Huck
2017-03-28 15:23 ` Alex Williamson
2017-03-28 15:23 ` [Qemu-devel] " Alex Williamson
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=20170322023422.GP10704@bjsdjshi@linux.vnet.ibm.com \
--to=bjsdjshi@linux.vnet.ibm.com \
--cc=agraf@suse.com \
--cc=alex.williamson@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=kvm@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=renxiaof@linux.vnet.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 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.