Now that many more architectures build vhost, a couple of these (um, and arm with deprecated oabi) have reported build failures with randconfig, however fixes for that need a bit more discussion/testing and will be merged separately. Not a regression - these previously simply didn't have vhost at all. Also, there's some DMA API code in the vdpa simulator is hacky - if no solution surfaces soon we can always disable it before release: it's not a big deal either way as it's just test code. The following changes since commit 16fbf79b0f83bc752cee8589279f1ebfe57b3b6e: Linux 5.6-rc7 (2020-03-22 18:31:56 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git tags/for_linus for you to fetch changes up to c9b9f5f8c0f3cdb893cb86c168cdaa3aa5ed7278: vdpa: move to drivers/vdpa (2020-04-02 10:41:40 -0400) ---------------------------------------------------------------- virtio: fixes, vdpa Some bug fixes. Balloon reverted to use the OOM handler again. The new vdpa subsystem with two first drivers. Signed-off-by: Michael S. Tsirkin <mst at redhat.com> ---------------------------------------------------------------- David Hildenbrand (1): virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM Jason Wang (7): vhost: refine vhost and vringh kconfig vhost: allow per device message handler vhost: factor out IOTLB vringh: IOTLB support vDPA: introduce vDPA bus virtio: introduce a vDPA based transport vdpasim: vDPA device simulator Michael S. Tsirkin (2): tools/virtio: option to build an out of tree module vdpa: move to drivers/vdpa Tiwei Bie (1): vhost: introduce vDPA-based backend Yuri Benditovich (3): virtio-net: Introduce extended RSC feature virtio-net: Introduce RSS receive steering feature virtio-net: Introduce hash report feature Zhu Lingshan (1): virtio: Intel IFC VF driver for VDPA MAINTAINERS | 3 + arch/arm/kvm/Kconfig | 2 - arch/arm64/kvm/Kconfig | 2 - arch/mips/kvm/Kconfig | 2 - arch/powerpc/kvm/Kconfig | 2 - arch/s390/kvm/Kconfig | 4 - arch/x86/kvm/Kconfig | 4 - drivers/Kconfig | 4 + drivers/Makefile | 1 + drivers/misc/mic/Kconfig | 4 - drivers/net/caif/Kconfig | 4 - drivers/vdpa/Kconfig | 37 ++ drivers/vdpa/Makefile | 4 + drivers/vdpa/ifcvf/Makefile | 3 + drivers/vdpa/ifcvf/ifcvf_base.c | 389 +++++++++++++++++ drivers/vdpa/ifcvf/ifcvf_base.h | 118 ++++++ drivers/vdpa/ifcvf/ifcvf_main.c | 435 +++++++++++++++++++ drivers/vdpa/vdpa.c | 180 ++++++++ drivers/vdpa/vdpa_sim/Makefile | 2 + drivers/vdpa/vdpa_sim/vdpa_sim.c | 629 ++++++++++++++++++++++++++++ drivers/vhost/Kconfig | 45 +- drivers/vhost/Kconfig.vringh | 6 - drivers/vhost/Makefile | 6 + drivers/vhost/iotlb.c | 177 ++++++++ drivers/vhost/net.c | 5 +- drivers/vhost/scsi.c | 2 +- drivers/vhost/vdpa.c | 883 +++++++++++++++++++++++++++++++++++++++ drivers/vhost/vhost.c | 233 ++++------- drivers/vhost/vhost.h | 45 +- drivers/vhost/vringh.c | 421 ++++++++++++++++++- drivers/vhost/vsock.c | 2 +- drivers/virtio/Kconfig | 13 + drivers/virtio/Makefile | 1 + drivers/virtio/virtio_balloon.c | 107 ++--- drivers/virtio/virtio_vdpa.c | 396 ++++++++++++++++++ include/linux/vdpa.h | 253 +++++++++++ include/linux/vhost_iotlb.h | 47 +++ include/linux/vringh.h | 36 ++ include/uapi/linux/vhost.h | 24 ++ include/uapi/linux/vhost_types.h | 8 + include/uapi/linux/virtio_net.h | 102 ++++- tools/virtio/Makefile | 27 +- 42 files changed, 4354 insertions(+), 314 deletions(-) create mode 100644 drivers/vdpa/Kconfig create mode 100644 drivers/vdpa/Makefile create mode 100644 drivers/vdpa/ifcvf/Makefile create mode 100644 drivers/vdpa/ifcvf/ifcvf_base.c create mode 100644 drivers/vdpa/ifcvf/ifcvf_base.h create mode 100644 drivers/vdpa/ifcvf/ifcvf_main.c create mode 100644 drivers/vdpa/vdpa.c create mode 100644 drivers/vdpa/vdpa_sim/Makefile create mode 100644 drivers/vdpa/vdpa_sim/vdpa_sim.c delete mode 100644 drivers/vhost/Kconfig.vringh create mode 100644 drivers/vhost/iotlb.c create mode 100644 drivers/vhost/vdpa.c create mode 100644 drivers/virtio/virtio_vdpa.c create mode 100644 include/linux/vdpa.h create mode 100644 include/linux/vhost_iotlb.h
On Mon, Apr 06, 2020 at 05:11:28PM -0400, Michael S. Tsirkin wrote:> Now that many more architectures build vhost, a couple of these (um, and > arm with deprecated oabi) have reported build failures with randconfig, > however fixes for that need a bit more discussion/testing and will be > merged separately. > > Not a regression - these previously simply didn't have vhost at all. > Also, there's some DMA API code in the vdpa simulator is hacky - if no > solution surfaces soon we can always disable it before release: > it's not a big deal either way as it's just test code. > > The following changes since commit 16fbf79b0f83bc752cee8589279f1ebfe57b3b6e: > > Linux 5.6-rc7 (2020-03-22 18:31:56 -0700) > > are available in the Git repository at: > > https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git tags/for_linus > > for you to fetch changes up to c9b9f5f8c0f3cdb893cb86c168cdaa3aa5ed7278: > > vdpa: move to drivers/vdpa (2020-04-02 10:41:40 -0400) > > ---------------------------------------------------------------- > virtio: fixes, vdpa > > Some bug fixes. > Balloon reverted to use the OOM handler again. > The new vdpa subsystem with two first drivers. > > Signed-off-by: Michael S. Tsirkin <mst at redhat.com>OK this was conflicting with akpm tree, turns out Stephen was reverting the OOM handler change since akpm tree has its own variant. So I pushed the revert in my tree to make it easier for you. I'll send PULL v2 just to make things clear.> ---------------------------------------------------------------- > David Hildenbrand (1): > virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM > > Jason Wang (7): > vhost: refine vhost and vringh kconfig > vhost: allow per device message handler > vhost: factor out IOTLB > vringh: IOTLB support > vDPA: introduce vDPA bus > virtio: introduce a vDPA based transport > vdpasim: vDPA device simulator > > Michael S. Tsirkin (2): > tools/virtio: option to build an out of tree module > vdpa: move to drivers/vdpa > > Tiwei Bie (1): > vhost: introduce vDPA-based backend > > Yuri Benditovich (3): > virtio-net: Introduce extended RSC feature > virtio-net: Introduce RSS receive steering feature > virtio-net: Introduce hash report feature > > Zhu Lingshan (1): > virtio: Intel IFC VF driver for VDPA > > MAINTAINERS | 3 + > arch/arm/kvm/Kconfig | 2 - > arch/arm64/kvm/Kconfig | 2 - > arch/mips/kvm/Kconfig | 2 - > arch/powerpc/kvm/Kconfig | 2 - > arch/s390/kvm/Kconfig | 4 - > arch/x86/kvm/Kconfig | 4 - > drivers/Kconfig | 4 + > drivers/Makefile | 1 + > drivers/misc/mic/Kconfig | 4 - > drivers/net/caif/Kconfig | 4 - > drivers/vdpa/Kconfig | 37 ++ > drivers/vdpa/Makefile | 4 + > drivers/vdpa/ifcvf/Makefile | 3 + > drivers/vdpa/ifcvf/ifcvf_base.c | 389 +++++++++++++++++ > drivers/vdpa/ifcvf/ifcvf_base.h | 118 ++++++ > drivers/vdpa/ifcvf/ifcvf_main.c | 435 +++++++++++++++++++ > drivers/vdpa/vdpa.c | 180 ++++++++ > drivers/vdpa/vdpa_sim/Makefile | 2 + > drivers/vdpa/vdpa_sim/vdpa_sim.c | 629 ++++++++++++++++++++++++++++ > drivers/vhost/Kconfig | 45 +- > drivers/vhost/Kconfig.vringh | 6 - > drivers/vhost/Makefile | 6 + > drivers/vhost/iotlb.c | 177 ++++++++ > drivers/vhost/net.c | 5 +- > drivers/vhost/scsi.c | 2 +- > drivers/vhost/vdpa.c | 883 +++++++++++++++++++++++++++++++++++++++ > drivers/vhost/vhost.c | 233 ++++------- > drivers/vhost/vhost.h | 45 +- > drivers/vhost/vringh.c | 421 ++++++++++++++++++- > drivers/vhost/vsock.c | 2 +- > drivers/virtio/Kconfig | 13 + > drivers/virtio/Makefile | 1 + > drivers/virtio/virtio_balloon.c | 107 ++--- > drivers/virtio/virtio_vdpa.c | 396 ++++++++++++++++++ > include/linux/vdpa.h | 253 +++++++++++ > include/linux/vhost_iotlb.h | 47 +++ > include/linux/vringh.h | 36 ++ > include/uapi/linux/vhost.h | 24 ++ > include/uapi/linux/vhost_types.h | 8 + > include/uapi/linux/virtio_net.h | 102 ++++- > tools/virtio/Makefile | 27 +- > 42 files changed, 4354 insertions(+), 314 deletions(-) > create mode 100644 drivers/vdpa/Kconfig > create mode 100644 drivers/vdpa/Makefile > create mode 100644 drivers/vdpa/ifcvf/Makefile > create mode 100644 drivers/vdpa/ifcvf/ifcvf_base.c > create mode 100644 drivers/vdpa/ifcvf/ifcvf_base.h > create mode 100644 drivers/vdpa/ifcvf/ifcvf_main.c > create mode 100644 drivers/vdpa/vdpa.c > create mode 100644 drivers/vdpa/vdpa_sim/Makefile > create mode 100644 drivers/vdpa/vdpa_sim/vdpa_sim.c > delete mode 100644 drivers/vhost/Kconfig.vringh > create mode 100644 drivers/vhost/iotlb.c > create mode 100644 drivers/vhost/vdpa.c > create mode 100644 drivers/virtio/virtio_vdpa.c > create mode 100644 include/linux/vdpa.h > create mode 100644 include/linux/vhost_iotlb.h
The pull request you sent on Mon, 6 Apr 2020 17:11:24 -0400:> https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git tags/for_linushas been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/835a6a649d0dd1b1f46759eb60fff2f63ed253a7 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
On Mon, Apr 6, 2020 at 2:11 PM Michael S. Tsirkin <mst at redhat.com> wrote:> > The new vdpa subsystem with two first drivers.So this one is really annoying to configure. First it asks for vDPA driver for virtio devices (VIRTIO_VDPA) support. If you say 'n', it then asks *again* for VDPA drivers (VDPA_MENU). And then when you say 'n' to *that* it asks you for Vhost driver for vDPA-based backend (VHOST_VDPA). This kind of crazy needs to stop. Doing kernel configuration is not supposed to be like some truly horrendously boring Colossal Cave Adventure game where you have to search for a way out of maze of twisty little passages, all alike. Linus
On Sat, Apr 11, 2020 at 09:38:05AM -0700, Linus Torvalds wrote:> On Mon, Apr 6, 2020 at 2:11 PM Michael S. Tsirkin <mst at redhat.com> wrote: > > > > The new vdpa subsystem with two first drivers. > > So this one is really annoying to configure. > > First it asks for vDPA driver for virtio devices (VIRTIO_VDPA) support. > > If you say 'n', it then asks *again* for VDPA drivers (VDPA_MENU). > > And then when you say 'n' to *that* it asks you for Vhost driver for > vDPA-based backend (VHOST_VDPA). > > This kind of crazy needs to stop. > > Doing kernel configuration is not supposed to be like some truly > horrendously boring Colossal Cave Adventure game where you have to > search for a way out of maze of twisty little passages, all alike. > > LinusHmm it's a good point. Thanks, Linus! I think this was copied from virtio which has drivers spread all over the tree. Jason, if VDPA_MENU is off, then we don't have any drivers. So what's the point of selecting VDPA core from vhost/virtio then? So how about this? Lightly tested. Jason, could you pls play with this a bit more and let me know if you see any issues? --> vdpa: make vhost, virtio depend on menu If user did not configure any vdpa drivers, neither vhost nor virtio vdpa are going to be useful. So there's no point in prompting for these and selecting vdpa core automatically. Simplify configuration by making virtio and vhost vdpa drivers depend on vdpa menu entry. Once done, we no longer need a separate menu entry, so also get rid of this. While at it, fix up the IFC entry: VDPA->vDPA for consistency with other places. Signed-off-by: Michael S. Tsirkin <mst at redhat.com> --- diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index cb6b17323eb2..3b43411361fe 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -64,7 +64,7 @@ config VHOST_VDPA tristate "Vhost driver for vDPA-based backend" depends on EVENTFD select VHOST - select VDPA + depends on VDPA_MENU help This kernel module can be loaded in host kernel to accelerate guest virtio devices with the vDPA-based backends. diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig index 2aadf398d8cc..bf13755a5ba5 100644 --- a/drivers/virtio/Kconfig +++ b/drivers/virtio/Kconfig @@ -45,7 +45,7 @@ config VIRTIO_PCI_LEGACY config VIRTIO_VDPA tristate "vDPA driver for virtio devices" - select VDPA + depend on VDPA_MENU select VIRTIO help This driver provides support for virtio based paravirtual