From: Jason Wang <jasowang@redhat.com> To: mst@redhat.com, jasowang@redhat.com Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, rob.miller@broadcom.com, lingshan.zhu@intel.com, eperezma@redhat.com, lulu@redhat.com, shahafs@mellanox.com, hanand@xilinx.com, mhabets@solarflare.com, gdawar@xilinx.com, saugatm@xilinx.com, vmireyno@marvell.com, zhangweining@ruijie.com.cn, eli@mellanox.com Subject: [PATCH 0/6] vDPA: doorbell mapping Date: Fri, 29 May 2020 16:02:57 +0800 [thread overview] Message-ID: <20200529080303.15449-1-jasowang@redhat.com> (raw) Hi all: This series introduce basic functionality of doorbell mapping support for vhost-vDPA. Userspace program may use mmap() to map a the doorbell of a specific virtqueue into its address space. This is help to reudce the syscall or vmexit overhead. A new vdpa_config_ops was introduced to report the location of the doorbell, vhost_vdpa may then choose to map the doorbell when: - The doorbell register is localted at page boundary - The doorbell register does not share page with non doorbell registers. With these two requriements, doorbells layout could be modelled more easily from guest (e.g Qemu's page-per-vq model) and it would be more safe to avoid exposing other registers to userspace directly. IFCVF was reported to support this feature but unfortuantely the one I used does not meet those requirements. So a new virtio-pci driver for vDPA bus is introduced, and I verify this with page-per-vq=on with a userspace vhost-vdpa driver in guest. Please review. Thanks Jason Wang (6): vhost: allow device that does not depend on vhost worker vhost: use mmgrab() instead of mmget() for non worker device vdpa: introduce get_vq_notification method vhost_vdpa: support doorbell mapping via mmap vdpa: introduce virtio pci driver vdpa: vp_vdpa: report doorbell location drivers/vdpa/Kconfig | 6 + drivers/vdpa/Makefile | 1 + drivers/vdpa/vp_vdpa/Makefile | 2 + drivers/vdpa/vp_vdpa/vp_vdpa.c | 604 +++++++++++++++++++++++++++++++++ drivers/vhost/net.c | 2 +- drivers/vhost/scsi.c | 2 +- drivers/vhost/vdpa.c | 61 +++- drivers/vhost/vhost.c | 80 +++-- drivers/vhost/vhost.h | 2 + drivers/vhost/vsock.c | 2 +- include/linux/vdpa.h | 16 + 11 files changed, 753 insertions(+), 25 deletions(-) create mode 100644 drivers/vdpa/vp_vdpa/Makefile create mode 100644 drivers/vdpa/vp_vdpa/vp_vdpa.c -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Jason Wang <jasowang@redhat.com> To: mst@redhat.com, jasowang@redhat.com Cc: shahafs@mellanox.com, lulu@redhat.com, kvm@vger.kernel.org, saugatm@xilinx.com, netdev@vger.kernel.org, mhabets@solarflare.com, vmireyno@marvell.com, linux-kernel@vger.kernel.org, gdawar@xilinx.com, virtualization@lists.linux-foundation.org, eperezma@redhat.com, hanand@xilinx.com, zhangweining@ruijie.com.cn, eli@mellanox.com, lingshan.zhu@intel.com, rob.miller@broadcom.com Subject: [PATCH 0/6] vDPA: doorbell mapping Date: Fri, 29 May 2020 16:02:57 +0800 [thread overview] Message-ID: <20200529080303.15449-1-jasowang@redhat.com> (raw) Hi all: This series introduce basic functionality of doorbell mapping support for vhost-vDPA. Userspace program may use mmap() to map a the doorbell of a specific virtqueue into its address space. This is help to reudce the syscall or vmexit overhead. A new vdpa_config_ops was introduced to report the location of the doorbell, vhost_vdpa may then choose to map the doorbell when: - The doorbell register is localted at page boundary - The doorbell register does not share page with non doorbell registers. With these two requriements, doorbells layout could be modelled more easily from guest (e.g Qemu's page-per-vq model) and it would be more safe to avoid exposing other registers to userspace directly. IFCVF was reported to support this feature but unfortuantely the one I used does not meet those requirements. So a new virtio-pci driver for vDPA bus is introduced, and I verify this with page-per-vq=on with a userspace vhost-vdpa driver in guest. Please review. Thanks Jason Wang (6): vhost: allow device that does not depend on vhost worker vhost: use mmgrab() instead of mmget() for non worker device vdpa: introduce get_vq_notification method vhost_vdpa: support doorbell mapping via mmap vdpa: introduce virtio pci driver vdpa: vp_vdpa: report doorbell location drivers/vdpa/Kconfig | 6 + drivers/vdpa/Makefile | 1 + drivers/vdpa/vp_vdpa/Makefile | 2 + drivers/vdpa/vp_vdpa/vp_vdpa.c | 604 +++++++++++++++++++++++++++++++++ drivers/vhost/net.c | 2 +- drivers/vhost/scsi.c | 2 +- drivers/vhost/vdpa.c | 61 +++- drivers/vhost/vhost.c | 80 +++-- drivers/vhost/vhost.h | 2 + drivers/vhost/vsock.c | 2 +- include/linux/vdpa.h | 16 + 11 files changed, 753 insertions(+), 25 deletions(-) create mode 100644 drivers/vdpa/vp_vdpa/Makefile create mode 100644 drivers/vdpa/vp_vdpa/vp_vdpa.c -- 2.20.1
next reply other threads:[~2020-05-29 8:03 UTC|newest] Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-29 8:02 Jason Wang [this message] 2020-05-29 8:02 ` [PATCH 0/6] vDPA: doorbell mapping Jason Wang 2020-05-29 8:02 ` [PATCH 1/6] vhost: allow device that does not depend on vhost worker Jason Wang 2020-05-29 8:02 ` Jason Wang 2020-06-02 5:01 ` Michael S. Tsirkin 2020-06-02 7:04 ` Jason Wang 2020-06-02 7:04 ` Jason Wang 2020-05-29 8:02 ` [PATCH 2/6] vhost: use mmgrab() instead of mmget() for non worker device Jason Wang 2020-05-29 8:03 ` [PATCH 3/6] vdpa: introduce get_vq_notification method Jason Wang 2020-05-29 8:03 ` Jason Wang 2020-05-29 8:03 ` [PATCH 4/6] vhost_vdpa: support doorbell mapping via mmap Jason Wang 2020-05-29 9:16 ` Mika Penttilä 2020-05-29 9:24 ` Jason Wang 2020-05-29 18:30 ` Rob Miller 2020-05-29 18:30 ` [virtio-dev] " Rob Miller 2020-06-02 2:04 ` Jason Wang 2020-06-02 2:04 ` Jason Wang 2020-06-02 2:04 ` Jason Wang 2020-06-01 19:22 ` kbuild test robot 2020-06-01 19:22 ` kbuild test robot 2020-06-01 19:22 ` kbuild test robot 2020-06-02 4:56 ` Michael S. Tsirkin 2020-06-02 4:56 ` Michael S. Tsirkin 2020-06-02 6:49 ` Jason Wang 2020-06-02 6:49 ` Jason Wang 2020-06-02 13:31 ` Michael S. Tsirkin 2020-06-02 13:31 ` Michael S. Tsirkin 2020-06-03 4:18 ` Jason Wang 2020-06-03 4:18 ` Jason Wang 2020-06-03 6:34 ` Michael S. Tsirkin 2020-06-03 6:34 ` Michael S. Tsirkin 2020-06-03 6:37 ` Jason Wang 2020-06-03 6:37 ` Jason Wang 2020-05-29 8:03 ` [PATCH 5/6] vdpa: introduce virtio pci driver Jason Wang 2020-05-29 8:03 ` Jason Wang 2020-06-02 5:08 ` Michael S. Tsirkin 2020-06-02 7:08 ` Jason Wang 2020-06-05 8:54 ` Jason Wang 2020-06-05 8:54 ` Jason Wang 2020-06-07 13:51 ` Michael S. Tsirkin 2020-06-07 13:51 ` Michael S. Tsirkin 2020-06-08 3:32 ` Jason Wang 2020-06-08 3:32 ` Jason Wang 2020-06-08 6:32 ` Michael S. Tsirkin 2020-06-08 9:18 ` Jason Wang 2020-06-08 9:31 ` Michael S. Tsirkin 2020-06-08 9:43 ` Jason Wang 2020-06-08 9:45 ` Michael S. Tsirkin 2020-06-08 9:45 ` Michael S. Tsirkin 2020-06-08 9:46 ` Jason Wang 2020-06-08 9:54 ` Michael S. Tsirkin 2020-06-08 10:07 ` Jason Wang 2020-06-08 13:29 ` Michael S. Tsirkin 2020-06-08 13:29 ` Michael S. Tsirkin 2020-06-09 5:55 ` Jason Wang 2020-06-02 5:09 ` Michael S. Tsirkin 2020-06-02 7:12 ` Jason Wang 2020-06-04 18:50 ` Michael S. Tsirkin 2020-05-29 8:03 ` [PATCH 6/6] vdpa: vp_vdpa: report doorbell location Jason Wang 2020-05-29 8:03 ` Jason Wang
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=20200529080303.15449-1-jasowang@redhat.com \ --to=jasowang@redhat.com \ --cc=eli@mellanox.com \ --cc=eperezma@redhat.com \ --cc=gdawar@xilinx.com \ --cc=hanand@xilinx.com \ --cc=kvm@vger.kernel.org \ --cc=lingshan.zhu@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=lulu@redhat.com \ --cc=mhabets@solarflare.com \ --cc=mst@redhat.com \ --cc=netdev@vger.kernel.org \ --cc=rob.miller@broadcom.com \ --cc=saugatm@xilinx.com \ --cc=shahafs@mellanox.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=vmireyno@marvell.com \ --cc=zhangweining@ruijie.com.cn \ /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.