From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E94F0C6FD18 for ; Wed, 19 Apr 2023 22:24:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 809BA900036; Wed, 19 Apr 2023 18:24:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 79190900002; Wed, 19 Apr 2023 18:24:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63281900036; Wed, 19 Apr 2023 18:24:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 5206C900002 for ; Wed, 19 Apr 2023 18:24:20 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 26EEFAC3F7 for ; Wed, 19 Apr 2023 22:24:20 +0000 (UTC) X-FDA: 80699570280.15.95AC0DC Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf11.hostedemail.com (Postfix) with ESMTP id 4FF0F4001C for ; Wed, 19 Apr 2023 22:24:18 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=KlF0beSB; spf=pass (imf11.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681943058; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=iv3jO/UplLaGK+gTx4v9j9xexh60oYjru3uhX3LfGtA=; b=oAJU+yXSSs6A1oNZKEFcnzY/8WciLglw4V43hRUUBeq/cG6VYo9ofIS7aw4F37lfXOxbdV Mh0xKfnZlp15UEw+yOs4pk0B7Q26CO2EjBcE/AzK4INl/cqEroqwxbElXEZt235YYwv+ER 58nEyeGvbDtNXLapiMRCCpC+z3KaDT8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681943058; a=rsa-sha256; cv=none; b=mGN6WfmbtDYu10oETrKK0Zj8s1WwwaQoTxpRVqOWwEMYWt/RAnRYdpIncDJjvwj4d9MQU0 Nq448q6uP3Q5hGyV+mZKVTNoIE7KYOxFOCc1siKyPA/86Ck/TINGBe7IKLP65sD0DiFa7A 62lopD8DhsSo46XNBOBZRj4qvuSFOGE= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=KlF0beSB; spf=pass (imf11.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1a645fd0c6dso4351225ad.1 for ; Wed, 19 Apr 2023 15:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1681943057; x=1684535057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iv3jO/UplLaGK+gTx4v9j9xexh60oYjru3uhX3LfGtA=; b=KlF0beSBSA6VLstvFDlAYMs9lpg8gvRR8zucHEopsyriEw6o1h2sLsqbVwcFiW8cZ2 ykz4DGeTyhjIF7TUhCvkjoQIqDlNYfhLHbuIW6A6Nze2qZg8Mjs4XhacrR2YEsP5YvVC RlKM3D/qrtizTZ3hrz+4hH+4HBcHwt4wDVgzIrtDMMjRIhDdPS70B4ffIp/QcNwVpgLh l3tvN+FDLmm6WxBLSXFEB5UUmHWn5q2p7Y1BPq6qQBjKBoxl/p2sw2H5TvKzZwP4jWXj /BG7zkngU3fOCCHkdBXlJJfXlhrBn1uWDICB+9I2KRJvOa60PVK4lOGzawO9HJcdv8/2 2Ciw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681943057; x=1684535057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iv3jO/UplLaGK+gTx4v9j9xexh60oYjru3uhX3LfGtA=; b=auPNAuXJ8Zyv/SDHRSq2ZlL3u0HPwBKLriIJPKwk1O/KWYopFjBuCfm9kz00uvPD1v d/CvDYhe88kYBCe69zcf+1mmIaTboKwY6MqDMe0h6ihRkl+T7v1Ol4H+Ovh1u/bSTUV4 29TqychAQOn973GjsZrjh85uoJOAfiAm250eTc03IuBYzJlOEbDKDh8NDh1dYU25Ck8B vhe27KxyJOrqZcPB/6c4aq4cexb/wPMSW6ZZXvED1qSXZEFc+CRbF0NmDQhV5NIxOWE7 ZY1j5Xw9KXnlHm3cxlIwy02MjQRSBZXNsG9SsojmZgNtZ/BCKOV1xTwfd/cX4BayWY9v YzeA== X-Gm-Message-State: AAQBX9c20/sprs7Te4PCGTjZo664oj1+NTMIvVS48tIb48msroLow0Sl 2PmsuSP9QNIyp2y/gxNfhPI/uA== X-Google-Smtp-Source: AKy350YmjLuFNHpdbGKVUxtLnNGDTOqZujizSNNxdVNVjL7P36ZiZ6Z6Phv1PaiPaoxLg0i7OBeTQw== X-Received: by 2002:a17:902:d505:b0:19d:778:ff5 with SMTP id b5-20020a170902d50500b0019d07780ff5mr7467330plg.15.1681943057246; Wed, 19 Apr 2023 15:24:17 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id e4-20020a170902744400b001a681fb3e77sm11867810plt.44.2023.04.19.15.24.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:24:17 -0700 (PDT) From: Atish Patra To: linux-kernel@vger.kernel.org Cc: Rajnesh Kanwal , Alexandre Ghiti , Andrew Jones , Andrew Morton , Anup Patel , Atish Patra , Suzuki K Poulose , Will Deacon , Marc Zyngier , Sean Christopherson , linux-coco@lists.linux.dev, Dylan Reid , abrestic@rivosinc.com, Samuel Ortiz , Jiri Slaby , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, Palmer Dabbelt , Paolo Bonzini , Uladzislau Rezki Subject: [RFC kvmtool 08/10] riscv: virtio: Enforce VIRTIO_F_ACCESS_PLATFORM feature flag. Date: Wed, 19 Apr 2023 15:23:48 -0700 Message-Id: <20230419222350.3604274-9-atishp@rivosinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230419222350.3604274-1-atishp@rivosinc.com> References: <20230419222350.3604274-1-atishp@rivosinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 4FF0F4001C X-Rspamd-Server: rspam09 X-Stat-Signature: 9spghif36fhnsgf5zh6gkg9y9csmd9o5 X-HE-Tag: 1681943058-350276 X-HE-Meta: U2FsdGVkX1/NnPmbp7MBlCPKs8U6YsHFwa0Q0/qa8vGAylT5LfApDa7Y+XRPHo09UVP3Fwh6/VS4BWSTM11/4C1g+yb8+ogzST3mJDWYjPCFicZxmnmyvaBq8RpFiNoPp7S716fhmeeIFGTFaLPsV1vE3CtGcRar+yfZnzZk9o+WB0spGej068U0AlQL/YaCel6z1xPFjB393sBlIun3FZkinu/PhEFRYdQJO8JnEugcbrAqeo6k+ekq3zpKmNztqSaDsRq1bomS1jg1cPLeQ0uhhzFN9xfTQj4LoflHJFxWJrmFRZpCN+SU1jIXtJoTgBOBurBE4gfA2J/HnMGZ4WZUWXhdyCwaJqrdhsG3WPDtFanGdkuRJ8iDRxwUcs2sTr5sA9uJXmjVnjutgQt2DV7fy0B6wR96yPAUeFPyTE0W2OP7Oy7QmyXLFEWyhEaE87Nqi+tldM65h2qxAGq2W+O9r4q0T/PNPxKirT28sjQFM68n2JQDCGyu0xRO3GSPWpmuFtYFdDS9lTCjioSyjEbZv7GQ81MgiHUcPajkxVrCPLRN4146XMQaKj5zglmLx6uNnlzL/wibb23NzqvZ5KFDc52lIiSQrfzAeYeVWgEbCWM0EmJF1M+dRPHEXnLAoKsXCAeprnq0SimvuzL1aSZciKwbMlh5cfbpa2TFPFj5l5v+WU+e9qmHcAcg7D4DnyryT7xhhv+j7Vue08wPDDO2S+7m1MrZ0VGXIXeWX2ixJJbUfgmOTPFTWGQazlK/dNsjMzSaZJYxvrSBRXDEnqSINCvJqhuDwxG764As88vh9z79huSAwvrjl3N8Nluu025Z/wLaRygthtwosJ4WwOfdX5dDTesIdjfBpJub1Inp8j1Th6mCEBth1xFpfAWhTfSu/4d0Pcyg/jUDvuAUdA4esd0BevXG1mu40k0CaSAwVR6f/URYGTTNdqA12ePjcehcOZoMOWWh8JRXuW+ WMCjt5ex 09tEd8vD4F1UV+wyVTOOAFhRdE8BKKXryZ+uPvfOiSq4b/5MmA51Pr6YKzENFzSJbNSxKDnfnWL0jMaa8pWbPuXnJmgnEMivyxZtinDNupeKro29YAHAI+hYMZczitpI4Vberiw3ALS/BtlhYs3Y4IPbHwtTAVozsw3dseHjFbFBBnfvwaiDUSVvMgQy23ZucAST6NsY2LAnHZS2xllstF7JEuLX5A18hdP/1lc6TGLUrWzhw6MKbYHM4aUk+s0dlwTtAn8h79B61nDBnUOEDHQfYuyVvPZRjmY20aFJGHvnJ93uKjjZmSyDBeUjq5JwPEVghLLbDq5AQCYntb221EEt0JAxRFp5pGafIrvkf8vgyR1HaaSwj94rxnJyb8McJWvqhntL1Lvz7sea1TWgmGJXHfU4z4TepNmKkIQxlqyu4+k2n5FFn2rP8KcttlyAi1gic1O6VKEM/Px+6LrP8h3ECafbrlKAR0pvJA+iL2vglHm5iPgZpxhEcIu4t90EfRm+u X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Rajnesh Kanwal VIRTIO_F_ACCESS_PLATFORM feature tells the guest that device will be using DMA for transfers. This forces the guest to use DMA API to allow the host to successfully access guest memory as needed. This is needed for CoVE VMs. Signed-off-by: Rajnesh Kanwal --- riscv/kvm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/riscv/kvm.c b/riscv/kvm.c index e728790..aebb6bd 100644 --- a/riscv/kvm.c +++ b/riscv/kvm.c @@ -7,6 +7,7 @@ #include #include #include +#include struct kvm_ext kvm_req_ext[] = { { DEFINE_KVM_EXT(KVM_CAP_ONE_REG) }, @@ -224,5 +225,14 @@ int kvm__arch_setup_firmware(struct kvm *kvm) u64 kvm__arch_get_virtio_host_features(struct kvm *kvm) { - return 0; + u64 features = 0; + + /* CoVE VMs mandate VIRTIO_F_ACCESS_PLATFORM feature to force use of + * SWIOTLB bounce buffers through DMA API. Without this device probe + * will fail for CoVE VMs. + */ + if (kvm->cfg.arch.cove_vm) + features |= (1ULL << VIRTIO_F_ACCESS_PLATFORM); + + return features; } -- 2.25.1