Skip to content

Commit

Permalink
vhost: refine vhost and vringh kconfig
Browse files Browse the repository at this point in the history
Currently, CONFIG_VHOST depends on CONFIG_VIRTUALIZATION. But vhost is
not necessarily for VM since it's a generic userspace and kernel
communication protocol. Such dependency may prevent archs without
virtualization support from using vhost.

To solve this, a dedicated vhost menu is created under drivers so
CONIFG_VHOST can be decoupled out of CONFIG_VIRTUALIZATION.

While at it, also squash Kconfig.vringh into vhost Kconfig file. This
avoids the trick of conditional inclusion from VOP or CAIF. Then it
will be easier to introduce new vringh users and common dependency for
both vringh and vhost.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20200326140125.19794-2-jasowang@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
Jason Wang authored and Michael S. Tsirkin committed Apr 1, 2020
1 parent 5a6b4cc commit 20c384f
Show file tree
Hide file tree
Showing 11 changed files with 23 additions and 37 deletions.
2 changes: 0 additions & 2 deletions arch/arm/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,4 @@ config KVM_ARM_HOST
---help---
Provides host support for ARM processors.

source "drivers/vhost/Kconfig"

endif # VIRTUALIZATION
2 changes: 0 additions & 2 deletions arch/arm64/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,4 @@ config KVM_ARM_PMU
config KVM_INDIRECT_VECTORS
def_bool KVM && (HARDEN_BRANCH_PREDICTOR || HARDEN_EL2_VECTORS)

source "drivers/vhost/Kconfig"

endif # VIRTUALIZATION
2 changes: 0 additions & 2 deletions arch/mips/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,4 @@ config KVM_MIPS_DEBUG_COP0_COUNTERS

If unsure, say N.

source "drivers/vhost/Kconfig"

endif # VIRTUALIZATION
2 changes: 0 additions & 2 deletions arch/powerpc/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,4 @@ config KVM_XIVE
default y
depends on KVM_XICS && PPC_XIVE_NATIVE && KVM_BOOK3S_HV_POSSIBLE

source "drivers/vhost/Kconfig"

endif # VIRTUALIZATION
4 changes: 0 additions & 4 deletions arch/s390/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,4 @@ config KVM_S390_UCONTROL

If unsure, say N.

# OK, it's a little counter-intuitive to do this, but it puts it neatly under
# the virtualization menu.
source "drivers/vhost/Kconfig"

endif # VIRTUALIZATION
4 changes: 0 additions & 4 deletions arch/x86/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,4 @@ config KVM_MMU_AUDIT
This option adds a R/W kVM module parameter 'mmu_audit', which allows
auditing of KVM MMU events at runtime.

# OK, it's a little counter-intuitive to do this, but it puts it neatly under
# the virtualization menu.
source "drivers/vhost/Kconfig"

endif # VIRTUALIZATION
2 changes: 2 additions & 0 deletions drivers/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,8 @@ source "drivers/virt/Kconfig"

source "drivers/virtio/Kconfig"

source "drivers/vhost/Kconfig"

source "drivers/hv/Kconfig"

source "drivers/xen/Kconfig"
Expand Down
4 changes: 0 additions & 4 deletions drivers/misc/mic/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,4 @@ config VOP
OS and tools for MIC to use with this driver are available from
<http://software.intel.com/en-us/mic-developer>.

if VOP
source "drivers/vhost/Kconfig.vringh"
endif

endmenu
4 changes: 0 additions & 4 deletions drivers/net/caif/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,4 @@ config CAIF_VIRTIO
---help---
The CAIF driver for CAIF over Virtio.

if CAIF_VIRTIO
source "drivers/vhost/Kconfig.vringh"
endif

endif # CAIF_DRIVERS
28 changes: 21 additions & 7 deletions drivers/vhost/Kconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,23 @@
# SPDX-License-Identifier: GPL-2.0-only
config VHOST_RING
tristate
help
This option is selected by any driver which needs to access
the host side of a virtio ring.

config VHOST
tristate
select VHOST_IOTLB
help
This option is selected by any driver which needs to access
the core of vhost.

menuconfig VHOST_MENU
bool "VHOST drivers"
default y

if VHOST_MENU

config VHOST_NET
tristate "Host kernel accelerator for virtio net"
depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
Expand All @@ -23,8 +42,8 @@ config VHOST_SCSI
config VHOST_VSOCK
tristate "vhost virtio-vsock driver"
depends on VSOCKETS && EVENTFD
select VIRTIO_VSOCKETS_COMMON
select VHOST
select VIRTIO_VSOCKETS_COMMON
default n
---help---
This kernel module can be loaded in the host kernel to provide AF_VSOCK
Expand All @@ -34,12 +53,6 @@ config VHOST_VSOCK
To compile this driver as a module, choose M here: the module will be called
vhost_vsock.

config VHOST
tristate
---help---
This option is selected by any driver which needs to access
the core of vhost.

config VHOST_CROSS_ENDIAN_LEGACY
bool "Cross-endian support for vhost"
default n
Expand All @@ -54,3 +67,4 @@ config VHOST_CROSS_ENDIAN_LEGACY
adds some overhead, it is disabled by default.

If unsure, say "N".
endif
6 changes: 0 additions & 6 deletions drivers/vhost/Kconfig.vringh

This file was deleted.

0 comments on commit 20c384f

Please sign in to comment.