qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Neo Jia <cjia@nvidia.com>
To: Dong Jia <bjsdjshi@linux.vnet.ibm.com>
Cc: Kirti Wankhede <kwankhede@nvidia.com>,
	alex.williamson@redhat.com, pbonzini@redhat.com,
	kraxel@redhat.com, qemu-devel@nongnu.org, kvm@vger.kernel.org,
	kevin.tian@intel.com, shuai.ruan@intel.com, jike.song@intel.com,
	zhiyuan.lv@intel.com
Subject: Re: [Qemu-devel] [RFC PATCH v4 1/3] Mediated device Core driver
Date: Sun, 5 Jun 2016 23:27:42 -0700	[thread overview]
Message-ID: <20160606062742.GA31747@nvidia.com> (raw)
In-Reply-To: <20160606140148.31ec05f9@oc7835276234>

On Mon, Jun 06, 2016 at 02:01:48PM +0800, Dong Jia wrote:
> On Mon, 6 Jun 2016 10:57:49 +0530
> Kirti Wankhede <kwankhede@nvidia.com> wrote:
> 
> > 
> > 
> > On 6/3/2016 2:27 PM, Dong Jia wrote:
> > > On Wed, 25 May 2016 01:28:15 +0530
> > > Kirti Wankhede <kwankhede@nvidia.com> wrote:
> > > 
> > > 
> > > ...snip...
> > > 
> > >> +struct phy_device_ops {
> > >> +	struct module   *owner;
> > >> +	const struct attribute_group **dev_attr_groups;
> > >> +	const struct attribute_group **mdev_attr_groups;
> > >> +
> > >> +	int	(*supported_config)(struct device *dev, char *config);
> > >> +	int     (*create)(struct device *dev, uuid_le uuid,
> > >> +			  uint32_t instance, char *mdev_params);
> > >> +	int     (*destroy)(struct device *dev, uuid_le uuid,
> > >> +			   uint32_t instance);
> > >> +	int     (*start)(uuid_le uuid);
> > >> +	int     (*shutdown)(uuid_le uuid);
> > >> +	ssize_t (*read)(struct mdev_device *vdev, char *buf, size_t count,
> > >> +			enum mdev_emul_space address_space, loff_t pos);
> > >> +	ssize_t (*write)(struct mdev_device *vdev, char *buf, size_t count,
> > >> +			 enum mdev_emul_space address_space, loff_t pos);
> > >> +	int     (*set_irqs)(struct mdev_device *vdev, uint32_t flags,
> > >> +			    unsigned int index, unsigned int start,
> > >> +			    unsigned int count, void *data);
> > >> +	int	(*get_region_info)(struct mdev_device *vdev, int region_index,
> > >> +				 struct pci_region_info *region_info);
> > >> +	int	(*validate_map_request)(struct mdev_device *vdev,
> > >> +					unsigned long virtaddr,
> > >> +					unsigned long *pfn, unsigned long *size,
> > >> +					pgprot_t *prot);
> > >> +};
> > > 
> > > Dear Kirti:
> > > 
> > > When I rebased my vfio-ccw patches on this series, I found I need an
> > > extra 'ioctl' callback in phy_device_ops.
> > > 
> > 
> > Thanks for taking closer look. As per my knowledge ccw is not PCI
> > device, right? Correct me if I'm wrong.
> Dear Kirti:
> 
> You are right. CCW is different to PCI. The official term is 'Channel
> I/O device'. They use 'Channels' (co-processors) and CCWs (channel
> command words) to handle I/O operations.
> 
> > I'm curious to know. Are you planning to write a driver (vfio-mccw) for
> > mediated ccw device?
> I wrote two drivers:
> 1. A vfio-pccw driver for the physical ccw device, which will reigister
> the device and callbacks to mdev framework. With this, I could create
> a mediated ccw device for the physical one then.
> 2. A vfio-mccw driver for the mediated ccw device, which will add
> itself to a vfio_group, mimiced what vfio-mpci did.
> 
> The problem is, vfio-mccw need to implement new ioctls besides the
> existing ones (VFIO_DEVICE_GET_INFO, etc). And these ioctls really need
> the physical device help to handle.

Hi Dong,

Could you please help us understand a bit more about the new VFIO ioctl? Since it is
a new ioctl it is send down by QEMU in this case right? More details?

Thanks,
Neo

> 
> > 
> > Thanks,
> > Kirti
> > 
> > > The ccw physical device only supports one ccw mediated device. And I
> > > have two new ioctl commands for the ccw mediated device. One is 
> > > to hot-reset the resource in the physical device that allocated for
> > > the mediated device, the other is to do an I/O instruction translation
> > > and perform an I/O operation on the physical device. I found the
> > > existing callbacks could not meet my requirements.
> > > 
> > > Something like the following would be fine for my case:
> > > 	int (*ioctl)(struct mdev_device *vdev,
> > > 		     unsigned int cmd,
> > > 		     unsigned long arg);
> > > 
> > > What do you think about this?
> > > 
> > > --------
> > > Dong Jia
> > > 
> > 
> 
> --------
> Dong Jia
> 

  reply	other threads:[~2016-06-06  6:27 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-24 19:58 [Qemu-devel] [RFC PATCH v4 0/3] Add Mediated device support[was: Add vGPU support] Kirti Wankhede
2016-05-24 19:58 ` [Qemu-devel] [RFC PATCH v4 1/3] Mediated device Core driver Kirti Wankhede
2016-05-25  7:55   ` Tian, Kevin
2016-05-25 14:47     ` Kirti Wankhede
2016-05-27  9:00       ` Tian, Kevin
2016-05-25 22:39   ` Alex Williamson
2016-05-26  9:03     ` Kirti Wankhede
2016-05-26 14:06       ` Alex Williamson
2016-06-03  8:57   ` Dong Jia
2016-06-03  9:40     ` Tian, Kevin
2016-06-06  2:24       ` Dong Jia
2016-06-06  5:27     ` Kirti Wankhede
2016-06-06  6:01       ` Dong Jia
2016-06-06  6:27         ` Neo Jia [this message]
2016-06-06  8:29           ` Dong Jia
2016-06-06 17:44             ` Neo Jia
2016-06-06 19:31               ` Alex Williamson
2016-06-07  3:03                 ` Tian, Kevin
2016-06-07 22:42                   ` Alex Williamson
2016-06-08  1:18                     ` Tian, Kevin
2016-06-08  1:39                       ` Alex Williamson
2016-06-08  3:18                         ` Dong Jia
2016-06-08  3:48                           ` Neo Jia
2016-06-08  6:13                             ` Dong Jia
2016-06-08  6:22                               ` Neo Jia
2016-06-08  4:29                           ` Alex Williamson
2016-06-15  6:37                             ` Dong Jia
2016-05-24 19:58 ` [Qemu-devel] [RFC PATCH v4 2/3] VFIO driver for mediated PCI device Kirti Wankhede
2016-05-25  8:15   ` Tian, Kevin
2016-05-25 13:04     ` Kirti Wankhede
2016-05-27 10:03       ` Tian, Kevin
2016-05-27 15:13         ` Alex Williamson
2016-05-24 19:58 ` [Qemu-devel] [RFC PATCH v4 3/3] VFIO Type1 IOMMU: Add support for mediated devices Kirti Wankhede
2016-06-01  8:40   ` Dong Jia
2016-06-02  7:56     ` Neo Jia
2016-06-03  8:32       ` Dong Jia
2016-06-03  8:37         ` Tian, Kevin
2016-05-25  7:13 ` [Qemu-devel] [RFC PATCH v4 0/3] Add Mediated device support[was: Add vGPU support] Tian, Kevin
2016-05-25 13:43   ` Alex Williamson
2016-05-27 11:02     ` Tian, Kevin
2016-05-27 14:54       ` Alex Williamson
2016-05-27 22:43         ` Tian, Kevin
2016-05-28 14:56           ` Alex Williamson
2016-05-31  2:29             ` Jike Song
2016-05-31 14:29               ` Alex Williamson
2016-06-02  2:11                 ` Jike Song

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=20160606062742.GA31747@nvidia.com \
    --to=cjia@nvidia.com \
    --cc=alex.williamson@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=jike.song@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shuai.ruan@intel.com \
    --cc=zhiyuan.lv@intel.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 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).