xref: /openbmc/linux/drivers/vhost/Kconfig (revision b58c6630)
1# SPDX-License-Identifier: GPL-2.0-only
2config VHOST_IOTLB
3	tristate
4	help
5	  Generic IOTLB implementation for vhost and vringh.
6	  This option is selected by any driver which needs to support
7	  an IOMMU in software.
8
9config VHOST_RING
10	tristate
11	select VHOST_IOTLB
12	help
13	  This option is selected by any driver which needs to access
14	  the host side of a virtio ring.
15
16config VHOST_DPN
17	bool
18	depends on !ARM || AEABI
19	default y
20	help
21	  Anything selecting VHOST or VHOST_RING must depend on VHOST_DPN.
22	  This excludes the deprecated ARM ABI since that forces a 4 byte
23	  alignment on all structs - incompatible with virtio spec requirements.
24
25config VHOST
26	tristate
27	select VHOST_IOTLB
28	help
29	  This option is selected by any driver which needs to access
30	  the core of vhost.
31
32menuconfig VHOST_MENU
33	bool "VHOST drivers"
34	default y
35
36if VHOST_MENU
37
38config VHOST_NET
39	tristate "Host kernel accelerator for virtio net"
40	depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP) && VHOST_DPN
41	select VHOST
42	---help---
43	  This kernel module can be loaded in host kernel to accelerate
44	  guest networking with virtio_net. Not to be confused with virtio_net
45	  module itself which needs to be loaded in guest kernel.
46
47	  To compile this driver as a module, choose M here: the module will
48	  be called vhost_net.
49
50config VHOST_SCSI
51	tristate "VHOST_SCSI TCM fabric driver"
52	depends on TARGET_CORE && EVENTFD && VHOST_DPN
53	select VHOST
54	default n
55	---help---
56	Say M here to enable the vhost_scsi TCM fabric module
57	for use with virtio-scsi guests
58
59config VHOST_VSOCK
60	tristate "vhost virtio-vsock driver"
61	depends on VSOCKETS && EVENTFD && VHOST_DPN
62	select VHOST
63	select VIRTIO_VSOCKETS_COMMON
64	default n
65	---help---
66	This kernel module can be loaded in the host kernel to provide AF_VSOCK
67	sockets for communicating with guests.  The guests must have the
68	virtio_transport.ko driver loaded to use the virtio-vsock device.
69
70	To compile this driver as a module, choose M here: the module will be called
71	vhost_vsock.
72
73config VHOST_VDPA
74	tristate "Vhost driver for vDPA-based backend"
75	depends on EVENTFD && VHOST_DPN
76	select VHOST
77	depends on VDPA
78	help
79	  This kernel module can be loaded in host kernel to accelerate
80	  guest virtio devices with the vDPA-based backends.
81
82	  To compile this driver as a module, choose M here: the module
83	  will be called vhost_vdpa.
84
85config VHOST_CROSS_ENDIAN_LEGACY
86	bool "Cross-endian support for vhost"
87	default n
88	---help---
89	  This option allows vhost to support guests with a different byte
90	  ordering from host while using legacy virtio.
91
92	  Userspace programs can control the feature using the
93	  VHOST_SET_VRING_ENDIAN and VHOST_GET_VRING_ENDIAN ioctls.
94
95	  This is only useful on a few platforms (ppc64 and arm64). Since it
96	  adds some overhead, it is disabled by default.
97
98	  If unsure, say "N".
99
100endif
101