Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp1770483ybb; Thu, 26 Mar 2020 07:04:45 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsNWf6o1ELj82GS4Us+3bYDtnHmur2U7EwaPt16R+sbaLDHlhV9ET1/VkPanUk+ox/JH4sl X-Received: by 2002:a9d:3661:: with SMTP id w88mr5926884otb.223.1585231484915; Thu, 26 Mar 2020 07:04:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585231484; cv=none; d=google.com; s=arc-20160816; b=ptEQWWAOsATnidRkskUW1c7ApCdvbBxX9O5Y4A3bk97prHBeA0s9cIG4LgA6oKyFm4 KQ2/80dOZuqzxxewgN3fnQ5Jq7S9CUVDaamkGpHy60dfZDHzcozEzl4Y4R75X/JyEF45 XxO7qw22VdaAD+csmyQqVBXdcWUFVssQnyPnXbyCdFDJbm3rtbAvc6YBg4Ol7rwEt5DU 3tlPmb5Zjhm2FUQc2uPbMY70r6+1ipuSyBj4ZAVkyA/LvzlNyshwf771qKVcA4u/UmKh 81X3qkMXr8pssOT9LnY0b0z486S3sj59E1TW9xDQDl8RGhqvuJF25bYChUyGeIJj1G9r Grgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=cQAMj9E7pnEO97gxazN0awVnwRs79iDcGQ6g5ZjNfoc=; b=NthZK8p5KAZ5TVcGwChfPZduTULfVH9karneWAZHir2l8QUsviELHufPtDOD4gBVKD C4LEtn9JCi/J88BXoZy/jC1mNOhfJwfN6JD+b22mqf+WWqhP9+GcZKqdrH2p38FUUz5Q D4sGwnrMq3kCLx8+WROmn9EO+mX7+qW8f6GiGUjesfhnwKvgY21pg3VPkls6QSzjnNPd I0zzNs9p6+8Qcksiq+Io5Nmp/Z8MmVdPtQcqds0VSrhNjVq0IsobUoRE6Fs+2X+osBU3 J5PZ5G8KsjGawRaWsw4AJ7tyhgLav6llsq+F/B7s531nV7gnSD4fRZa6o9SvRwqHS2P7 xJxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Z8Cq8Pis; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t3si1118620oth.83.2020.03.26.07.04.20; Thu, 26 Mar 2020 07:04:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Z8Cq8Pis; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728107AbgCZOCm (ORCPT + 99 others); Thu, 26 Mar 2020 10:02:42 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:29998 "EHLO us-smtp-delivery-74.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727982AbgCZOCm (ORCPT ); Thu, 26 Mar 2020 10:02:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585231361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cQAMj9E7pnEO97gxazN0awVnwRs79iDcGQ6g5ZjNfoc=; b=Z8Cq8PisHlfZkd4yF8WtHErTAtmZAmPb6ms75jWCmG2ilieIkeMATNGJD7RNL+mXK4/TR0 NJp3I+pxpoKW29CUMYbPAoD2lMK4Z8yS1bEB1ez9APj5lmYvzy/c2pgHN35yjtT6cSEoKd p4WNx7R832n90e+EtdkPeO1W2pYzY/M= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-78-TzKs58iZNRmrNGCxYJF2Cw-1; Thu, 26 Mar 2020 10:02:36 -0400 X-MC-Unique: TzKs58iZNRmrNGCxYJF2Cw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 89193100FB30; Thu, 26 Mar 2020 14:02:28 +0000 (UTC) Received: from jason-ThinkPad-X1-Carbon-6th.redhat.com (ovpn-12-19.pek2.redhat.com [10.72.12.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id B6EDE60C80; Thu, 26 Mar 2020 14:01:59 +0000 (UTC) From: Jason Wang To: mst@redhat.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org Cc: jgg@mellanox.com, maxime.coquelin@redhat.com, cunming.liang@intel.com, zhihong.wang@intel.com, rob.miller@broadcom.com, xiao.w.wang@intel.com, lingshan.zhu@intel.com, eperezma@redhat.com, lulu@redhat.com, parav@mellanox.com, kevin.tian@intel.com, stefanha@redhat.com, rdunlap@infradead.org, hch@infradead.org, aadam@redhat.com, jiri@mellanox.com, shahafs@mellanox.com, hanand@xilinx.com, mhabets@solarflare.com, gdawar@xilinx.com, saugatm@xilinx.com, vmireyno@marvell.com, zhangweining@ruijie.com.cn, Jason Wang Subject: [PATCH V9 1/9] vhost: refine vhost and vringh kconfig Date: Thu, 26 Mar 2020 22:01:17 +0800 Message-Id: <20200326140125.19794-2-jasowang@redhat.com> In-Reply-To: <20200326140125.19794-1-jasowang@redhat.com> References: <20200326140125.19794-1-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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 | 2 ++ drivers/misc/mic/Kconfig | 4 ---- drivers/net/caif/Kconfig | 4 ---- drivers/vhost/Kconfig | 23 ++++++++++++++--------- drivers/vhost/Kconfig.vringh | 6 ------ 11 files changed, 16 insertions(+), 39 deletions(-) delete mode 100644 drivers/vhost/Kconfig.vringh diff --git a/arch/arm/kvm/Kconfig b/arch/arm/kvm/Kconfig index f591026347a5..be97393761bf 100644 --- a/arch/arm/kvm/Kconfig +++ b/arch/arm/kvm/Kconfig @@ -54,6 +54,4 @@ config KVM_ARM_HOST ---help--- Provides host support for ARM processors. =20 -source "drivers/vhost/Kconfig" - endif # VIRTUALIZATION diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index a475c68cbfec..449386d76441 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -64,6 +64,4 @@ config KVM_ARM_PMU config KVM_INDIRECT_VECTORS def_bool KVM && (HARDEN_BRANCH_PREDICTOR || HARDEN_EL2_VECTORS) =20 -source "drivers/vhost/Kconfig" - endif # VIRTUALIZATION diff --git a/arch/mips/kvm/Kconfig b/arch/mips/kvm/Kconfig index eac25aef21e0..b91d145aa2d5 100644 --- a/arch/mips/kvm/Kconfig +++ b/arch/mips/kvm/Kconfig @@ -72,6 +72,4 @@ config KVM_MIPS_DEBUG_COP0_COUNTERS =20 If unsure, say N. =20 -source "drivers/vhost/Kconfig" - endif # VIRTUALIZATION diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig index 711fca9bc6f0..12885eda324e 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig @@ -204,6 +204,4 @@ config KVM_XIVE default y depends on KVM_XICS && PPC_XIVE_NATIVE && KVM_BOOK3S_HV_POSSIBLE =20 -source "drivers/vhost/Kconfig" - endif # VIRTUALIZATION diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig index d3db3d7ed077..def3b60f1fe8 100644 --- a/arch/s390/kvm/Kconfig +++ b/arch/s390/kvm/Kconfig @@ -55,8 +55,4 @@ config KVM_S390_UCONTROL =20 If unsure, say N. =20 -# 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 diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig index 991019d5eee1..0dfe70e17af9 100644 --- a/arch/x86/kvm/Kconfig +++ b/arch/x86/kvm/Kconfig @@ -94,8 +94,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. =20 -# 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 diff --git a/drivers/Kconfig b/drivers/Kconfig index 8befa53f43be..7a6d8b2b68b4 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -138,6 +138,8 @@ source "drivers/virt/Kconfig" =20 source "drivers/virtio/Kconfig" =20 +source "drivers/vhost/Kconfig" + source "drivers/hv/Kconfig" =20 source "drivers/xen/Kconfig" diff --git a/drivers/misc/mic/Kconfig b/drivers/misc/mic/Kconfig index b6841ba6d922..8f201d019f5a 100644 --- a/drivers/misc/mic/Kconfig +++ b/drivers/misc/mic/Kconfig @@ -133,8 +133,4 @@ config VOP OS and tools for MIC to use with this driver are available from . =20 -if VOP -source "drivers/vhost/Kconfig.vringh" -endif - endmenu diff --git a/drivers/net/caif/Kconfig b/drivers/net/caif/Kconfig index e74e2bb61236..9db0570c5beb 100644 --- a/drivers/net/caif/Kconfig +++ b/drivers/net/caif/Kconfig @@ -58,8 +58,4 @@ config CAIF_VIRTIO ---help--- The CAIF driver for CAIF over Virtio. =20 -if CAIF_VIRTIO -source "drivers/vhost/Kconfig.vringh" -endif - endif # CAIF_DRIVERS diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 3d03ccbd1adc..4aef10a54cd1 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -1,8 +1,20 @@ # 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. + +menuconfig VHOST + tristate "Host kernel accelerator for virtio (VHOST)" + help + This option is selected by any driver which needs to access + the core of vhost. +if VHOST + config VHOST_NET tristate "Host kernel accelerator for virtio net" depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP) - select VHOST ---help--- This kernel module can be loaded in host kernel to accelerate guest networking with virtio_net. Not to be confused with virtio_net @@ -14,7 +26,6 @@ config VHOST_NET config VHOST_SCSI tristate "VHOST_SCSI TCM fabric driver" depends on TARGET_CORE && EVENTFD - select VHOST default n ---help--- Say M here to enable the vhost_scsi TCM fabric module @@ -24,7 +35,6 @@ config VHOST_VSOCK tristate "vhost virtio-vsock driver" depends on VSOCKETS && EVENTFD select VIRTIO_VSOCKETS_COMMON - select VHOST default n ---help--- This kernel module can be loaded in the host kernel to provide AF_VSOCK @@ -34,12 +44,6 @@ config VHOST_VSOCK To compile this driver as a module, choose M here: the module will be c= alled vhost_vsock. =20 -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 @@ -54,3 +58,4 @@ config VHOST_CROSS_ENDIAN_LEGACY adds some overhead, it is disabled by default. =20 If unsure, say "N". +endif diff --git a/drivers/vhost/Kconfig.vringh b/drivers/vhost/Kconfig.vringh deleted file mode 100644 index c1fe36a9b8d4..000000000000 --- a/drivers/vhost/Kconfig.vringh +++ /dev/null @@ -1,6 +0,0 @@ -# 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. --=20 2.20.1