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