From patchwork Sat Sep 16 00:30:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140970 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1508443vqi; Fri, 15 Sep 2023 23:29:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGyYjqbAg7yy29g/UNnWax121oSNwIHwzlw4Tnwsgu2MK57wirIA8Ctb8vmBm8caUQymWI2 X-Received: by 2002:a17:902:684d:b0:1bc:224a:45c2 with SMTP id f13-20020a170902684d00b001bc224a45c2mr7099623pln.15.1694845792395; Fri, 15 Sep 2023 23:29:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694845792; cv=none; d=google.com; s=arc-20160816; b=d8ch8x8jkVsSZQp/gMFw9ZIZR6Znn1PqqxcNrKjxFQe03rFX+OeUAfCxQh3hS8vXkn sggJwTcHsFWtTpPGI/O+zeEiTFwVSiae2yVLgXCiq9PwTxcOckfH0E+uIpNosZte4aac q6IZFL9uzBn73uMn54bfIo4hHsDwnZ6Nkzp3MwKHGs+X0WeIZ7syfHQNi42gqcyBnd23 9FT/ToYNDX/P5pcQSIaBnVA9iX/cIZvIM7yc1RPd3WRyWoT4Kf3QLSxbCm7RMP4zZoMJ bRBuRZUnX6AQB0VY4MqL5RRFXclVlQBSJpRQnfTDVWiAvgGUVUgjTp/A2WEDrX2l8xp5 FbMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=CcWcgzjI/Sjr3SKdjnMS4CWAtaq/GpOs1NzqJV8HV48=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=zBklaa3FAerbp7NP0x/wmHa8UEjkrmcGetYNAvlVLuvRvN9kohSDOmRSSYA7eGKVW1 V9zNVULnCwel4aBYb/JGH+bVvGUvNE9SFG//V9au2cahL+9PZOEM3oFQcly+Ei+DpWXP BEsC9ix69t1yhiDOPHjo1v+MTl/jjn4933td1yPtbViORv61QF3Tx2PCea4XTYsH4T1k p8fRAw5jn65MjksRhyLp5SqL+FU7GTubfMLQ23w6xtAiTqTw3GZtA5fdFV6dQbyW7VEV v0zIyqHlJwN+ObjVR4fNxG3hZIdFtoFNY4sR66A9O8h6NMS5LzA7/eX1QU91dhDrV+EJ wk6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=OuiUuscc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id b14-20020a170902650e00b001bbb56b34e8si4589044plk.432.2023.09.15.23.29.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 23:29:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=OuiUuscc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 465B881668BF; Fri, 15 Sep 2023 17:32:55 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238560AbjIPAcW (ORCPT + 28 others); Fri, 15 Sep 2023 20:32:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238620AbjIPAcL (ORCPT ); Fri, 15 Sep 2023 20:32:11 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B79C11BC1 for ; Fri, 15 Sep 2023 17:31:23 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-59b50b45481so34126557b3.1 for ; Fri, 15 Sep 2023 17:31:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824283; x=1695429083; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=CcWcgzjI/Sjr3SKdjnMS4CWAtaq/GpOs1NzqJV8HV48=; b=OuiUusccrI1dBz823+RYFHRz4umrPXI3ePQ4joT6b9h1bX+K5wr0pKY7/NAepdzJ+8 N0LPT7ScUngYtOsaCgIuR7i0NDFbd/iuyX/GrqTub/2H4g8mBRJ3BiCuT/2TOAwOI+cU 31c1gRAfBEXY5+SsEVVK2ewPce5CCjAGwumjaXeiPEVU4dwXIS052fKYD6sdA5hNbwNK qbKbpVfZxrbUEcdWAfvmCIASXx1xeaTzzZDXfGsA4bSki6ozzrhs6AIP0SLDD8UbOeSl uVwl7/q4+nHxHIghDOEdOOXBUrmqaOd95gA7v28rO2+NtD7uAdx8RfT83WmbxuPgeTO9 DIuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824283; x=1695429083; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CcWcgzjI/Sjr3SKdjnMS4CWAtaq/GpOs1NzqJV8HV48=; b=tgeWtPngB4APmlaBGLkQk+jRVqZW1oDoQA4Pf2hXtB/1l7HjEDZvfHvNG8wmzGU0Df 3ilsDNMscQSEg9CKDRsJuDWEpge5XGFqNor+2LTXBnEB8IpoKyZJOXqpLutliIptyCKS bPhnhKanNlMCF7eOmFuH8RshvqCgxvMpUbmGy8mesKi6lYJqn4nxxT31YpkbEwY7GIz4 HqsJcdqATCx+3yzk2NsaQzyW8X1B91bxMmFChIdpiBA8ADhBnfM/iwNNHP7E4dVjosNY jxG97Mj6C+lZtRvXeghI0BLFrtzqVhkx5W7kXUb8mQ5GeSm3L/+DKzMuDjqUwQN9bWzJ wfcg== X-Gm-Message-State: AOJu0YxLk9yUCr353UsOUnnSGIbnZtyDyKRagMyTZIsbCWGyFqq1trmT ko1uv0y5rh196bMqy0njatlYpnysDbE= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:b612:0:b0:565:9bee:22e0 with SMTP id u18-20020a81b612000000b005659bee22e0mr85362ywh.0.1694824282871; Fri, 15 Sep 2023 17:31:22 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:53 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-2-seanjc@google.com> Subject: [PATCH 01/26] vfio: Wrap KVM helpers with CONFIG_KVM instead of CONFIG_HAVE_KVM From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:32:55 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777174621879301093 X-GMAIL-MSGID: 1777174621879301093 Wrap the helpers for getting references to KVM instances with a check on CONFIG_KVM being enabled, not on CONFIG_HAVE_KVM being defined. PPC does NOT select HAVE_KVM, despite obviously supporting KVM, and guarding code to get references to KVM based on whether or not the architecture supports KVM is nonsensical. Drop the guard around linux/kvm_host.h entirely, conditionally including a generic headers is completely unnecessary. Signed-off-by: Sean Christopherson Reviewed-by: Jason Gunthorpe Reviewed-by: Alex Williamson --- drivers/vfio/vfio.h | 2 +- drivers/vfio/vfio_main.c | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h index 307e3f29b527..c26d1ad68105 100644 --- a/drivers/vfio/vfio.h +++ b/drivers/vfio/vfio.h @@ -434,7 +434,7 @@ static inline void vfio_virqfd_exit(void) } #endif -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm); void vfio_device_put_kvm(struct vfio_device *device); #else diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 40732e8ed4c6..80e39f7a6d8f 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -16,9 +16,7 @@ #include #include #include -#ifdef CONFIG_HAVE_KVM #include -#endif #include #include #include @@ -383,7 +381,7 @@ void vfio_unregister_group_dev(struct vfio_device *device) } EXPORT_SYMBOL_GPL(vfio_unregister_group_dev); -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm) { void (*pfn)(struct kvm *kvm); From patchwork Sat Sep 16 00:30:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140939 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1478524vqi; Fri, 15 Sep 2023 21:52:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFMt/6sMbEVKFs/FvbHJAlSJXg1i7tcoOWYl4q2nv3x2wxvfn/wsEOpNVOURGQyd3M5439n X-Received: by 2002:a05:6871:5389:b0:1d6:790f:1102 with SMTP id hy9-20020a056871538900b001d6790f1102mr2831583oac.22.1694839967692; Fri, 15 Sep 2023 21:52:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694839967; cv=none; d=google.com; s=arc-20160816; b=EgX/aL69C7Uype3JpLPKcMBSk0RVkRxLmxQkvFpd12qN7vZxwQ3eD5jeL6qlaswufy EN2It2JSeUfEIQbBflRz3+rNu4afPlkh1mr/ikX3S7TG5iMoysfh8lzFxcDcLjgiYmpK yFnz/nrRUUjCFQ1pXFcyMSnFEBEpayvMmQd8rsPT2uvn0HQ7M6UWLixa3cd3l4XpYm12 3/zRWAsRhMyT8ju+KU7q+HmHXJNlONn5skak3ivHhlaHNPQ9yayAH7GpAx18LN5eGkEM VY0ClYvc2i9jOInZkEXM+GXEW/sgIlxilqO+Dgrki95zeMPw933KAftP03ZKEhWz2Uyb OVgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=NdOAPx70WjWtTXOKtIxgwEtN+XJRELer/ruyZoFwPzQ=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=W8c4nYAKwvqPbVSm2r41UVkUbmrEchJafcito7w3rfq7lMAy8YMnnJPV2BUZPdlaUp zxKzlneLVvLC8KwRN5MMSDzJq0hZ9FGbwQi+qGZnJ4jGcgMJQp/IZ9FIlSg3howuEfBz /IWjL8NJNrf3pCgRsafMoBdvtrQDATn7vpzKkRxRhE+i32a/+VcQlnZV37dvzdWSCK16 4BQJBKf7GLnls2BifWN4ufuf+RShJQ8B0m4snd7jDv1yUJQKnii53h77SK6n0LYkrLGX ARzf4oAxuUF4iW0O6RnP5YcdVyxH2sKSzLGlNAqtvZ3YibEw5mA1KExoCdnTZKQ2IZ6k MdUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=RlXJm+mZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id t23-20020a656097000000b00577ed0133d6si4056420pgu.454.2023.09.15.21.52.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 21:52:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=RlXJm+mZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 316F08213F18; Fri, 15 Sep 2023 17:33:05 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238667AbjIPAc1 (ORCPT + 28 others); Fri, 15 Sep 2023 20:32:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238610AbjIPAcK (ORCPT ); Fri, 15 Sep 2023 20:32:10 -0400 Received: from mail-oi1-x249.google.com (mail-oi1-x249.google.com [IPv6:2607:f8b0:4864:20::249]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58673CCF for ; Fri, 15 Sep 2023 17:31:25 -0700 (PDT) Received: by mail-oi1-x249.google.com with SMTP id 5614622812f47-3a741f4790fso4367788b6e.0 for ; Fri, 15 Sep 2023 17:31:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824284; x=1695429084; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=NdOAPx70WjWtTXOKtIxgwEtN+XJRELer/ruyZoFwPzQ=; b=RlXJm+mZvrxm3TdH7rqHIPrlVvTo4KquPvK8UVq3NN5veuJB/mi9ryJHvFeKMAtnPp hPxgp34Yh6rJ5lm+4syv8SCZe+7xA7Fv6c1FljwvDQiy3j2D5SfDPLC4LvU4LK+f0Hnd XzPGLz6ybxyOrNbEJSaoUgSEsV9nduzwqd8vi1CA4uDfumU39XR/gEIesx64Hi95yPKN 7OdYcCV1Sv/tEKMWY6ex/Wwd6o1RSVZW3lb5oOgf0+xs2BvFq4c43x+2pmamAn+AbBR8 aeZDJ4jC0Gn6tEare6UsiV0E76tCnR9I5p3lITfJ2MvZSPAoe7bUb/PsN2uzYgSF4MPp Dh+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824284; x=1695429084; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=NdOAPx70WjWtTXOKtIxgwEtN+XJRELer/ruyZoFwPzQ=; b=oUWcABihkIPJx6NQTqExryseSAebpCR07kKZ05YG8e8Zv7eol0wPdGIcTs1D22bhYl O8vJri8ekmWQTD+Na6uUwNDeEWMMCPbcmqo35c+fxu6MlzT4C7JgvDL1/H4lwtAot6vN xetlnE9UUTXSMvIX+MRIfn9F5XXpvt7+VPSpyQhePM+V/SBFd9y+sxLhWkxxJwiQo+46 DS7Y/vJcXJLoPRi/ZngPitBMHF2oeuZ7Um8B4fi8Uc2hnsa1JaYRrUgzk+qvHcFIk60D Y+bMrUkL75YgPD1OOYRcqZoamrDVNP0CbTrp10bY+BbibHBnjtgCIZ+hhKh2ehgSKdy3 rhlA== X-Gm-Message-State: AOJu0YxVTatkdeTjhPg4mUm2qAMXzYqIIqDs8s2aqK8RJtH7e2tBEyuX SPTdNFp0GScmGCHKnCeZ1bI4E0pgua0= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6870:b7ad:b0:1d6:4da3:ae2d with SMTP id ed45-20020a056870b7ad00b001d64da3ae2dmr1068876oab.7.1694824284654; Fri, 15 Sep 2023 17:31:24 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:54 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-3-seanjc@google.com> Subject: [PATCH 02/26] vfio: Move KVM get/put helpers to colocate it with other KVM related code From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:05 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777168513997858007 X-GMAIL-MSGID: 1777168513997858007 Move the definitions of vfio_device_get_kvm_safe() and vfio_device_put_kvm() down in vfio_main.c to colocate them with other KVM-specific functions, e.g. to allow wrapping them all with a single CONFIG_KVM check. Signed-off-by: Sean Christopherson Reviewed-by: Jason Gunthorpe Reviewed-by: Alex Williamson --- drivers/vfio/vfio_main.c | 104 +++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 80e39f7a6d8f..6368eed7b7b2 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -381,58 +381,6 @@ void vfio_unregister_group_dev(struct vfio_device *device) } EXPORT_SYMBOL_GPL(vfio_unregister_group_dev); -#if IS_ENABLED(CONFIG_KVM) -void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm) -{ - void (*pfn)(struct kvm *kvm); - bool (*fn)(struct kvm *kvm); - bool ret; - - lockdep_assert_held(&device->dev_set->lock); - - if (!kvm) - return; - - pfn = symbol_get(kvm_put_kvm); - if (WARN_ON(!pfn)) - return; - - fn = symbol_get(kvm_get_kvm_safe); - if (WARN_ON(!fn)) { - symbol_put(kvm_put_kvm); - return; - } - - ret = fn(kvm); - symbol_put(kvm_get_kvm_safe); - if (!ret) { - symbol_put(kvm_put_kvm); - return; - } - - device->put_kvm = pfn; - device->kvm = kvm; -} - -void vfio_device_put_kvm(struct vfio_device *device) -{ - lockdep_assert_held(&device->dev_set->lock); - - if (!device->kvm) - return; - - if (WARN_ON(!device->put_kvm)) - goto clear; - - device->put_kvm(device->kvm); - device->put_kvm = NULL; - symbol_put(kvm_put_kvm); - -clear: - device->kvm = NULL; -} -#endif - /* true if the vfio_device has open_device() called but not close_device() */ static bool vfio_assert_device_open(struct vfio_device *device) { @@ -1354,6 +1302,58 @@ bool vfio_file_enforced_coherent(struct file *file) } EXPORT_SYMBOL_GPL(vfio_file_enforced_coherent); +#if IS_ENABLED(CONFIG_KVM) +void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm) +{ + void (*pfn)(struct kvm *kvm); + bool (*fn)(struct kvm *kvm); + bool ret; + + lockdep_assert_held(&device->dev_set->lock); + + if (!kvm) + return; + + pfn = symbol_get(kvm_put_kvm); + if (WARN_ON(!pfn)) + return; + + fn = symbol_get(kvm_get_kvm_safe); + if (WARN_ON(!fn)) { + symbol_put(kvm_put_kvm); + return; + } + + ret = fn(kvm); + symbol_put(kvm_get_kvm_safe); + if (!ret) { + symbol_put(kvm_put_kvm); + return; + } + + device->put_kvm = pfn; + device->kvm = kvm; +} + +void vfio_device_put_kvm(struct vfio_device *device) +{ + lockdep_assert_held(&device->dev_set->lock); + + if (!device->kvm) + return; + + if (WARN_ON(!device->put_kvm)) + goto clear; + + device->put_kvm(device->kvm); + device->put_kvm = NULL; + symbol_put(kvm_put_kvm); + +clear: + device->kvm = NULL; +} +#endif + static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm) { struct vfio_device_file *df = file->private_data; From patchwork Sat Sep 16 00:30:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140918 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1460632vqi; Fri, 15 Sep 2023 20:45:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG4N+/dO86wnb/FesnKmIcUrdvOl23VnjwwuyhZ4pnKammHHfmVxRhN2wBO3WkiHWmhZjXj X-Received: by 2002:a05:6a20:3d83:b0:13d:bf07:7444 with SMTP id s3-20020a056a203d8300b0013dbf077444mr4124624pzi.0.1694835947162; Fri, 15 Sep 2023 20:45:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694835947; cv=none; d=google.com; s=arc-20160816; b=m68rf/Rvma/og00BQvCpNXE744sNkhk3GAPph3PZCMTJ1JOlMffRganAIuSLsgCPVO jgGWYYI+eduMIL7F8KpFW1O2ZoSm1eMW483+nptrao3gVGwAFlUCsahXS6fdKfWwU5mO df2pwtQ4QMANvM9I0ChsuN+RPMo3NbQoJ/Ic5eLBeinB/Vh707ROB9kORIUyqyKXtlDJ MNbhVkRIBEheiJex1A6yGhU3Fxu66A+5NsNADpD1IbqonP1Zzs2SM/bdmMjKssU2el8r pEitoL+2YFKaxowd36vebbcur+wPBBMhlGmq/VocD82SMSmXcchkAx5gJcugwZMEw9Uc 9Ufg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=nWWn+h7amRZMBDw3vQNPHGAGWvxVaFdsCPW0ONMozkY=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=jVs1OyypfzXX/niT5pCDavhJCZjM0oqB7ic5WzqWelTB49z/XaRv7bOLcWfkFXFNzR pwKLFmROBfxuDJKkVi2buH6qKWpLAHmUS0WzszNcP4DnOV7omfgkbhblggu7pec2ZDdr hBHHJZNazxlcW1H0Deseum1L5e35qYxNYNeb4XeOKh7OaU+iRdO5H8ITZfKyCA4uuLRt v/13/2nUd2nkK+Pmg9A/jJ/d4qdImienS1pzaz1vEIZ91BE6F5z/fz+1gX4/JW3juyV+ kCKWHCQZ1aM3JBC6xNkFPOx4Cg5DE8rRmntIc1eMu4faSdDdCd+NCraSV24VeCRxjDyr 4tcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=iZkx+4Z1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id jy13-20020a17090342cd00b001b80de4d3f7si4185077plb.558.2023.09.15.20.45.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:45:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=iZkx+4Z1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 6AA328348261; Fri, 15 Sep 2023 17:32:56 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238348AbjIPAcS (ORCPT + 28 others); Fri, 15 Sep 2023 20:32:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238668AbjIPAcP (ORCPT ); Fri, 15 Sep 2023 20:32:15 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72A6D1BD4 for ; Fri, 15 Sep 2023 17:31:27 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-d7ea08906b3so3161807276.1 for ; Fri, 15 Sep 2023 17:31:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824286; x=1695429086; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=nWWn+h7amRZMBDw3vQNPHGAGWvxVaFdsCPW0ONMozkY=; b=iZkx+4Z1668sMxI2NjINFfskMHO4HshWvqApQj+yXolwCZslseI+2rqTps5ehLAbhe xACwkYE+MrnGahGR5lxszwUfirkQ1qDmLL0jvr4KxJYU8Xb6viI9iX4c1edff9cgGvuE g9DozZ8QgAycpWplDf24pZjIytOEO0yhT85jShSSJOl6iGDfVV5kbFjSlxVMjbWkJP2+ XEeW5U/2J0KXuWha1pVCmzPwol+60L7/9xnburMEzuMAVRG0oNFkDP/7y07ssELOaZoL 6UGWLPtm3AEAsip/b1wJ2c/YkWSRE4hy4F2NWAkmrJ+wFFtZm3gY0x4dgbrG/v5JCTsZ 1Hwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824286; x=1695429086; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nWWn+h7amRZMBDw3vQNPHGAGWvxVaFdsCPW0ONMozkY=; b=dXh9uFQoeDpa1uR/g280dxcwooMphOzSMfNOTgRaNcdK/uzsOogHG1/iBmUDDnF0PB mJjF0u+jAoh+x+ENq6Ttlk9Iwz0jNSYx0eBnybglei6mFC70NEN5FLMG/eF/8lYslYjj LDzgCCEIiVAHIOSoCrTvdc6aDYBvqFrjDptnLaWargdyZiivuriGLALi1S4rSgpkzz2J 3VBVEMZuJhDL6kNb6XYDagF/FI9Era20wCLoBAbX3FWhWcFz63r0m0kOXOj511ZxFGfx r7uyOy4EGJiuHK7d/hEkU5OfRTFbwd8HXzX0OtYgmNZrcvKb7x/RmKlVMFDyk87psIYY c96A== X-Gm-Message-State: AOJu0YyKe9v42ozZaKGm2qkWgpHrum/FR7WjEUVcVY8xeeOLf0ZIjAhM BSSo8Zat8wggrXKg3JSbBIZR+yKS2Vo= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:98b:b0:d81:5948:970 with SMTP id bv11-20020a056902098b00b00d8159480970mr72987ybb.13.1694824286666; Fri, 15 Sep 2023 17:31:26 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:55 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-4-seanjc@google.com> Subject: [PATCH 03/26] virt: Declare and define vfio_file_set_kvm() iff CONFIG_KVM is enabled From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:32:56 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777164298179527868 X-GMAIL-MSGID: 1777164298179527868 Hide vfio_file_set_kvm() and its unique helpers if KVM is not enabled, nothing else in the kernel (or out of the kernel) should be using a KVM specific helper. Signed-off-by: Sean Christopherson Reviewed-by: Jason Gunthorpe Reviewed-by: Alex Williamson --- drivers/vfio/vfio_main.c | 2 +- include/linux/vfio.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 6368eed7b7b2..124cc88966a7 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -1352,7 +1352,6 @@ void vfio_device_put_kvm(struct vfio_device *device) clear: device->kvm = NULL; } -#endif static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm) { @@ -1388,6 +1387,7 @@ void vfio_file_set_kvm(struct file *file, struct kvm *kvm) vfio_device_file_set_kvm(file, kvm); } EXPORT_SYMBOL_GPL(vfio_file_set_kvm); +#endif /* * Sub-module support diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 454e9295970c..e80955de266c 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -311,7 +311,9 @@ static inline bool vfio_file_has_dev(struct file *file, struct vfio_device *devi #endif bool vfio_file_is_valid(struct file *file); bool vfio_file_enforced_coherent(struct file *file); +#if IS_ENABLED(CONFIG_KVM) void vfio_file_set_kvm(struct file *file, struct kvm *kvm); +#endif #define VFIO_PIN_PAGES_MAX_ENTRIES (PAGE_SIZE/sizeof(unsigned long)) From patchwork Sat Sep 16 00:30:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140895 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1445782vqi; Fri, 15 Sep 2023 19:51:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE6k43M2bAToyrDX6HpxjQcyb0EtBLR2+Bq4jHi4M5lO2ahp43Hy4sL8bX9UVhqa4AHjK8R X-Received: by 2002:a05:6a20:3d83:b0:153:5366:dec1 with SMTP id s3-20020a056a203d8300b001535366dec1mr4692078pzi.15.1694832700152; Fri, 15 Sep 2023 19:51:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694832700; cv=none; d=google.com; s=arc-20160816; b=u2trECtAFKZ3H9HRp2f24RTUvPYCUzWhxXo/NUbIfyg89YXFpircCFTU7PjgDiL3px peKfB3dP3+WmIi9zkZbhBHbtFBAtYHuZrKJXG9P2bJdk09k2Tig/CqchFJGcDA3h2Blu C6n64mo8RDsVlTDE40Q96icSCTs/r8/w3ofhOetgg8zy8YTon45CsnytuWits/2CfVSV XiAB8UIAbEhtSCNvM5q2PnF/nPTC1jPHlpnyGl9W6cOYw6b0X7rsFKzqeV8DAsn0mSRQ wMpwvTFAZUf2G31U27MeGohryMjs9a10Kt7OgIOqXmRJM1+k1c943ghYJoHCjpYk4bIH irhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=XNfaWnR713DgNOXX6oC0phI1nRzZDxqQCByPnT54704=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=unHcDT3VgOeafI5s17svfLXlVw6Ig8Rk7wAQHzFhRZul908HNlujnZ6310wUn3I7ri qnlAok7Vrzu7rfaHQzBGs4QDJumTtR625mMPhNqQbcRmB5xSE7gE3DIzDJm3mL2+Leoo MRqNmpZ8UreRIkeB150VB1+P0390FAbcrAjQ8Clk4J6WdxN+TLGUZe8axLX/+7rShP1D ohKPhbl+FBTBwfEE8hLSWyGfe/UtYsnz2jemPmkTmBiFhMJ93vul1KSnTCooErZ2hJ2H +ChEFzI20FYVyeWY8ZMC0i/HhNmO8IC/EnGQymZ1F6I8RI2pZK/7skXADoADYqj65sdt 5P1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=GzvMKYlx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id l70-20020a638849000000b0056a1a709797si4167691pgd.654.2023.09.15.19.51.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 19:51:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=GzvMKYlx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id B5F688299907; Fri, 15 Sep 2023 17:33:23 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238895AbjIPAdK (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238285AbjIPAcR (ORCPT ); Fri, 15 Sep 2023 20:32:17 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C87052703 for ; Fri, 15 Sep 2023 17:31:29 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d8185415dfbso3137190276.3 for ; Fri, 15 Sep 2023 17:31:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824289; x=1695429089; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=XNfaWnR713DgNOXX6oC0phI1nRzZDxqQCByPnT54704=; b=GzvMKYlxmkcgqGCbubXzLENmZhOVAL9A8dIdn9U3CFBbJjzJZF/d9h0IWEajBvKPgE +bQwOV0LZHfmRj70zrJRKofYBVMUSjg60AKQ0vpvrYWXhqB+WYei6h69inSZpU9y0rOm U6PD4T1sZoD02Gldzs2hBa5Z8yXP5EPQbHZoyMseqMuGTfUF3L85piqyc8Tsg7qjqmQu S//YQTG5FJQUTOqa3zCXUdj3PF0dcBIvPKMipD40UGfAg4ghGZog5hxUF1D+75f57DcH iS5FfbFMUPcjlPnZH3zgKicydR23drSOKzIAysnD09TILP9GkedPbp0AYSNdvW+fPurQ cxWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824289; x=1695429089; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XNfaWnR713DgNOXX6oC0phI1nRzZDxqQCByPnT54704=; b=QcvzpRxhIdtp5naNDxw1jyVXMRuN//cZOcGqcseVnMqPrjommzmiKdY1+55TKsdnj3 ENmlQkCYUwb0utUG9Jr7GT7PPsd1f0+zF2LCSEB0BRwPBxnQ1/AbQpSnRPBdPJjWfPW7 MkkLyOr3VOCR+1oJ6ch7NsILE0LxF4j5JHyga6nPz1Jt3vOgAuSJd4vx53LLiC6O0fpW 5R1TB22Lrtmp6g6pZG6gBT0aKG7n6KVIaqCUyEapRUuIVKWJHU0S/I3qoaTqILcVfJxj Q/N570W2jBL4op4I3mtFyvHS3No+d7+zNSujYEx4tqN8RwXvQWHZBgX5vgiZk2dt6Tl+ xYgA== X-Gm-Message-State: AOJu0Yx+HM4FUFJe7dDk7jZsRBuPEoGJ4mcrrOb5fY8+6e8V5viykmfu rWGO3apgdZBVlWlycG/zPgaLQvZEsK4= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:d856:0:b0:d13:856b:c10a with SMTP id p83-20020a25d856000000b00d13856bc10amr78847ybg.3.1694824288887; Fri, 15 Sep 2023 17:31:28 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:56 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-5-seanjc@google.com> Subject: [PATCH 04/26] vfio: Add struct to hold KVM assets and dedup group vs. iommufd code From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:23 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777160893567094013 X-GMAIL-MSGID: 1777160893567094013 Add a struct to hold the KVM assets need to manage and pass along KVM references to VFIO devices. Providing a common struct deduplicates the group vs. iommufd code, and will make it easier to rework the attachment logic so that VFIO doesn't have to do a symbol lookup to retrieve the get/put helpers from KVM. Signed-off-by: Sean Christopherson Reviewed-by: Alex Williamson --- drivers/vfio/device_cdev.c | 9 +------- drivers/vfio/group.c | 18 ++-------------- drivers/vfio/vfio.h | 22 +++++++++---------- drivers/vfio/vfio_main.c | 43 +++++++++++++++++++++++++++----------- 4 files changed, 45 insertions(+), 47 deletions(-) diff --git a/drivers/vfio/device_cdev.c b/drivers/vfio/device_cdev.c index e75da0a70d1f..e484d6d6400a 100644 --- a/drivers/vfio/device_cdev.c +++ b/drivers/vfio/device_cdev.c @@ -46,13 +46,6 @@ int vfio_device_fops_cdev_open(struct inode *inode, struct file *filep) return ret; } -static void vfio_df_get_kvm_safe(struct vfio_device_file *df) -{ - spin_lock(&df->kvm_ref_lock); - vfio_device_get_kvm_safe(df->device, df->kvm); - spin_unlock(&df->kvm_ref_lock); -} - long vfio_df_ioctl_bind_iommufd(struct vfio_device_file *df, struct vfio_device_bind_iommufd __user *arg) { @@ -99,7 +92,7 @@ long vfio_df_ioctl_bind_iommufd(struct vfio_device_file *df, * a reference. This reference is held until device closed. * Save the pointer in the device for use by drivers. */ - vfio_df_get_kvm_safe(df); + vfio_device_get_kvm_safe(df->device, &df->kvm_ref); ret = vfio_df_open(df); if (ret) diff --git a/drivers/vfio/group.c b/drivers/vfio/group.c index 610a429c6191..756e47ff4cf0 100644 --- a/drivers/vfio/group.c +++ b/drivers/vfio/group.c @@ -157,13 +157,6 @@ static int vfio_group_ioctl_set_container(struct vfio_group *group, return ret; } -static void vfio_device_group_get_kvm_safe(struct vfio_device *device) -{ - spin_lock(&device->group->kvm_ref_lock); - vfio_device_get_kvm_safe(device, device->group->kvm); - spin_unlock(&device->group->kvm_ref_lock); -} - static int vfio_df_group_open(struct vfio_device_file *df) { struct vfio_device *device = df->device; @@ -184,7 +177,7 @@ static int vfio_df_group_open(struct vfio_device_file *df) * the pointer in the device for use by drivers. */ if (device->open_count == 0) - vfio_device_group_get_kvm_safe(device); + vfio_device_get_kvm_safe(device, &device->group->kvm_ref); df->iommufd = device->group->iommufd; if (df->iommufd && vfio_device_is_noiommu(device) && device->open_count == 0) { @@ -560,7 +553,7 @@ static struct vfio_group *vfio_group_alloc(struct iommu_group *iommu_group, refcount_set(&group->drivers, 1); mutex_init(&group->group_lock); - spin_lock_init(&group->kvm_ref_lock); + spin_lock_init(&group->kvm_ref.lock); INIT_LIST_HEAD(&group->device_list); mutex_init(&group->device_lock); group->iommu_group = iommu_group; @@ -884,13 +877,6 @@ bool vfio_group_enforced_coherent(struct vfio_group *group) return ret; } -void vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm) -{ - spin_lock(&group->kvm_ref_lock); - group->kvm = kvm; - spin_unlock(&group->kvm_ref_lock); -} - /** * vfio_file_has_dev - True if the VFIO file is a handle for device * @file: VFIO file to check diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h index c26d1ad68105..a1f741365075 100644 --- a/drivers/vfio/vfio.h +++ b/drivers/vfio/vfio.h @@ -12,18 +12,23 @@ #include #include +struct kvm; struct iommufd_ctx; struct iommu_group; struct vfio_container; +struct vfio_kvm_reference { + struct kvm *kvm; + spinlock_t lock; +}; + struct vfio_device_file { struct vfio_device *device; struct vfio_group *group; u8 access_granted; u32 devid; /* only valid when iommufd is valid */ - spinlock_t kvm_ref_lock; /* protect kvm field */ - struct kvm *kvm; + struct vfio_kvm_reference kvm_ref; struct iommufd_ctx *iommufd; /* protected by struct vfio_device_set::lock */ }; @@ -88,11 +93,10 @@ struct vfio_group { #endif enum vfio_group_type type; struct mutex group_lock; - struct kvm *kvm; + struct vfio_kvm_reference kvm_ref; struct file *opened_file; struct blocking_notifier_head notifier; struct iommufd_ctx *iommufd; - spinlock_t kvm_ref_lock; unsigned int cdev_device_open_cnt; }; @@ -108,7 +112,6 @@ void vfio_device_group_unuse_iommu(struct vfio_device *device); void vfio_df_group_close(struct vfio_device_file *df); struct vfio_group *vfio_group_from_file(struct file *file); bool vfio_group_enforced_coherent(struct vfio_group *group); -void vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm); bool vfio_device_has_container(struct vfio_device *device); int __init vfio_group_init(void); void vfio_group_cleanup(void); @@ -171,10 +174,6 @@ static inline bool vfio_group_enforced_coherent(struct vfio_group *group) return true; } -static inline void vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm) -{ -} - static inline bool vfio_device_has_container(struct vfio_device *device) { return false; @@ -435,11 +434,12 @@ static inline void vfio_virqfd_exit(void) #endif #if IS_ENABLED(CONFIG_KVM) -void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm); +void vfio_device_get_kvm_safe(struct vfio_device *device, + struct vfio_kvm_reference *ref); void vfio_device_put_kvm(struct vfio_device *device); #else static inline void vfio_device_get_kvm_safe(struct vfio_device *device, - struct kvm *kvm) + struct vfio_kvm_reference *ref) { } diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 124cc88966a7..e77e8c6aae2f 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -397,7 +397,7 @@ vfio_allocate_device_file(struct vfio_device *device) return ERR_PTR(-ENOMEM); df->device = device; - spin_lock_init(&df->kvm_ref_lock); + spin_lock_init(&df->kvm_ref.lock); return df; } @@ -1303,7 +1303,8 @@ bool vfio_file_enforced_coherent(struct file *file) EXPORT_SYMBOL_GPL(vfio_file_enforced_coherent); #if IS_ENABLED(CONFIG_KVM) -void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm) +void vfio_device_get_kvm_safe(struct vfio_device *device, + struct vfio_kvm_reference *ref) { void (*pfn)(struct kvm *kvm); bool (*fn)(struct kvm *kvm); @@ -1311,28 +1312,33 @@ void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm) lockdep_assert_held(&device->dev_set->lock); - if (!kvm) - return; + spin_lock(&ref->lock); + + if (!ref->kvm) + goto out; pfn = symbol_get(kvm_put_kvm); if (WARN_ON(!pfn)) - return; + goto out; fn = symbol_get(kvm_get_kvm_safe); if (WARN_ON(!fn)) { symbol_put(kvm_put_kvm); - return; + goto out; } - ret = fn(kvm); + ret = fn(ref->kvm); symbol_put(kvm_get_kvm_safe); if (!ret) { symbol_put(kvm_put_kvm); - return; + goto out; } device->put_kvm = pfn; - device->kvm = kvm; + device->kvm = ref->kvm; + +out: + spin_unlock(&ref->lock); } void vfio_device_put_kvm(struct vfio_device *device) @@ -1353,6 +1359,21 @@ void vfio_device_put_kvm(struct vfio_device *device) device->kvm = NULL; } +static void vfio_device_set_kvm(struct vfio_kvm_reference *ref, + struct kvm *kvm) +{ + spin_lock(&ref->lock); + ref->kvm = kvm; + spin_unlock(&ref->lock); +} + +static void vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm) +{ +#if IS_ENABLED(CONFIG_VFIO_GROUP) + vfio_device_set_kvm(&group->kvm_ref, kvm); +#endif +} + static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm) { struct vfio_device_file *df = file->private_data; @@ -1362,9 +1383,7 @@ static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm) * be propagated to vfio_device::kvm when the file is bound to * iommufd successfully in the vfio device cdev path. */ - spin_lock(&df->kvm_ref_lock); - df->kvm = kvm; - spin_unlock(&df->kvm_ref_lock); + vfio_device_set_kvm(&df->kvm_ref, kvm); } /** From patchwork Sat Sep 16 00:30:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140859 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1422495vqi; Fri, 15 Sep 2023 18:32:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGEuIns8M5ZhzNzjiRWUloGY+zvN1agjjKG5r0va2ZyKy5+PeKy5u1Hgbs1ZfUKEDOt6rOa X-Received: by 2002:a17:903:191:b0:1c3:8539:c358 with SMTP id z17-20020a170903019100b001c38539c358mr3246971plg.35.1694827938768; Fri, 15 Sep 2023 18:32:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694827938; cv=none; d=google.com; s=arc-20160816; b=SQJOvMBRI49C5fpkOqBVPALFFvgqYXtUPN9kDZiDBexJae5BNSE4kwuO4vEPdi2/Kv 7nDscL3PJW0Ito6PJMTh0nUixzxMSb2WsG7OgVcOmU60Mg4FhRAKgQnlwPKaBzu40LTW BQUzBY15OKAlmnfftmMyC8KsR5IolmcctBsB/5C3A0D5azSAtNZXT8TkoLhxSpU9cy+I +ak1pMVWr8ryYjBOO1TITLTWyUOTiXxmJmeBddN/WRL9EaB7ia4CuGdbetmeuWShKT9T Qzm8TWF2XZVm/kwbmo7aUMBBOmhmfTzcNyNTnGAuoTPZf8S6aTt+EAO6S6qLoS8gYifB 0XgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=C0sn2AnVcRbsYEvqFgh4BzWbc2uKAyyxP92cnWXv5Gc=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=S5TYZX0si/6Q/TKaN0V/LetOPBl5TfaZ51tErVFcgSJY5YJOP+7iKtFvdoYiJD79UR /EKHjsg2mQDz8j9k9aiLpQluo9kmV2Ld09ls2di16LnboFwO+zvltJOB7kqh1uguYjAF bIRUcgsXXQ3z7pIlmVzJSSJvvgALKok6As7F4pucLh+nKRXKHK3MPka6Jm14W5a9O9/w IRKgJ9yietQcZlFqC/ojD4iiSwuVlN6mfCs7BVbwIEOzv2HatnWYJpqyPBIVuKReFtDK e/vCzJ3E2CN8r0GPBCCcYYImS4Kx3G0Eou9qrLdvNNLNE4vhy+xBpXP0qJfcgc3noTRa pexw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=jvDBnkFi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id c5-20020a170902d48500b001bbb8324bd5si4226468plg.479.2023.09.15.18.32.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 18:32:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=jvDBnkFi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 531608389DBA; Fri, 15 Sep 2023 17:34:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239018AbjIPAdU (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34228 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238391AbjIPAcT (ORCPT ); Fri, 15 Sep 2023 20:32:19 -0400 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A7F3271E for ; Fri, 15 Sep 2023 17:31:31 -0700 (PDT) Received: by mail-pl1-x649.google.com with SMTP id d9443c01a7336-1c0cfc2b995so24151615ad.2 for ; Fri, 15 Sep 2023 17:31:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824291; x=1695429091; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=C0sn2AnVcRbsYEvqFgh4BzWbc2uKAyyxP92cnWXv5Gc=; b=jvDBnkFi8COrquzeFvzZe1NGIcw2+MdT3qMRI4S7MM7TtszA/o4dFGVmucHUardQ0N nGh/1bkIjVTOZz4YECMI/AWeidonXnZiVATf/POPsl2fjOLRExjl3/OV0GV3vw5y5BjP 6YYSZ48XUlyCXQuzXpGRve5bffxA0OSzOhkTIJj8ObEZO9M3vcX8ub2TXheKDnfYpGDJ WW9O9i8K/UqxEYpWt+N+D4xO1KLq5GpE5gSkZQbgtA2XIpHKtfv5EX2VrBgQz1Hb2oK6 aDcZuaC1yLFZfkK0plhW0iiZN+cRhrYegjy5+73NURC3ACgUCig5UVuHKxhPx6BM7Ra4 PyYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824291; x=1695429091; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=C0sn2AnVcRbsYEvqFgh4BzWbc2uKAyyxP92cnWXv5Gc=; b=D1hzDJSd3LenmWyZCkPXBJFfWSoAnbtHy9BN54/PROl0lJv0CrYoHlAmi60CObvDAX /UzkEF5OApD83iRHjjkQcRCl0tmDga8dNfu+6MpXDFUwpgiUFVBt8iKWB36urHjHoRCq mrQzC2wJHhhNs+Ga7LEiQpFNKdCdsVDV0z+2aGV4KR0kXHj853Rt+LToydZm33A9PxO0 sf+pglGh/SqMGu8bF1b8lyCKGiSc39KXMdhnHxRfvqcL+M76WeRaHdJ6k1+uNoQ6nwiZ U0JQtYuGTka1t1O+R+9ROIs6Y7G0UMUszrpbxRZk6rnZ8yBNFd3tcf8mVHPouu34O8Tq wBWA== X-Gm-Message-State: AOJu0Yw+6U2uW+foaEwrSTJJi31PvXrWoj4tirn8w0CfeBuf3CB2h6tN mBH15GIJnXa272E2yEgrwC0/RAPipP8= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:903:41c2:b0:1c1:fbec:bc39 with SMTP id u2-20020a17090341c200b001c1fbecbc39mr73146ple.4.1694824290982; Fri, 15 Sep 2023 17:31:30 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:57 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-6-seanjc@google.com> Subject: [PATCH 05/26] vfio: KVM: Pass get/put helpers from KVM to VFIO, don't do circular lookup From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:02 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777155900617648159 X-GMAIL-MSGID: 1777155900617648159 Explicitly pass KVM's get/put helpers to VFIO when attaching a VM to VFIO instead of having VFIO do a symbol lookup back into KVM. Having both KVM and VFIO do symbol lookups increases the overall complexity and places an unnecessary dependency on KVM (from VFIO) without adding any value. Signed-off-by: Sean Christopherson Reviewed-by: Alex Williamson --- drivers/vfio/vfio.h | 2 ++ drivers/vfio/vfio_main.c | 74 +++++++++++++++++++--------------------- include/linux/vfio.h | 4 ++- virt/kvm/vfio.c | 9 +++-- 4 files changed, 47 insertions(+), 42 deletions(-) diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h index a1f741365075..eec51c7ee822 100644 --- a/drivers/vfio/vfio.h +++ b/drivers/vfio/vfio.h @@ -19,6 +19,8 @@ struct vfio_container; struct vfio_kvm_reference { struct kvm *kvm; + bool (*get_kvm)(struct kvm *kvm); + void (*put_kvm)(struct kvm *kvm); spinlock_t lock; }; diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index e77e8c6aae2f..1f58ab6dbcd2 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include @@ -1306,38 +1305,22 @@ EXPORT_SYMBOL_GPL(vfio_file_enforced_coherent); void vfio_device_get_kvm_safe(struct vfio_device *device, struct vfio_kvm_reference *ref) { - void (*pfn)(struct kvm *kvm); - bool (*fn)(struct kvm *kvm); - bool ret; - lockdep_assert_held(&device->dev_set->lock); + /* + * Note! The "kvm" and "put_kvm" pointers *must* be transferred to the + * device so that the device can put its reference to KVM. KVM can + * invoke vfio_device_set_kvm() to detach from VFIO, i.e. nullify all + * pointers in @ref, even if a device holds a reference to KVM! That + * also means that detaching KVM from VFIO only prevents "new" devices + * from using KVM, it doesn't invalidate KVM references in existing + * devices. + */ spin_lock(&ref->lock); - - if (!ref->kvm) - goto out; - - pfn = symbol_get(kvm_put_kvm); - if (WARN_ON(!pfn)) - goto out; - - fn = symbol_get(kvm_get_kvm_safe); - if (WARN_ON(!fn)) { - symbol_put(kvm_put_kvm); - goto out; + if (ref->kvm && ref->get_kvm(ref->kvm)) { + device->kvm = ref->kvm; + device->put_kvm = ref->put_kvm; } - - ret = fn(ref->kvm); - symbol_put(kvm_get_kvm_safe); - if (!ret) { - symbol_put(kvm_put_kvm); - goto out; - } - - device->put_kvm = pfn; - device->kvm = ref->kvm; - -out: spin_unlock(&ref->lock); } @@ -1353,28 +1336,37 @@ void vfio_device_put_kvm(struct vfio_device *device) device->put_kvm(device->kvm); device->put_kvm = NULL; - symbol_put(kvm_put_kvm); - clear: device->kvm = NULL; } static void vfio_device_set_kvm(struct vfio_kvm_reference *ref, - struct kvm *kvm) + struct kvm *kvm, + bool (*get_kvm)(struct kvm *kvm), + void (*put_kvm)(struct kvm *kvm)) { + if (WARN_ON_ONCE(kvm && (!get_kvm || !put_kvm))) + return; + spin_lock(&ref->lock); ref->kvm = kvm; + ref->get_kvm = get_kvm; + ref->put_kvm = put_kvm; spin_unlock(&ref->lock); } -static void vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm) +static void vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm, + bool (*get_kvm)(struct kvm *kvm), + void (*put_kvm)(struct kvm *kvm)) { #if IS_ENABLED(CONFIG_VFIO_GROUP) - vfio_device_set_kvm(&group->kvm_ref, kvm); + vfio_device_set_kvm(&group->kvm_ref, kvm, get_kvm, put_kvm); #endif } -static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm) +static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm, + bool (*get_kvm)(struct kvm *kvm), + void (*put_kvm)(struct kvm *kvm)) { struct vfio_device_file *df = file->private_data; @@ -1383,27 +1375,31 @@ static void vfio_device_file_set_kvm(struct file *file, struct kvm *kvm) * be propagated to vfio_device::kvm when the file is bound to * iommufd successfully in the vfio device cdev path. */ - vfio_device_set_kvm(&df->kvm_ref, kvm); + vfio_device_set_kvm(&df->kvm_ref, kvm, get_kvm, put_kvm); } /** * vfio_file_set_kvm - Link a kvm with VFIO drivers * @file: VFIO group file or VFIO device file * @kvm: KVM to link + * @get_kvm: Callback to get a reference to @kvm + * @put_kvm: Callback to put a reference to @kvm * * When a VFIO device is first opened the KVM will be available in * device->kvm if one was associated with the file. */ -void vfio_file_set_kvm(struct file *file, struct kvm *kvm) +void vfio_file_set_kvm(struct file *file, struct kvm *kvm, + bool (*get_kvm)(struct kvm *kvm), + void (*put_kvm)(struct kvm *kvm)) { struct vfio_group *group; group = vfio_group_from_file(file); if (group) - vfio_group_set_kvm(group, kvm); + vfio_group_set_kvm(group, kvm, get_kvm, put_kvm); if (vfio_device_from_file(file)) - vfio_device_file_set_kvm(file, kvm); + vfio_device_file_set_kvm(file, kvm, get_kvm, put_kvm); } EXPORT_SYMBOL_GPL(vfio_file_set_kvm); #endif diff --git a/include/linux/vfio.h b/include/linux/vfio.h index e80955de266c..35e970e3d3fb 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -312,7 +312,9 @@ static inline bool vfio_file_has_dev(struct file *file, struct vfio_device *devi bool vfio_file_is_valid(struct file *file); bool vfio_file_enforced_coherent(struct file *file); #if IS_ENABLED(CONFIG_KVM) -void vfio_file_set_kvm(struct file *file, struct kvm *kvm); +void vfio_file_set_kvm(struct file *file, struct kvm *kvm, + bool (*get_kvm)(struct kvm *kvm), + void (*put_kvm)(struct kvm *kvm)); #endif #define VFIO_PIN_PAGES_MAX_ENTRIES (PAGE_SIZE/sizeof(unsigned long)) diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c index ca24ce120906..f14fcbb34bc6 100644 --- a/virt/kvm/vfio.c +++ b/virt/kvm/vfio.c @@ -37,13 +37,18 @@ struct kvm_vfio { static void kvm_vfio_file_set_kvm(struct file *file, struct kvm *kvm) { - void (*fn)(struct file *file, struct kvm *kvm); + void (*fn)(struct file *file, struct kvm *kvm, + bool (*get_kvm)(struct kvm *kvm), + void (*put_kvm)(struct kvm *kvm)); fn = symbol_get(vfio_file_set_kvm); if (!fn) return; - fn(file, kvm); + if (kvm) + fn(file, kvm, kvm_get_kvm_safe, kvm_put_kvm); + else + fn(file, kvm, NULL, NULL); symbol_put(vfio_file_set_kvm); } From patchwork Sat Sep 16 00:30:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140921 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1461815vqi; Fri, 15 Sep 2023 20:50:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEowGKyOLRuOD67/WBDCuTihDPb/Ic8UlN7E/lq5TEmUr8DF5/xBAnnHJ5pvJOWkK71QoWV X-Received: by 2002:a17:90a:ca10:b0:26d:b12:8383 with SMTP id x16-20020a17090aca1000b0026d0b128383mr3304874pjt.8.1694836253186; Fri, 15 Sep 2023 20:50:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694836253; cv=none; d=google.com; s=arc-20160816; b=BlZYB5nckwsNPlTULGnDTMidLki+IZzwAl5oSaQA97MVgc/c2EaetEUQlA8dS9jacO rd8P0vMyi/wHjhYANVXa+saNNFGzjMXDEtQXatVoRmnVPbVKtba1K9KEkFgLTmTi2Jo9 fcLCulbpLrkxCKGvp9XNbWMXr000bUkGZqEhGrIM9mxJtLLSdHElGDkZMwpBBIZExjmQ um+oEPoHFuJgV2KF6O5/3f87Gh0ThrxjtCRoYg4zHVJyugC2InsyfVdkiftGA0clsrsu 3xBTDEneR7mNGZQV3qfFW5n1o4XJHGId9n8WGDsd7PtPAY4IEAPjcTIJr5BMHEStpBSd L5dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=qo2m7xsYGxv0LvZBx1IOU3suTnYOrGiO/bIX70mqbME=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=vFYb7gIA612J0RwuZz8sIK12yCKe6zXnMvMWlIVsDUGGjpvqb3bovAxS+imJlD0Red aGQJNDK5sM53UERCe8g27cqWaCZlsNxDa2elh9jGsKO6f1OYx3jWogQhKt5EocjTrOOA irhvG5qQHFTTQ08L6lQ/+F78UbNCUdZHtSwTDcBQ9Tae2JBJktADpY9THeCs27d6No77 KMBITa56tCABwviWXscWsKE4lCaYA/w5QN10qEqzpvlpGfY1cX5qeSulrr9YZDeNytVw E8uprTS9kxtrEoz5zjnxW01/Hfbl0V9r5Bs+x+BSrixHVQc0s3DdIy3pDGrDL4IFN4X4 EqZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=0Xk8gZPf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id i10-20020a17090a974a00b002746a22127esi4113630pjw.124.2023.09.15.20.50.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:50:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=0Xk8gZPf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id DD5A680ACB7D; Fri, 15 Sep 2023 17:35:32 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239105AbjIPAfE (ORCPT + 28 others); Fri, 15 Sep 2023 20:35:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37892 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239081AbjIPAeW (ORCPT ); Fri, 15 Sep 2023 20:34:22 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B951273C for ; Fri, 15 Sep 2023 17:31:33 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-d7ec535fe42so3057562276.1 for ; Fri, 15 Sep 2023 17:31:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824292; x=1695429092; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=qo2m7xsYGxv0LvZBx1IOU3suTnYOrGiO/bIX70mqbME=; b=0Xk8gZPflQVqaq/vlUJdcRa9p7xIMOzEa5g9R42WTgCevO3d5rSYLZjmLcqdaKD+OT hif3vZaEQg18h0S3QKbC7F9dj9R2Pp4vparuModnLT2yf/tR8fwlco7cqJwYaMekK2Ih IbdLjirPOEJs+F4hM7TgiB8Frh+lOWgXKoN3h24nBPndBVizR74FLh3A+l3WiA0JUFSe gGjMnbO+/D7TY9rIiQTo2hKzDcyrhlFn1QcWDnr72nyQRv6sBYi14uq7CcjnLbvQThVs Y158Bgn/1VYRbgy8SSitkxWpQUZwm4r3vP95VIXYT4VivNqCF9pIE/EY+b5gWBkhhdon ErbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824292; x=1695429092; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qo2m7xsYGxv0LvZBx1IOU3suTnYOrGiO/bIX70mqbME=; b=b//+QIK9ZGj2quHu/dTM/H6USG49kP/s7OC1SgDYLVM3+zcRD/HuhUywbImQCYmAry lMndUZqPjgq9lKwP2+tLqgbHtGE4Dx1px70WwjFlfoRioyGk55slb3SgvofKHLi0n9Aq uCHtqqNORePH0vY8QXt6muRJtJ40XHY12WzTMv125nhu0MHJTuYg7gHCoHu3XGYag9FS RC6mYQC7D1APn++m4BArwfgzBwHX3gOilWWn+5ISS3YqHT1RP2p0dgnSUy2WZ2B/4+Zg TiCxi/Td562tVKjHhD1DG57znBeA3XqhLaPi3XmK87WSCXjFf89izUj+FbakxEpGtUg/ Fm6g== X-Gm-Message-State: AOJu0YyWcHhYMK9a5Vk0Tsdva50oIXAGRX9wwwoTg+PTu+WISR2q4N1w yCfYZlB/02dUMsODBBxdSg03AKXudWk= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:d045:0:b0:d7e:afff:c8fa with SMTP id h66-20020a25d045000000b00d7eafffc8famr73977ybg.5.1694824292733; Fri, 15 Sep 2023 17:31:32 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:58 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-7-seanjc@google.com> Subject: [PATCH 06/26] KVM: Drop CONFIG_KVM_VFIO and just look at KVM+VFIO From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:35:32 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777164618969159820 X-GMAIL-MSGID: 1777164618969159820 Drop KVM's KVM_VFIO Kconfig, and instead compile in VFIO support if and only if VFIO itself is enabled. Similar to the recent change to have VFIO stop looking at HAVE_KVM, compiling in support for talking to VFIO just because the architecture supports VFIO is nonsensical. This fixes a bug where RISC-V doesn't select KVM_VFIO, i.e. would silently fail to do connect KVM and VFIO, even though RISC-V supports VFIO. The bug is benign as the only driver in all of Linux that actually uses the KVM reference provided by VFIO is KVM-GT, which is x86/Intel specific. Signed-off-by: Sean Christopherson Reviewed-by: Jason Gunthorpe Reviewed-by: Alex Williamson --- arch/arm64/kvm/Kconfig | 1 - arch/powerpc/kvm/Kconfig | 1 - arch/s390/kvm/Kconfig | 1 - arch/x86/kvm/Kconfig | 1 - virt/kvm/Kconfig | 3 --- virt/kvm/Makefile.kvm | 4 +++- virt/kvm/vfio.h | 2 +- 7 files changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 83c1e09be42e..2b5c332f157d 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -28,7 +28,6 @@ menuconfig KVM select KVM_MMIO select KVM_GENERIC_DIRTYLOG_READ_PROTECT select KVM_XFER_TO_GUEST_WORK - select KVM_VFIO select HAVE_KVM_EVENTFD select HAVE_KVM_IRQFD select HAVE_KVM_DIRTY_RING_ACQ_REL diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig index 902611954200..c4beb49c0eb2 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig @@ -22,7 +22,6 @@ config KVM select PREEMPT_NOTIFIERS select HAVE_KVM_EVENTFD select HAVE_KVM_VCPU_ASYNC_IOCTL - select KVM_VFIO select IRQ_BYPASS_MANAGER select HAVE_KVM_IRQ_BYPASS select INTERVAL_TREE diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig index 45fdf2a9b2e3..459d536116a6 100644 --- a/arch/s390/kvm/Kconfig +++ b/arch/s390/kvm/Kconfig @@ -31,7 +31,6 @@ config KVM select HAVE_KVM_IRQ_ROUTING select HAVE_KVM_INVALID_WAKEUPS select HAVE_KVM_NO_POLL - select KVM_VFIO select INTERVAL_TREE select MMU_NOTIFIER help diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig index ed90f148140d..0f01e5600b5f 100644 --- a/arch/x86/kvm/Kconfig +++ b/arch/x86/kvm/Kconfig @@ -45,7 +45,6 @@ config KVM select HAVE_KVM_NO_POLL select KVM_XFER_TO_GUEST_WORK select KVM_GENERIC_DIRTYLOG_READ_PROTECT - select KVM_VFIO select INTERVAL_TREE select HAVE_KVM_PM_NOTIFIER if PM select KVM_GENERIC_HARDWARE_ENABLING diff --git a/virt/kvm/Kconfig b/virt/kvm/Kconfig index 484d0873061c..f0be3b55cea6 100644 --- a/virt/kvm/Kconfig +++ b/virt/kvm/Kconfig @@ -59,9 +59,6 @@ config HAVE_KVM_MSI config HAVE_KVM_CPU_RELAX_INTERCEPT bool -config KVM_VFIO - bool - config HAVE_KVM_INVALID_WAKEUPS bool diff --git a/virt/kvm/Makefile.kvm b/virt/kvm/Makefile.kvm index 2c27d5d0c367..29373b59d89a 100644 --- a/virt/kvm/Makefile.kvm +++ b/virt/kvm/Makefile.kvm @@ -6,7 +6,9 @@ KVM ?= ../../../virt/kvm kvm-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o -kvm-$(CONFIG_KVM_VFIO) += $(KVM)/vfio.o +ifdef CONFIG_VFIO +kvm-y += $(KVM)/vfio.o +endif kvm-$(CONFIG_KVM_MMIO) += $(KVM)/coalesced_mmio.o kvm-$(CONFIG_KVM_ASYNC_PF) += $(KVM)/async_pf.o kvm-$(CONFIG_HAVE_KVM_IRQ_ROUTING) += $(KVM)/irqchip.o diff --git a/virt/kvm/vfio.h b/virt/kvm/vfio.h index e130a4a03530..af475a323965 100644 --- a/virt/kvm/vfio.h +++ b/virt/kvm/vfio.h @@ -2,7 +2,7 @@ #ifndef __KVM_VFIO_H #define __KVM_VFIO_H -#ifdef CONFIG_KVM_VFIO +#if IS_ENABLED(CONFIG_KVM) && IS_ENABLED(CONFIG_VFIO) int kvm_vfio_ops_init(void); void kvm_vfio_ops_exit(void); #else From patchwork Sat Sep 16 00:30:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140993 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1536567vqi; Sat, 16 Sep 2023 00:54:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEFjoHavttA6yw5BxdzPtySdNkvoPrP/zzNa9BSCTLlTz/rieDH4523YNeVnSlJw7lnd4xA X-Received: by 2002:a05:6a20:7f84:b0:154:6480:8588 with SMTP id d4-20020a056a207f8400b0015464808588mr3923838pzj.0.1694850871727; Sat, 16 Sep 2023 00:54:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694850871; cv=none; d=google.com; s=arc-20160816; b=Ca+LSu2YGrkG9C76P7fKeNyElm8OLfSOjuTXjS2gQ3EqUZ68UUXVDrwBDWp4dPX9uZ dI3oSats3RVDcH7NW02N/OyBoVYQDSZKj+N5AhzLJHGWMVKNjg/PrHiPHGm5Ukv0R5ps 6kRzHc9gYnpAFNz9ikSbW/S8QyjIIDNI9nzxwHE0SSdtaTWWJaSY4cK1drd2ZY0zFVBB mPb0g90aaJbVmgW+JxFC9CGyOqOWvXuk1fj2jjfJUKDoQiN8S32E8jFq/g/mUcm/+THW eeVJjzOEHerKQQsTAJ/DxWC4rrrljohV7P36EMkVGt7gfLw6tLAruHYhYgfK00aKLDDE CC9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=XQRlLqUbNuYp1+FU2drQZXL0G0BiKv3N4ijMXeK3kKU=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=lv6r5DHMC30Si6uIViaACL/qPu/bRW58tZZ2l3V72FE4m4ihH1yWeiiV4wc7DpBh43 2zQSaxwBoku5AVG1pAXgKxh+DeRi/8+IjZ8N3+mkJjDMLjdNt0yqAhGWEqsDdOay6bV8 Qbw7k+HGkhKEsdc5dUhuO/d3s1qgEjon2kEkArvuIU7eSo4BmVV72TUI2EsvjnHWMf2T Gsvf936EBdCU737dQ0ohc0LZNtkS95R4LreIOylhc2/UlWRP7PIPQZaw64YNwduVkwR2 xpgqeytXgrlT8AFMgTLo1QQvBhHhnM/VHIeRlWZKhW7LkK51/KaGUuUm658kdGEiY5zP r31A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=pj+m+tw+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id bs66-20020a632845000000b0057806be7290si3668139pgb.451.2023.09.16.00.54.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 00:54:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=pj+m+tw+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id BB1DC82B4869; Fri, 15 Sep 2023 17:33:23 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238792AbjIPAdH (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238393AbjIPAcT (ORCPT ); Fri, 15 Sep 2023 20:32:19 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F4C5272D for ; Fri, 15 Sep 2023 17:31:35 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-d818e01823aso3037280276.2 for ; Fri, 15 Sep 2023 17:31:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824294; x=1695429094; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=XQRlLqUbNuYp1+FU2drQZXL0G0BiKv3N4ijMXeK3kKU=; b=pj+m+tw+Vr/7p8Y5xI2nRJIZqZ/Aw+drvFtF210Mgaro8VDbTprQ03KYl+1DG+Mvl2 /bdOATaYzWI/O45mTeZvtWzhWrTvGZXveG3TkQVLbNXmY4oarqZBSdBXu6mi0Bpij+Jn x0qNy9xNJ6AddCeezhpXBS6bbXEd5lyUgNoG5RF280zx+bPVBT836B0ZYrGoS3Ers/v3 o5F/EuxdVMrweazOTgz2lLagFBmcXPX/gbRLmEk6NNvwPTLcWPU6oWBEHq9LcBTp9Zct 1+LXloWwjp6h8rjp+cKpuJfk7yPEH9ApKIJIquVdMZ5HEtoO9NFyc9oZ4Gfl9RpP4sfP Hz0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824294; x=1695429094; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XQRlLqUbNuYp1+FU2drQZXL0G0BiKv3N4ijMXeK3kKU=; b=LDEmbBfRFsAzN2j1/2MlmqO2NgBKFzWiCCgi/A6d1V9qKpXC4nLm2KQaVopuXq447P lhPe6rQh/00C6d3oSv/aT9aUvFR0IlnsQ+wurkOCmGban550mscLTD8c9MdmVkUIE/be 78PTC9S1RQ6IDdg0zETFLz67XsxdaAT6MX413bwU3Sp7QCKK3rQ42jDbMIIsU2GGHF4E khBPJ8m4RtwGLuQQEDuByu6tqe0w71A81RNuwco7zzbkq64VPAcdG3ZLlZbo1BbVvb0s hdH+2PlyA1A6vCxz7qnQsfgsZulbn3kkKJIA8Ue6ceJJV39hTGddGgWjuxhR9YytAYt5 RQNQ== X-Gm-Message-State: AOJu0YwJmQp+kU+yxPbwxY8/Q/AyMGy3e4te/sHTHNPj0TzOMEm30H7t 0VuBW95I4sSCrVZKG1cMCWtYrFPrd/0= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:aa6c:0:b0:d7e:a025:2672 with SMTP id s99-20020a25aa6c000000b00d7ea0252672mr72126ybi.9.1694824294437; Fri, 15 Sep 2023 17:31:34 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:30:59 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-8-seanjc@google.com> Subject: [PATCH 07/26] x86/idt: Wrap KVM logic with CONFIG_KVM instead of CONFIG_HAVE_KVM From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:23 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777179947663128132 X-GMAIL-MSGID: 1777179947663128132 Wrap all of the IDT-related code that deals with KVM in CONFIG_KVM instead of CONFIG_HAVE_KVM. x86 always "has" KVM, i.e. checking CONFIG_HAVE_KVM is pointless. Alternatively, the #ifdefs could simply be deleted, but the only potential value is in printing the number of posted interrupts that end up being handled by the host, everything else is completely dead code when KVM is disabled. And if KVM is disabled, there should not be any posted interrupts, i.e. NOT wiring up the "dummy" handlers and treating IRQs on those vectors as spurious is the right thing to do. Signed-off-by: Sean Christopherson --- arch/x86/include/asm/hardirq.h | 2 +- arch/x86/include/asm/idtentry.h | 2 +- arch/x86/include/asm/irq.h | 2 +- arch/x86/include/asm/irq_vectors.h | 2 +- arch/x86/kernel/idt.c | 2 +- arch/x86/kernel/irq.c | 4 ++-- scripts/gdb/linux/constants.py.in | 2 +- scripts/gdb/linux/interrupts.py | 2 +- tools/arch/x86/include/asm/irq_vectors.h | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h index 66837b8c67f1..fbc7722b87d1 100644 --- a/arch/x86/include/asm/hardirq.h +++ b/arch/x86/include/asm/hardirq.h @@ -15,7 +15,7 @@ typedef struct { unsigned int irq_spurious_count; unsigned int icr_read_retry_count; #endif -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) unsigned int kvm_posted_intr_ipis; unsigned int kvm_posted_intr_wakeup_ipis; unsigned int kvm_posted_intr_nested_ipis; diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h index 05fd175cec7d..8eef16d0d72b 100644 --- a/arch/x86/include/asm/idtentry.h +++ b/arch/x86/include/asm/idtentry.h @@ -671,7 +671,7 @@ DECLARE_IDTENTRY_SYSVEC(IRQ_WORK_VECTOR, sysvec_irq_work); # endif #endif -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_VECTOR, sysvec_kvm_posted_intr_ipi); DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_WAKEUP_VECTOR, sysvec_kvm_posted_intr_wakeup_ipi); DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_NESTED_VECTOR, sysvec_kvm_posted_intr_nested_ipi); diff --git a/arch/x86/include/asm/irq.h b/arch/x86/include/asm/irq.h index 836c170d3087..194dfff84cb1 100644 --- a/arch/x86/include/asm/irq.h +++ b/arch/x86/include/asm/irq.h @@ -29,7 +29,7 @@ struct irq_desc; extern void fixup_irqs(void); -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void)); #endif diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h index 3a19904c2db6..3f73ac3ed3a0 100644 --- a/arch/x86/include/asm/irq_vectors.h +++ b/arch/x86/include/asm/irq_vectors.h @@ -84,7 +84,7 @@ #define HYPERVISOR_CALLBACK_VECTOR 0xf3 /* Vector for KVM to deliver posted interrupt IPI */ -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) #define POSTED_INTR_VECTOR 0xf2 #define POSTED_INTR_WAKEUP_VECTOR 0xf1 #define POSTED_INTR_NESTED_VECTOR 0xf0 diff --git a/arch/x86/kernel/idt.c b/arch/x86/kernel/idt.c index b786d48f5a0f..a9e6363d88c2 100644 --- a/arch/x86/kernel/idt.c +++ b/arch/x86/kernel/idt.c @@ -149,7 +149,7 @@ static const __initconst struct idt_data apic_idts[] = { #ifdef CONFIG_X86_LOCAL_APIC INTG(LOCAL_TIMER_VECTOR, asm_sysvec_apic_timer_interrupt), INTG(X86_PLATFORM_IPI_VECTOR, asm_sysvec_x86_platform_ipi), -# ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) INTG(POSTED_INTR_VECTOR, asm_sysvec_kvm_posted_intr_ipi), INTG(POSTED_INTR_WAKEUP_VECTOR, asm_sysvec_kvm_posted_intr_wakeup_ipi), INTG(POSTED_INTR_NESTED_VECTOR, asm_sysvec_kvm_posted_intr_nested_ipi), diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index 11761c124545..35fde0107901 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c @@ -164,7 +164,7 @@ int arch_show_interrupts(struct seq_file *p, int prec) #if defined(CONFIG_X86_IO_APIC) seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count)); #endif -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) seq_printf(p, "%*s: ", prec, "PIN"); for_each_online_cpu(j) seq_printf(p, "%10u ", irq_stats(j)->kvm_posted_intr_ipis); @@ -290,7 +290,7 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_x86_platform_ipi) } #endif -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) static void dummy_handler(void) {} static void (*kvm_posted_intr_wakeup_handler)(void) = dummy_handler; diff --git a/scripts/gdb/linux/constants.py.in b/scripts/gdb/linux/constants.py.in index e3517d4ab8ec..054630f511e0 100644 --- a/scripts/gdb/linux/constants.py.in +++ b/scripts/gdb/linux/constants.py.in @@ -129,7 +129,7 @@ LX_CONFIG(CONFIG_X86_MCE_THRESHOLD) LX_CONFIG(CONFIG_X86_MCE_AMD) LX_CONFIG(CONFIG_X86_MCE) LX_CONFIG(CONFIG_X86_IO_APIC) -LX_CONFIG(CONFIG_HAVE_KVM) +LX_CONFIG(CONFIG_KVM) LX_CONFIG(CONFIG_NUMA) LX_CONFIG(CONFIG_ARM64) LX_CONFIG(CONFIG_ARM64_4K_PAGES) diff --git a/scripts/gdb/linux/interrupts.py b/scripts/gdb/linux/interrupts.py index ef478e273791..66ae5c7690cf 100644 --- a/scripts/gdb/linux/interrupts.py +++ b/scripts/gdb/linux/interrupts.py @@ -151,7 +151,7 @@ def x86_show_interupts(prec): if cnt is not None: text += "%*s: %10u\n" % (prec, "MIS", cnt['counter']) - if constants.LX_CONFIG_HAVE_KVM: + if constants.LX_CONFIG_KVM: text += x86_show_irqstat(prec, "PIN", 'kvm_posted_intr_ipis', 'Posted-interrupt notification event') text += x86_show_irqstat(prec, "NPI", 'kvm_posted_intr_nested_ipis', 'Nested posted-interrupt event') text += x86_show_irqstat(prec, "PIW", 'kvm_posted_intr_wakeup_ipis', 'Posted-interrupt wakeup event') diff --git a/tools/arch/x86/include/asm/irq_vectors.h b/tools/arch/x86/include/asm/irq_vectors.h index 3a19904c2db6..3f73ac3ed3a0 100644 --- a/tools/arch/x86/include/asm/irq_vectors.h +++ b/tools/arch/x86/include/asm/irq_vectors.h @@ -84,7 +84,7 @@ #define HYPERVISOR_CALLBACK_VECTOR 0xf3 /* Vector for KVM to deliver posted interrupt IPI */ -#ifdef CONFIG_HAVE_KVM +#if IS_ENABLED(CONFIG_KVM) #define POSTED_INTR_VECTOR 0xf2 #define POSTED_INTR_WAKEUP_VECTOR 0xf1 #define POSTED_INTR_NESTED_VECTOR 0xf0 From patchwork Sat Sep 16 00:31:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140900 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1451561vqi; Fri, 15 Sep 2023 20:10:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGOel4y+8wM+Q23dELXkxgROoDb8qZ/yQQYdl3LWIG8JwFBLEFe6jZcpArxyv6s4gM6jLWZ X-Received: by 2002:a05:6a20:12ce:b0:137:2f8c:fab0 with SMTP id v14-20020a056a2012ce00b001372f8cfab0mr4358022pzg.49.1694833855354; Fri, 15 Sep 2023 20:10:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694833855; cv=none; d=google.com; s=arc-20160816; b=ZrFaIuEfzSFRT2APDhdOoz34JnkzQWn4zTekveeO0deCVM/8QI0aUzJLBiU2N1jZsj QXl5OCczF3t5CIygWPavJR0uuOE3k5bZYcwU/gOiwmKtB1tAnUoVJp8Qx2RRZ5C7bDk8 rtpYC9ZGUkEG/x1hiHJZUAo87kwo3KFzRaMwkWmX01uA0CmvzIAYsQ6JWxbU0PmNX6nc LQfaxvjs7oBdaEzcskbjNk1Jm2EGPdpRa9S/kBxOy5kmbbbEmmvs7HGnVkqEO2V8Qa1u CvZG2qzEfiDnVhNMnGtmGylvY260msF9Jr6JJbjALeEV+7xzKQAQbDDA95cvGl7e6jfJ vBDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=2bGNmVCdNvvogzEXgW0zNdAXreJziaadtBBldNfFmhI=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=LBWMYNu2axwOx7fYKpwe4pKieQG/YF4S79CSNHEsgQC93Djo/SUBcvqBi4QvKYUIpe JSj/HzdFrmuo85sfDEJyklkYuHvU+Bx9XhmCGxlEYnRNBXMCesJkfNWV2Z2NEKimEI5s FPYsT8D3dLhZ0uSxHAy/DdIIMr2/8qUNt3Lu8JC2opITa4y9ATNNpVePrZtSAc5gPflG 3a+i0qUBCSfV5g5qRSFuT6MgmjXWnpQfhtO61ZvMMCoJIW4Fc6Bth+cqccImCI2aCG3n FoU1yaOkOM2xjoiD/27bxifz3oBJz9nZrjPHN8RxbDk5vMpHY34w2omY38prTIgztQLV 5jEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=4WEhzq8Y; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id i1-20020a170902cf0100b0019c354055d0si4307294plg.304.2023.09.15.20.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:10:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=4WEhzq8Y; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 76589808BD12; Fri, 15 Sep 2023 17:35:32 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238907AbjIPAe5 (ORCPT + 28 others); Fri, 15 Sep 2023 20:34:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238873AbjIPAeC (ORCPT ); Fri, 15 Sep 2023 20:34:02 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A7801BDC for ; Fri, 15 Sep 2023 17:31:37 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d818e01823aso3037314276.2 for ; Fri, 15 Sep 2023 17:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824296; x=1695429096; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=2bGNmVCdNvvogzEXgW0zNdAXreJziaadtBBldNfFmhI=; b=4WEhzq8YYbH5MYS8LF3fNZDW9/doxPBMM5mnRkHh7rJfKucqCpmHfMn8Dk8I5T1Vjw r7GKVcMcJezlwbwZdQwe5awi4/JsVEXewSxl/8kp7Zq7Jsnufc0JDsztP0h7mR5pI0hk 90GGOrwszrDkx1ckPXbKoPWJITxFpbbVdVMfjuB1P12117rdZoMXWD/T6fi2bLBNYM37 qNnR1Xa0L12cfVJN4IQcUJIBgcxgx3WqXFeJlD79YjBEClF6YfD2xbgF61lTjSnKppKl wuTsp8sAceoHv77LPkGb4unAjBl8gAta2F+LLf2CZKmCUljmlURPF6ZLjRkpYyfMkyjv k+QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824296; x=1695429096; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2bGNmVCdNvvogzEXgW0zNdAXreJziaadtBBldNfFmhI=; b=mezVWgMf9Dk0+D4GUZSpScth82oT8zMy92sTLiklIMjyEiO4JQUurrIFMamWFWRg8L 2a99N7gpSfVA4wEjRAzcqjE0oeAPc+xa94ffXPcDkB5L9+hQZ/+V2kuaZ2SSQIPaPr9i fBXcIErWaH9t3yx8StBanUc0Cu4OBXtHTdS5hf1bm1DaR//LxE+tBMKEaJBUxCBeAYXS DJ7DOvk6rQ1o4BHWrFFp4/IUgUnumyoCHx98IEJ9aG2xyTSkWqGOFJNZuTuxVzsukGFi ejLUjVlVxbN4BgkDVsJpfFhWtz5RDUlEvoy1AGIbnXzJ2v64qRojorgIh5Xz98R6+LAp d9mQ== X-Gm-Message-State: AOJu0Yyo8MSzLyF/MbacXlgPuoC1vJFq4QeE6/Ot9Ywpbth62wsEZh/u Ze2fUo74+DzjokeMgqPDvWwAkTcwARc= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:2982:0:b0:d05:98ef:c16b with SMTP id p124-20020a252982000000b00d0598efc16bmr77753ybp.5.1694824296181; Fri, 15 Sep 2023 17:31:36 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:00 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-9-seanjc@google.com> Subject: [PATCH 08/26] KVM: x86: Stop selecting and depending on HAVE_KVM From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:35:32 -0700 (PDT) X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777162104399612283 X-GMAIL-MSGID: 1777162104399612283 Now that nothing in x86 or architecture agnostic code consumes HAVE_KVM, stop selecting it in x86. This is one of several steps towards deleting HAVE_KVM from the common KVM Kconfig. Signed-off-by: Sean Christopherson --- arch/x86/Kconfig | 1 - arch/x86/kvm/Kconfig | 2 -- 2 files changed, 3 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 982b777eadc7..32eb288a4e3a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -240,7 +240,6 @@ config X86 select HAVE_FUNCTION_ERROR_INJECTION select HAVE_KRETPROBES select HAVE_RETHOOK - select HAVE_KVM select HAVE_LIVEPATCH if X86_64 select HAVE_MIXED_BREAKPOINTS_REGS select HAVE_MOD_ARCH_SPECIFIC diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig index 0f01e5600b5f..8c5fb7f57b4c 100644 --- a/arch/x86/kvm/Kconfig +++ b/arch/x86/kvm/Kconfig @@ -7,7 +7,6 @@ source "virt/kvm/Kconfig" menuconfig VIRTUALIZATION bool "Virtualization" - depends on HAVE_KVM || X86 default y help Say Y here to get to see options for using your Linux host to run other @@ -20,7 +19,6 @@ if VIRTUALIZATION config KVM tristate "Kernel-based Virtual Machine (KVM) support" - depends on HAVE_KVM depends on HIGH_RES_TIMERS depends on X86_LOCAL_APIC select PREEMPT_NOTIFIERS From patchwork Sat Sep 16 00:31:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140913 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1458272vqi; Fri, 15 Sep 2023 20:36:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFkhnLUq+sFW6hu3/nTifLAaturftvFqtS2ygy9XXrh2pplK3taDpoMTF0wJCd7ePDFdBMC X-Received: by 2002:a17:90a:31c9:b0:274:8be8:f767 with SMTP id j9-20020a17090a31c900b002748be8f767mr3083184pjf.15.1694835370315; Fri, 15 Sep 2023 20:36:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694835370; cv=none; d=google.com; s=arc-20160816; b=yEVp0rg3Lhsb5l0h0QgKG2F9MzoBNiQ6f6/BlXCPjGbJvWc5N4lN/xY6V7IN1k+ZR+ MrXohFFRv8fALUPHzUOkyhM7XgnjYMFkZzC6042/bIBkAqXj2q86rdeH9bcwwImXLc7V IBSIMJu0mL+85BFDYV5qerkn1MYZLZdCdo92gkwvEOqBSkMSPQR1M1WXmvDF/Xa/x35G BuF6UmcfCWPLXduvNDq0elS8TBOvrRtAUU8lB0af4dylPAUVYueAnNOwh7iuawyK4fwN 6mCqUo6BEfmp91m5CVIZKtGhKPu6nvCkuQtBcELZCPQYX/1BdlUUPn9il9PrOireUoNy eP3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=OjnVLG9a9LJLqorH8Rj1ZnrY26noTE5ZeEoscx0wCrE=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=Do6iQd3oBZr6viZC+jEBLvqXYbYOlCzMQfQudHD7T4Nz9osIYJ994MhDdrOE8NOgZN oxqoFHaBkIFAgQuwUUxd+6lEDian5KmaicFNN4jF0OSrYoT0Sip+/pqFm0F7wNGTP2AU gJH1J0pxzV5WtDRfxxgO4JmlACn0PeBzZC1j7lzNpiVO9qw0WVpAb6qYeQ6Ivtd39BtS WybeewDR3+F7RhZjTz8UIOXSJaRIz2t12Djw0MgVjt2aL2LSjH0b8BeFQKaU9UYy2pS2 BVEl/RgwOXeUrtshjBY7511Y8DbeffM+NbIO5kqN4ityRDwYpWA0jihv6fQljiJrEtBn gKTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=3iwsnBBg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id kb7-20020a17090ae7c700b002680cee323dsi1207891pjb.119.2023.09.15.20.36.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:36:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=3iwsnBBg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 157CA83EA8C4; Fri, 15 Sep 2023 17:34:32 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239041AbjIPAdk (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238292AbjIPAct (ORCPT ); Fri, 15 Sep 2023 20:32:49 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1912B2D4D for ; Fri, 15 Sep 2023 17:31:39 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-d8191a1d5acso2867955276.1 for ; Fri, 15 Sep 2023 17:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824298; x=1695429098; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=OjnVLG9a9LJLqorH8Rj1ZnrY26noTE5ZeEoscx0wCrE=; b=3iwsnBBg9U9rpDKqYhVnwIOmDRQRmg6VPUkonz/huNUXNLJwhQBvwByqsEaueNfXsG 3FRR/r+a38kQBwhJqk8rnRXZ6B25yca5VIiPhk/HlCGmCwQFo7S0Jy7SCZt7mDqcRtaS WNfLsZPOSBNhaWmq59Gx9VrL5De2F0OpOU9uoEPEnntmkk/j5pSN5+lhF0SoyvbSmLGg 0jdpYz2TnQgNkxXIhgUFs6rHAycucPVycDEZ+eIzigDEm96Ewq8OuxMO0cFbbQVTYRzG ZS4R7RSd4dPGC/Kbd5b65d+sV1BBGAKwQ167T0oAG8kRxOWlmFQSICPuARM7hNT4eYFs w2Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824298; x=1695429098; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OjnVLG9a9LJLqorH8Rj1ZnrY26noTE5ZeEoscx0wCrE=; b=DEUEptwUeILZBsLH2CJkGWCp8G3OU7qTMryex0qXTmtFCqIXZUK77wvdJKMVD2jVFH 0C6VOg06QEw5Y5H194648GVBfQxK06Z6ymfBns9rPcLqPDGqmjAljy8FNzgEtGrVnpBW bnR486hFQpMYgtj9sE57HVuRom19klBa0MX0ZG6O9k7txvqcaSNUZgjNxN+Je6FMMrF8 T/0e0PVmpOJ8FoExNddEXRLZZWpCUb2YZrCBzUfX5cF9Uo6zui5IYa3nHuNR+gin+HH9 Vl4rvNu43FGxJLDiGqV30Ojq5ar5h4NsmD5UkmH9ODXXQMtv5pRrmNMZpOZ6uyt6N75o 85gg== X-Gm-Message-State: AOJu0YxqeNthvTPJXZ8UW3jrFvNjhaTPwC0b3zT8U4I566Zj3K1+a8Gu cqTv6Pe+y8Zc5VhBzrDlwy9HlXbCOwQ= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:138e:b0:d78:245a:aac4 with SMTP id x14-20020a056902138e00b00d78245aaac4mr82623ybu.1.1694824298283; Fri, 15 Sep 2023 17:31:38 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:01 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-10-seanjc@google.com> Subject: [PATCH 09/26] KVM: arm64: Stop selecting and depending on HAVE_KVM From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:32 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777163693384955347 X-GMAIL-MSGID: 1777163693384955347 Now that nothing in arm64 or architecture agnostic code consumes HAVE_KVM, stop selecting it in arm64. This is one of several steps towards deleting HAVE_KVM from the common KVM Kconfig. Signed-off-by: Sean Christopherson --- arch/arm64/Kconfig | 1 - arch/arm64/kvm/Kconfig | 1 - 2 files changed, 2 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index b10515c0200b..7d99f132e57c 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -214,7 +214,6 @@ config ARM64 select HAVE_HW_BREAKPOINT if PERF_EVENTS select HAVE_IOREMAP_PROT select HAVE_IRQ_TIME_ACCOUNTING - select HAVE_KVM select HAVE_MOD_ARCH_SPECIFIC select HAVE_NMI select HAVE_PERF_EVENTS diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 2b5c332f157d..c76af1973315 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -20,7 +20,6 @@ if VIRTUALIZATION menuconfig KVM bool "Kernel-based Virtual Machine (KVM) support" - depends on HAVE_KVM select KVM_GENERIC_HARDWARE_ENABLING select MMU_NOTIFIER select PREEMPT_NOTIFIERS From patchwork Sat Sep 16 00:31:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140964 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1505116vqi; Fri, 15 Sep 2023 23:18:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG5t4T4JcsJN5ntqZL7OXWXZo3YqP7lOVxNjIefMmXcm02hg+H3b3meHkNTW7Yo3B43NMlV X-Received: by 2002:a05:6358:339f:b0:141:331:ffa7 with SMTP id i31-20020a056358339f00b001410331ffa7mr4399647rwd.24.1694845095447; Fri, 15 Sep 2023 23:18:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694845095; cv=none; d=google.com; s=arc-20160816; b=whWJsTMj2sdySu0yhUsvZisDx8ezVdutpUMSbG7Il52U4mGJjVjeACHQDtl4m5b0tf 7Ju6qA6k7opTfga/P1qAcYGDloiRsqwLXnlsK27tD58lhss8t8XfN2eQj0esP5mcX0vn nM8QdASXQi68XpbDG56mtRU95+SeqDWhT/8EhckCbUY3IIe9ukIG4l67vHYWFhh9tCD6 Z6isVNd2o0VGSJXkRtQwqonCNeJpH77hZiNpYgUUkpGHcSop9hqFmnYm1+RUuiplqZFL jrFh+CfTVBRvp9KGIM1Y9DWiPIUFXYU+/X79Eol2hIEax7E2924ujYKhZhLbJw+YWU/Q /NFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=RPxwiI+CF5oY5axnD8PplP8rMTdwT2bOTUtJzDVfTIk=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=vMUOWSLxFtjqHCRPkxLFknG4HG+E45/lel7iadGJL6uMk9tkPW3sYy1vyK4PEGSXlk pK5qJ7Lec0RpugFHxY3Evz5mIflO8bdKnvn05JKBk9hyRpgiJMwPwQVuKMvjRydzL4Oz /CGaHHiNhMLkujoObvdomq+Gn53sVzsv3Aq71kWNwIHTzad7ErJT6mGWvrzBJxVF5QmP cJmgvKUsxskH9ppLn41+/ZURx12LB96J0ZF+xrPkO5TMVt/p9JXUBG+iaW4xVJeEt094 5zRfM1olieez68m/AAeTP7uLyWWjzeBmjmW+B5ebW+mz0NHRON4IqVvB5eWw1x827y6g ZM0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=4JDunwJW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id b26-20020a6567da000000b00564b8e55214si4350313pgs.385.2023.09.15.23.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 23:18:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=4JDunwJW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 656368389DB5; Fri, 15 Sep 2023 17:34:55 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238826AbjIPAd4 (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238812AbjIPAd0 (ORCPT ); Fri, 15 Sep 2023 20:33:26 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29467E4D for ; Fri, 15 Sep 2023 17:31:41 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id d9443c01a7336-1c4375c1406so10017335ad.1 for ; Fri, 15 Sep 2023 17:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824300; x=1695429100; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=RPxwiI+CF5oY5axnD8PplP8rMTdwT2bOTUtJzDVfTIk=; b=4JDunwJWxDluddrMrRLTj/LNkgoGDpJZcWWCGcaCKouRqjfsjyOm4kgy50/93DGnZf 47M5ulzp+LdIpA7ytRU4ah7PBKR0ywSq/f3x4FE3+ygF+EYDC0Hwo2P6X9XHCShKXJaj u71jWAsO/NSqunHJVsy6qy6pdJs6MMiXYrJBeQi6yHoqBzETx5iksGAYkEILl8n/zmcD xRU9wBMR8d7612MakXTzQp0Hf9Yd/+YpQuO9F0zqCh8rS+7W/P8zRrBOCvcbZ0EmxGRP +K3N+t53IM5kD3mmQa9K98Yd7WDxTdEqa/YPORKKcln/NzLt+E3f7UH1RblOyCG42MRY yWBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824300; x=1695429100; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=RPxwiI+CF5oY5axnD8PplP8rMTdwT2bOTUtJzDVfTIk=; b=sl49JWl/gegmDb0Iq5cec42KIERD1KYm3b7C0zx8mo8eWVwY0ULcsiCipiuUOnGmcV GVHIY49qQDSA/v7bhW7awUhiipabqx6p+BN2NY2Z462hy4/tOX2zVK4FJf4SmPRXKQCI F2SU3Ge5GStgInheb8Hp8EqVRGmnSV/J5nxomXB1t58AU2pyA8gEwojSXJKHqdUMTRsO uBQOPGvJRUcLs+FC8V99FzElt9cCehrdLCHtpT6UUzkRabA4uEBY2yRg1gXft5rdZ0vZ cUWYPxvSoCYBDm+r8B4zbIXyvUDWDue6jvzeUt94a7AJK1uKH1pV9LQ+wm4x+1rQidfU MpvA== X-Gm-Message-State: AOJu0YzTAwevfRnD3G26bZ4v1DO9lj4vAEHzi6mq5AGBAN3qyBal7QzK v6zZ7fSUhntvvMmtxHWlQxUvAzHmEzo= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:903:2302:b0:1b8:a555:385d with SMTP id d2-20020a170903230200b001b8a555385dmr88540plh.9.1694824300497; Fri, 15 Sep 2023 17:31:40 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:02 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-11-seanjc@google.com> Subject: [PATCH 10/26] KVM: s390: Stop selecting and depending on HAVE_KVM From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:55 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777173890647671895 X-GMAIL-MSGID: 1777173890647671895 Now that nothing in s390 or architecture agnostic code consumes HAVE_KVM, stop selecting it in s390. This is one of several steps towards deleting HAVE_KVM from the common KVM Kconfig. Signed-off-by: Sean Christopherson Reviewed-by: Claudio Imbrenda --- arch/s390/Kconfig | 1 - arch/s390/kvm/Kconfig | 1 - 2 files changed, 2 deletions(-) diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index ae29e4392664..8a5dca0036d9 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -193,7 +193,6 @@ config S390 select HAVE_KPROBES select HAVE_KPROBES_ON_FTRACE select HAVE_KRETPROBES - select HAVE_KVM select HAVE_LIVEPATCH select HAVE_MEMBLOCK_PHYS_MAP select HAVE_MOD_ARCH_SPECIFIC diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig index 459d536116a6..9056cee72945 100644 --- a/arch/s390/kvm/Kconfig +++ b/arch/s390/kvm/Kconfig @@ -19,7 +19,6 @@ if VIRTUALIZATION config KVM def_tristate y prompt "Kernel-based Virtual Machine (KVM) support" - depends on HAVE_KVM select PREEMPT_NOTIFIERS select HAVE_KVM_CPU_RELAX_INTERCEPT select HAVE_KVM_VCPU_ASYNC_IOCTL From patchwork Sat Sep 16 00:31:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 141028 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1592345vqi; Sat, 16 Sep 2023 03:53:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFoyfie1z675098tELHcUiKwpo12tLlNKBWuo2tIYH/LWwoNa9kCKzCwZ8EEdVfWw0WAexW X-Received: by 2002:a17:90b:a13:b0:26d:5049:cf48 with SMTP id gg19-20020a17090b0a1300b0026d5049cf48mr3388693pjb.40.1694861612658; Sat, 16 Sep 2023 03:53:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694861612; cv=none; d=google.com; s=arc-20160816; b=Fh7gKynJA+sa/Ij6NdSMZ0qLnWOGSIs4d+s3lhGGPcRby5TChrU9eqtOIvbzYdWnLw buhasZ19T+gYMmz8CA0SAsTiaUgIUDiIXZ/g38mS1Avt7Ve9vFaPhp7YGwgYyeuOxobx hPY9E/DwoiamvEQZ+KP7y2DCjxwCw6LZaa5kndCzoQ0Tvr2rIqufOsuJyEYAeCyNSi8F oQDTtUdi+fGLv7yGR5WssiIF48DmHZkNogBuW00pMBBc9HTCvfxKJpfRSdIDAOG9sK/9 ongcrfx9vCMRBz4YtfWNAiXeJzQmURM+KxQ2SEHfpjnrnDctIDVvoaNrsa7Mvk9Dgd9e PPtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=11iXbA6RA96N2ihdzvT9DOzykVF8TPNgieg32BOfaCo=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=q06NEyukYExOm8j9FwjlXxBVp0Sh/8RV93ZFIrI7EfUk1VAUGoq9WnMIiCD50owE2w m3iXm18+zOTB6LUQmHg6H40EuASXcVacbRo4tHz3rEBRvYWzPTtOf3xJZTBl9NCZpYL8 hfV9fd/25U8tw+wMq8yskVRXCLrdnm+cYFxU9XTivDhgC8t0u6/TY+w7KQz0BtVUHL3u fr/+u+wpJ3pCyBubIfpKF6HJ/gO2Qllqhd9iwnJYaWzOwT1o/x/RPF/FheSQ/RKjd6M/ yXfOz0OhDU0piSlMAIonnYIsXY4TeNce4AsT8zx64Pg8xuri/omi1+ii5CV/pT70hj+s /Vrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=TMBBmJdJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id h19-20020a17090aa89300b0026810b074afsi2785163pjq.3.2023.09.16.03.53.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 03:53:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=TMBBmJdJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id D053482A0BF5; Fri, 15 Sep 2023 17:33:20 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238769AbjIPAdE (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238783AbjIPAco (ORCPT ); Fri, 15 Sep 2023 20:32:44 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7795A1AD for ; Fri, 15 Sep 2023 17:31:43 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-cf4cb742715so3251845276.2 for ; Fri, 15 Sep 2023 17:31:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824302; x=1695429102; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=11iXbA6RA96N2ihdzvT9DOzykVF8TPNgieg32BOfaCo=; b=TMBBmJdJhKP3G7bLvh5bdJ5HGVmLAGy+9sz6UWizDB39p5JJWRUAN4BMluE44WgqaK wt2Nl4rnJkO+uUW1TJHGwPYu7Wmkckr5hY3/lUNOEkpsbYkjO25i9vBxMNWLW93wE1FQ eOH0ZTOXp5SxEVktCtxbclt7fwt1iwZGB5KE0Jr7gVN8jx1uM5DeCq7X08FEv0vvkXLB mmgiSAzG42PIPMtMopVz6N/tt6PE6lLuAmQTEBDHCWix+mIbNF1izydhDD8DnzM0IfuM /wBerUvM6cRESUAgk7f1LS+zk4wSiO+8El28U4AC5EvVZjkDW5MGweeXrUJAn/6ijUQf 8Q6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824302; x=1695429102; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=11iXbA6RA96N2ihdzvT9DOzykVF8TPNgieg32BOfaCo=; b=YbwCDp6oMZ2tBX1I+5R5PRHMyL+BnuwvH7CqCkb2DfkEo3Q0ccsRqxKde4v7NAUhY9 NxAaRM3DT8VY9/5xGV+POQwBAlysiqsa+SggQKHh50dCiz55Vvv+HnUj55bulj/aZitI zzUu68i9YtJJc41wVyZZh27hR5+6XkR9w7r614r2kISmzRZSSRu4Q0z27YR4wsWKm4G4 txUA80rH9uIrP8574+zy9nFdIN79/jUvWJ/V2y9jaaji+wTDFkZPfPdLZVh1yLyY3Iwe RB9cYQor5limmyE/D7Fx8bNXDOXKSV/QFPTXo0oQAqJIjyUXlPTvZidl0HCz1ZPIEOdb fFcg== X-Gm-Message-State: AOJu0YwccI9Ub3G20uY9aQmd2LEppRp3+9Xr8arIi6qmu5N0FUc0P47f sSxRjQPllNsV/RWZVeJtwXwypytjAOE= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:138e:b0:d78:245a:aac4 with SMTP id x14-20020a056902138e00b00d78245aaac4mr82625ybu.1.1694824302614; Fri, 15 Sep 2023 17:31:42 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:03 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-12-seanjc@google.com> Subject: [PATCH 11/26] KVM: MIPS: Make HAVE_KVM a MIPS-only Kconfig From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:20 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777191210246440195 X-GMAIL-MSGID: 1777191210246440195 Now that MIPS is the sole remaining user of HAVE_KVM, make HAVE_KVM a MIPS-only Kconfig. Because most architectures unconditionally support virtualization, advertising to the kernel at-large that an arch has KVM just led to a bunch of useless and misguided #ifdefs. Signed-off-by: Sean Christopherson --- arch/mips/kvm/Kconfig | 3 +++ virt/kvm/Kconfig | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/mips/kvm/Kconfig b/arch/mips/kvm/Kconfig index a8cdba75f98d..c4508f49caae 100644 --- a/arch/mips/kvm/Kconfig +++ b/arch/mips/kvm/Kconfig @@ -4,6 +4,9 @@ # source "virt/kvm/Kconfig" +config HAVE_KVM + bool + menuconfig VIRTUALIZATION bool "Virtualization" help diff --git a/virt/kvm/Kconfig b/virt/kvm/Kconfig index f0be3b55cea6..f7bb6c59658e 100644 --- a/virt/kvm/Kconfig +++ b/virt/kvm/Kconfig @@ -1,9 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 # KVM common configuration items and defaults -config HAVE_KVM - bool - config HAVE_KVM_PFNCACHE bool From patchwork Sat Sep 16 00:31:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 141087 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1786475vqi; Sat, 16 Sep 2023 11:00:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGq0x7LTCkW2hmXGivZknhua42540J9LV8QjkW7h29R8w+dZtlztFyXa0yb40Cp2bZohZIc X-Received: by 2002:a05:6a20:42a7:b0:138:92ef:78f9 with SMTP id o39-20020a056a2042a700b0013892ef78f9mr5842774pzj.6.1694887245409; Sat, 16 Sep 2023 11:00:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694887245; cv=none; d=google.com; s=arc-20160816; b=urnpi+9wParIpXtJSUFSHkEJwuD0b3bNp81tqUF56Y5VtyiBFt3jm3qAiqNyeruG5E K87ygHnSN4qlD5NDesVu6vsq3GwPXvM4o2caUdDPPq6bOdS45MxZAQJ2wvzX/XAGbNRN kAcHIwOoK71LxAmmDQqCxovibFHE8e942H8WHk9YLMeQwzIdnkE9feBVUaSmuqyqF+fF x6q3sRJnWg3FGap0EIfbxlsTNsLT00/8ONlM3PV6GvSFLrvMtLwQf0+NE/c38R+X3Gjk JXik/Dgv1UDYuZFbCV0bUB3VUxswog++sq0regqCOqq5WUio1mhkHI2NonQy5W4xh1Eg FSIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=T4d9JtkzBqCpjbUcqi6GepdBrHqatH15LR+RcbQRSno=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=cmyVIltomKXDlHuYLikhm3HB3X1Skm8b0jvczZj1qkem7LplMbpcNqkw4PTCUYwfIx cewbJ+6+M6cZtWcfRRCEbto5mPC4TCfochjPZywTV8QCY8yHUzqBctyiTn85tA3Anjxo nReQzPPGAQ3dqzrcXj8xbkMLHJu8DMQrkzViraBrK5jMpvvpNUp9F391os2l+p2vAmB1 xUGDRzAY3vj9ycVsI3/T+HNLN9H0vtHsDpgLzX7bKyMAhAI8xTkV2KqI4F+R80PXQi2O pDdi9YdfCnCe5CkiL002c3gvZpPp22HtnRJ91WRzNzvokcSCvIPenGhFG6W3A5Afl2hM +1fQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=TRJ05qki; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id a25-20020a656419000000b00574046766e0si5098978pgv.40.2023.09.16.11.00.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 11:00:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=TRJ05qki; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 696738389DB7; Fri, 15 Sep 2023 17:33:40 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238961AbjIPAdQ (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34282 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238539AbjIPAcV (ORCPT ); Fri, 15 Sep 2023 20:32:21 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70A7B2D59 for ; Fri, 15 Sep 2023 17:31:45 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d7edc01fdc9so2943086276.3 for ; Fri, 15 Sep 2023 17:31:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824304; x=1695429104; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=T4d9JtkzBqCpjbUcqi6GepdBrHqatH15LR+RcbQRSno=; b=TRJ05qkikeAFbtjeAVx1soHRBMwfMmICSMxDL3NqsjXKuPVJFKwL/Xj9QGZFgLO+XY NQsEOkCJLeopu+07c1zKvPw/bjH3fDjxvda9AVeqF5ZOGzmKImlUk2N/QBYa8b+dIBST jO1PE1VbwLZlbiC5oSro83X1D5XECqRnvUxeL91RtnK33fWA5CGmW1IUB0EaiAkazUdg 7/+Vcxnp6FwTEfdMwaTKGZvMEhrWdRuhv/00SCWeK7G46wfFINhKKIQyUB9ct1yVSAbK t28d8TgxkozGsV2svrC1aaS0dJFxM+x1IMmpSf3VkggGAZ9WdoZh9z1sAgE0ZsrimOyz TVog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824304; x=1695429104; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=T4d9JtkzBqCpjbUcqi6GepdBrHqatH15LR+RcbQRSno=; b=jxDO5bH7aSBmW13C4SpzzkYWr1wRJeGQwLFVJmG214wpaTRH4ALm0ksllUOXpSGwOZ vCK2rcYum+Gdq2ma4u6pncJQcFFBPrB3rPl5gOPb8LrlKp2KnwGUWJWVJsD0Lpl1V+2q A6Ho67zpri6GZijZ4jnxGKj+R8lS/VDfxpoj1yS2jr5ve0ufNI9I02ddvF3ANAH/53vx SAQgACVsfa8nWhUqUU0jGediKTdex0JaVXLLxMKYCZHC2fPw7kSw0HrbamXX6dxvdyPu u0GjVYSUsG3aqZaG618GNhWr3L3AVenQKKHuzK4L9bAlnbH6tj8xmSKV3bArGNhV+5R2 wSqw== X-Gm-Message-State: AOJu0YwaUyiOciC/DroFCtM6egj2yEBRMtTZNw2prpNiWKWbigNt9ine 3s/DsrnsEgDUyOyWqu6HrWdot5kDX/0= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:181b:b0:d81:4107:7a1 with SMTP id cf27-20020a056902181b00b00d81410707a1mr70396ybb.2.1694824304643; Fri, 15 Sep 2023 17:31:44 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:04 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-13-seanjc@google.com> Subject: [PATCH 12/26] KVM: arm64: Move arm_{psci,hypercalls}.h to an internal KVM path From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:40 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777218088429769258 X-GMAIL-MSGID: 1777218088429769258 From: Anish Ghulati Move arm_hypercalls.h and arm_psci.h into arch/arm64/kvm now that KVM no longer supports 32-bit ARM, i.e. now that there's no reason to make the hypercall and PSCI APIs "public". Signed-off-by: Anish Ghulati [sean: squash into one patch, write changelog] Signed-off-by: Sean Christopherson --- arch/arm64/kvm/arm.c | 5 +++-- {include => arch/arm64}/kvm/arm_hypercalls.h | 0 {include => arch/arm64}/kvm/arm_psci.h | 0 arch/arm64/kvm/guest.c | 2 +- arch/arm64/kvm/handle_exit.c | 2 +- arch/arm64/kvm/hyp/Makefile | 4 ++-- arch/arm64/kvm/hyp/include/hyp/switch.h | 4 ++-- arch/arm64/kvm/hyp/nvhe/switch.c | 4 ++-- arch/arm64/kvm/hyp/vhe/switch.c | 4 ++-- arch/arm64/kvm/hypercalls.c | 4 ++-- arch/arm64/kvm/psci.c | 4 ++-- arch/arm64/kvm/pvtime.c | 2 +- arch/arm64/kvm/trng.c | 2 +- 13 files changed, 19 insertions(+), 18 deletions(-) rename {include => arch/arm64}/kvm/arm_hypercalls.h (100%) rename {include => arch/arm64}/kvm/arm_psci.h (100%) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 4866b3f7b4ea..6de1d63b981b 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -41,9 +41,10 @@ #include #include -#include #include -#include + +#include "arm_hypercalls.h" +#include "arm_psci.h" static enum kvm_mode kvm_mode = KVM_MODE_DEFAULT; diff --git a/include/kvm/arm_hypercalls.h b/arch/arm64/kvm/arm_hypercalls.h similarity index 100% rename from include/kvm/arm_hypercalls.h rename to arch/arm64/kvm/arm_hypercalls.h diff --git a/include/kvm/arm_psci.h b/arch/arm64/kvm/arm_psci.h similarity index 100% rename from include/kvm/arm_psci.h rename to arch/arm64/kvm/arm_psci.h diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c index 95f6945c4432..32045ad51ec4 100644 --- a/arch/arm64/kvm/guest.c +++ b/arch/arm64/kvm/guest.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -27,6 +26,7 @@ #include #include +#include "arm_hypercalls.h" #include "trace.h" const struct _kvm_stats_desc kvm_vm_stats_desc[] = { diff --git a/arch/arm64/kvm/handle_exit.c b/arch/arm64/kvm/handle_exit.c index 617ae6dea5d5..f1d02d6f8683 100644 --- a/arch/arm64/kvm/handle_exit.c +++ b/arch/arm64/kvm/handle_exit.c @@ -21,7 +21,7 @@ #include #include -#include +#include "arm_hypercalls.h" #define CREATE_TRACE_POINTS #include "trace_handle_exit.h" diff --git a/arch/arm64/kvm/hyp/Makefile b/arch/arm64/kvm/hyp/Makefile index a38dea6186c9..4ce8c86967b5 100644 --- a/arch/arm64/kvm/hyp/Makefile +++ b/arch/arm64/kvm/hyp/Makefile @@ -4,7 +4,7 @@ # incdir := $(srctree)/$(src)/include -subdir-asflags-y := -I$(incdir) -subdir-ccflags-y := -I$(incdir) +subdir-asflags-y := -I$(incdir) -I$(srctree)/arch/arm64/kvm +subdir-ccflags-y := -I$(incdir) -I$(srctree)/arch/arm64/kvm obj-$(CONFIG_KVM) += vhe/ nvhe/ pgtable.o diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h index 9cfe6bd1dbe4..cd21cf71d7db 100644 --- a/arch/arm64/kvm/hyp/include/hyp/switch.h +++ b/arch/arm64/kvm/hyp/include/hyp/switch.h @@ -16,8 +16,6 @@ #include #include -#include - #include #include #include @@ -31,6 +29,8 @@ #include #include +#include "arm_psci.h" + struct kvm_exception_table_entry { int insn, fixup; }; diff --git a/arch/arm64/kvm/hyp/nvhe/switch.c b/arch/arm64/kvm/hyp/nvhe/switch.c index c353a06ee7e6..c0553ac36a46 100644 --- a/arch/arm64/kvm/hyp/nvhe/switch.c +++ b/arch/arm64/kvm/hyp/nvhe/switch.c @@ -13,8 +13,6 @@ #include #include -#include - #include #include #include @@ -29,6 +27,8 @@ #include #include +#include "arm_psci.h" + /* Non-VHE specific context */ DEFINE_PER_CPU(struct kvm_host_data, kvm_host_data); DEFINE_PER_CPU(struct kvm_cpu_context, kvm_hyp_ctxt); diff --git a/arch/arm64/kvm/hyp/vhe/switch.c b/arch/arm64/kvm/hyp/vhe/switch.c index 6537f58b1a8c..f7423c890b5c 100644 --- a/arch/arm64/kvm/hyp/vhe/switch.c +++ b/arch/arm64/kvm/hyp/vhe/switch.c @@ -13,8 +13,6 @@ #include #include -#include - #include #include #include @@ -28,6 +26,8 @@ #include #include +#include "arm_psci.h" + /* VHE specific context */ DEFINE_PER_CPU(struct kvm_host_data, kvm_host_data); DEFINE_PER_CPU(struct kvm_cpu_context, kvm_hyp_ctxt); diff --git a/arch/arm64/kvm/hypercalls.c b/arch/arm64/kvm/hypercalls.c index 7fb4df0456de..d34a31c9ace2 100644 --- a/arch/arm64/kvm/hypercalls.c +++ b/arch/arm64/kvm/hypercalls.c @@ -6,8 +6,8 @@ #include -#include -#include +#include "arm_hypercalls.h" +#include "arm_psci.h" #define KVM_ARM_SMCCC_STD_FEATURES \ GENMASK(KVM_REG_ARM_STD_BMAP_BIT_COUNT - 1, 0) diff --git a/arch/arm64/kvm/psci.c b/arch/arm64/kvm/psci.c index 1f69b667332b..c461e15026c9 100644 --- a/arch/arm64/kvm/psci.c +++ b/arch/arm64/kvm/psci.c @@ -13,8 +13,8 @@ #include #include -#include -#include +#include "arm_hypercalls.h" +#include "arm_psci.h" /* * This is an implementation of the Power State Coordination Interface diff --git a/arch/arm64/kvm/pvtime.c b/arch/arm64/kvm/pvtime.c index 4ceabaa4c30b..b07d250d223c 100644 --- a/arch/arm64/kvm/pvtime.c +++ b/arch/arm64/kvm/pvtime.c @@ -8,7 +8,7 @@ #include #include -#include +#include "arm_hypercalls.h" void kvm_update_stolen_time(struct kvm_vcpu *vcpu) { diff --git a/arch/arm64/kvm/trng.c b/arch/arm64/kvm/trng.c index 99bdd7103c9c..b5dc0f09797a 100644 --- a/arch/arm64/kvm/trng.c +++ b/arch/arm64/kvm/trng.c @@ -6,7 +6,7 @@ #include -#include +#include "arm_hypercalls.h" #define ARM_SMCCC_TRNG_VERSION_1_0 0x10000UL From patchwork Sat Sep 16 00:31:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140963 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1497289vqi; Fri, 15 Sep 2023 22:57:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFIVRNNGeyBCEt96nvZXd9sYUc7l0VK03w1UJy90ub5BIThK6W3nTEchq46eTNCF5mu+OUV X-Received: by 2002:a05:6a00:1704:b0:68f:d44c:22f8 with SMTP id h4-20020a056a00170400b0068fd44c22f8mr4956998pfc.1.1694843842570; Fri, 15 Sep 2023 22:57:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694843842; cv=none; d=google.com; s=arc-20160816; b=QKrwJ91i72MF18+bwzcRVWI/PhQq23cOxIF2LAGWdwFZadia9kqRw1XjyKEkkw8FUS Gq2OZdCnV+aK1JqXhcq171Tm0H40Ni3UqWe141GxseA9YBqbzxnDua9G7fuTWJzD+vwm uuwsgRNUGxXw1iwhnwPNb+ffqbYXOrT0BI4OK60elgnMdJaOuNGSt9keWzrQeg5BTMpB f+GI7dkceho+DFBVeZE9VMa4DMo0OeoSDKNUpEWxBlcY8V48aIsWEWTnriBOsV+2RnTE GONLHUbw1fsPegmW0h2/KFhLNSTfcKWmnWZ/NKrUItdb9rDYrzSQb8aVUn0z0Fwfwb1l 8zqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=HQNUEYOJ/ozgdrFnqx+YRCy2I1exOHPHuH58RF8SFNA=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=J9kIah8mMHImmtfu4iZ8WE8Ll28B2S6/kQwVHq1G+K9OCScVYRymBBp9WiLjaEsuZZ uAmlvd001iYx0H3NfYgnxwnCuPM/QtkIiZU1j0vUIn1/p8PUqNI3GsMMua9nlICCrz/J re17aEzqZMR+Pm1aWL/pKGeuprNEc4PTkgcA3wimEkT2osTQKSNjTdYf18Q70jVAB86b 9NHizUwgP2NyhmF03VOR+ph3p694/l4fvadajxfrJuMEriJLfNHIJl9OxtjdWD//4gNy 5V4KQIzsQi41uwEUQpvhGVPpIROk1KoGy4sXIPz5tAN+LCjYg1/hT9AOhLCKPOUFONGB 51mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=M0gIO6eC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id m70-20020a633f49000000b005783367f97fsi1542102pga.342.2023.09.15.22.57.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 22:57:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=M0gIO6eC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 5217D851FE0D; Fri, 15 Sep 2023 17:35:44 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238874AbjIPAeD (ORCPT + 28 others); Fri, 15 Sep 2023 20:34:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238885AbjIPAdg (ORCPT ); Fri, 15 Sep 2023 20:33:36 -0400 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE5652D5F for ; Fri, 15 Sep 2023 17:31:46 -0700 (PDT) Received: by mail-pl1-x649.google.com with SMTP id d9443c01a7336-1c40ac5b6e7so24343095ad.0 for ; Fri, 15 Sep 2023 17:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824306; x=1695429106; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=HQNUEYOJ/ozgdrFnqx+YRCy2I1exOHPHuH58RF8SFNA=; b=M0gIO6eCoTEr3GyvSoSXqbffxgpKcvL2iExYuoC1k1A0QMa49lgLHRLuf83fPt2EER p0/XkGy+aPVxOCMzm4qhlUVO/7ZRz0RX4ZihqJ7KPu43EhRaqjry7XDN6ggrYCUt1c6b tNceeQyuPYGXl4IN20FmDkP3TIvgnbd0ghe2QEmzk2zQrTObxyL31Qo9CebNV3oLQKZb kIih2H1Er1Y0nc45248g1TcaTDnKgzorYoWeRLQ5BxFSK6YQE/mY03l0aSYr+g4n556e tHJg3zYqqP9MZgotM5PRIhgFbRicKza8GjnFEYqjmqSe8gktBCVv50aAB1P1pWIB4r3Q +TmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824306; x=1695429106; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=HQNUEYOJ/ozgdrFnqx+YRCy2I1exOHPHuH58RF8SFNA=; b=C/QaxAOHcLCldlHTsjj3u9fQdTUO1ebkG8D97p/953tTYEtLjhCh1ZRcHDbQhPKyAq laIxtS0MJ6qN4xe8gTm4sas3NtTZLkl0ZaFc3P0vhkiS5KzT9BAn6YFSnFcvI1M+ZOiy 3Ef0ifWdS3LttdJ1BI3pyTuwp+BsrIAbehbAN6cEvBIn2k8sXcnNN82nDJiVBTJx3he9 /Te6YFzKjoZW5Oar66a97g7VEFFgUY0TlIiK6OnNs+Al9Vn8kgrQBSKK+irklXwEZaxx 9ECJ5zfFvKmSVikS+LxI1/Qyby3zsp2xmWggto/wesDcx1e9eNtYYrEHX5VFhsUTJ2IJ VJYQ== X-Gm-Message-State: AOJu0YyEJ463bMl0jfJk2heMlsLAGCrhlVGgkvEB+QAyn5YUoEQF2AiG O/8+j734G2mgORARGoWJV2/ajg/+vhM= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:903:32ca:b0:1b8:8c7:31e6 with SMTP id i10-20020a17090332ca00b001b808c731e6mr93755plr.1.1694824306427; Fri, 15 Sep 2023 17:31:46 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:05 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-14-seanjc@google.com> Subject: [PATCH 13/26] KVM: arm64: Include KVM headers to get forward declarations From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:35:44 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777172576954189775 X-GMAIL-MSGID: 1777172576954189775 Include include/uapi/linux/kvm.h and include/linux/kvm_types.h in ARM's public arm_arch_timer.h and arm_pmu.h headers to get forward declarations of things like "struct kvm_vcpu" and "struct kvm_device_attr", which are referenced but never declared (neither file includes *any* KVM headers). The missing includes don't currently cause problems because of the order of includes in parent files, but that order is largely arbitrary and is subject to change, e.g. a future commit will move the ARM specific headers to arch/arm64/include/asm and reorder parent includes to maintain alphabetic ordering. Reported-by: kernel test robot Signed-off-by: Sean Christopherson --- include/kvm/arm_arch_timer.h | 2 ++ include/kvm/arm_pmu.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/kvm/arm_arch_timer.h b/include/kvm/arm_arch_timer.h index bb3cb005873e..e22a15c66288 100644 --- a/include/kvm/arm_arch_timer.h +++ b/include/kvm/arm_arch_timer.h @@ -7,6 +7,8 @@ #ifndef __ASM_ARM_KVM_ARCH_TIMER_H #define __ASM_ARM_KVM_ARCH_TIMER_H +#include +#include #include #include diff --git a/include/kvm/arm_pmu.h b/include/kvm/arm_pmu.h index 31029f4f7be8..e80f1d090579 100644 --- a/include/kvm/arm_pmu.h +++ b/include/kvm/arm_pmu.h @@ -7,6 +7,8 @@ #ifndef __ASM_ARM_KVM_PMU_H #define __ASM_ARM_KVM_PMU_H +#include +#include #include #include From patchwork Sat Sep 16 00:31:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 141031 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1594909vqi; Sat, 16 Sep 2023 04:00:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE3EPrrjxMeXV+paHC9aiN/SrpGympKziABPvufyK/X2AUFmGkO7Umsh/0Af5SfgqLTaQFw X-Received: by 2002:a05:6870:418e:b0:1a9:caa6:1337 with SMTP id y14-20020a056870418e00b001a9caa61337mr4840712oac.23.1694862029097; Sat, 16 Sep 2023 04:00:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694862029; cv=none; d=google.com; s=arc-20160816; b=PqnzsNjBIQpTWbnkkpMy+8zntUH3DD7o+yqofhxNbL1aVwG/eTKpJPNxZNRtq5Iw8i EWklCPaPJctfQvrXgW3nkYzA6oQTVU9M+kYzLMrCLZwZcfVk3p2frJ/rFEAT0xf36ha1 VLBqzL4eNgY5lYhqSk3vCScJ/hIED48dELZNAq4bKPsciwD7C1+g35KBT4ixDE8Dw99R 7M2HFPJaEX6kX6Sg1pOkd8TWzfqbqVztKzv8OSFNa8aYJNADH02PxcfmwapiaGn5q3Ak 0RTp50jbb2IIVaRwBuCoTvHfNP6nsFgwi2t9HprpJV4Ut2wOCTBdZKCN/ZF7C9k1SOM9 F3vA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=Sk1hp6a+9RZ3IPJ6o3Xc56HeuESZXshWdRu3KxHYbOk=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=tRakcKkSe8d+8TPKHuH8xNhTSL0VhOgtQ3vj1q0SxtrLsbkoJwjaDGLu39j2lBUkA+ YrVjJt6S8a7Co8pcCPsd5vRDzdvgXPDM1EZhHqxCwye8V6ZOJ1iVa7S5vzXU4AsJ/XEi m+egBpYQio2SBDM/+QM9J8v564VnAn0Cuqcx8BP8kfWyOUmZbnn8Ju3ekhs/tk/a2wlT 7DA+kOGwePQTli7ThBad07i5i4pTzbjDnDesP/zuis8X/ZuSr2XqclzEr+BHZMXNiUKL C6dM1AV4KD9V1deXGgzpe4xefyo76IY67XiRtcjydFil9jR7gynvYC43XiCkzRoSvEPM SelA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b="ycF/l22J"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id oa18-20020a17090b1bd200b0026c198d8182si7397270pjb.105.2023.09.16.04.00.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 04:00:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b="ycF/l22J"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id BF32683CBB08; Fri, 15 Sep 2023 17:33:50 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238948AbjIPAdO (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238616AbjIPAcX (ORCPT ); Fri, 15 Sep 2023 20:32:23 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 642002D64 for ; Fri, 15 Sep 2023 17:31:49 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id d9443c01a7336-1c40ac5b6e7so24343345ad.0 for ; Fri, 15 Sep 2023 17:31:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824309; x=1695429109; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=Sk1hp6a+9RZ3IPJ6o3Xc56HeuESZXshWdRu3KxHYbOk=; b=ycF/l22Jo1E2YrxcZy5sHf1C9sveT4ijfyxp9ZULzigGNrdK6D7EJX71OC54qu9ssH mTCquPdSdVMYLd+v5298BQQNSKi7j9Y0QxjY45kXlRZThpFFcNtAeFssWi29anOmdVbM Sd345JRughhXhFOhJXvla3fmJxDwSc2uw4z3mF6q7PB3vw0coRRu9IACpTCJADzSmaOi l/U5KnmaNyXkKxcOVOUVeJCzw+cBtfcrbTojvvt+5VQxmrhgaPlCuZlIgscJOl8KsWCi 2j0Cu/rcVZlbzYB7bBYVlKApoPRJau2C7z0lEaHdUfaT5HoHgQZyc0qSVkOJVltD3VtB M3uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824309; x=1695429109; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Sk1hp6a+9RZ3IPJ6o3Xc56HeuESZXshWdRu3KxHYbOk=; b=tSMrlEzMc/SAfmfMo1ICU06JTGyRCR/jdTcv4AbsqXEdnnnaWvWs9irgX2RhodIIz9 70WQPFEjm8PHonUX2xI/fBvWQeNDS7kQZbF9l8BL/6sSP0t74kJy+jltHM80DjYyX4w9 InNsarXgMHHIC9Z2idjCyqJCgzztOPtr0N4PVgOa8M9PKFDSL7wuSatf8Wi7rNyDnZqF 2EDueiPGsNHBaJy4P8MYy4fgNIdUmmJjSoQ+74oIcTB36Fglwz7b60ddinq9SJVNK3bv Oz2DpIlaF/7ntQjurdFqRFdNIlS2Qr3WWeTGE7Q458o5CPTKHtZyfdoZBi55JEVb4LKy vswQ== X-Gm-Message-State: AOJu0YwgGD/5ZU8K5HS1EmBUx7pG+3yYvfIkcn+OMhz28vJgR4eaHmqC BvXZ73kog40SqzsqJxaYVYCVmTf1olM= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:f341:b0:1b9:df8f:888c with SMTP id q1-20020a170902f34100b001b9df8f888cmr57331ple.8.1694824308805; Fri, 15 Sep 2023 17:31:48 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:06 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-15-seanjc@google.com> Subject: [PATCH 14/26] KVM: arm64: Move ARM specific headers in include/kvm to arch directory From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:50 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777191646717447982 X-GMAIL-MSGID: 1777191646717447982 Move kvm/arm_{arch_timer,pmu,vgic}.h to arch/arm64/include/asm and drop the "arm" prefix from all file names. Now that KVM no longer supports 32-bit ARM, there is no reason to expose ARM specific headers to other architectures beyond arm64. Signed-off-by: Sean Christopherson --- .../arm64/include/asm/kvm_arch_timer.h | 0 arch/arm64/include/asm/kvm_host.h | 7 +++---- include/kvm/arm_pmu.h => arch/arm64/include/asm/kvm_pmu.h | 0 .../kvm/arm_vgic.h => arch/arm64/include/asm/kvm_vgic.h | 0 arch/arm64/kvm/arch_timer.c | 5 ++--- arch/arm64/kvm/arm.c | 3 +-- arch/arm64/kvm/pmu-emul.c | 6 +++--- arch/arm64/kvm/reset.c | 3 +-- arch/arm64/kvm/trace_arm.h | 2 +- arch/arm64/kvm/vgic/vgic-debug.c | 2 +- arch/arm64/kvm/vgic/vgic-init.c | 2 +- arch/arm64/kvm/vgic/vgic-irqfd.c | 2 +- arch/arm64/kvm/vgic/vgic-kvm-device.c | 2 +- arch/arm64/kvm/vgic/vgic-mmio-v2.c | 2 +- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 2 +- arch/arm64/kvm/vgic/vgic-mmio.c | 4 ++-- arch/arm64/kvm/vgic/vgic-v2.c | 2 +- arch/arm64/kvm/vgic/vgic-v3.c | 2 +- 18 files changed, 21 insertions(+), 25 deletions(-) rename include/kvm/arm_arch_timer.h => arch/arm64/include/asm/kvm_arch_timer.h (100%) rename include/kvm/arm_pmu.h => arch/arm64/include/asm/kvm_pmu.h (100%) rename include/kvm/arm_vgic.h => arch/arm64/include/asm/kvm_vgic.h (100%) diff --git a/include/kvm/arm_arch_timer.h b/arch/arm64/include/asm/kvm_arch_timer.h similarity index 100% rename from include/kvm/arm_arch_timer.h rename to arch/arm64/include/asm/kvm_arch_timer.h diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index af06ccb7ee34..90cfbf420545 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -26,16 +26,15 @@ #include #include #include +#include #include +#include +#include #define __KVM_HAVE_ARCH_INTC_INITIALIZED #define KVM_HALT_POLL_NS_DEFAULT 500000 -#include -#include -#include - #define KVM_MAX_VCPUS VGIC_V3_MAX_CPUS #define KVM_VCPU_MAX_FEATURES 7 diff --git a/include/kvm/arm_pmu.h b/arch/arm64/include/asm/kvm_pmu.h similarity index 100% rename from include/kvm/arm_pmu.h rename to arch/arm64/include/asm/kvm_pmu.h diff --git a/include/kvm/arm_vgic.h b/arch/arm64/include/asm/kvm_vgic.h similarity index 100% rename from include/kvm/arm_vgic.h rename to arch/arm64/include/asm/kvm_vgic.h diff --git a/arch/arm64/kvm/arch_timer.c b/arch/arm64/kvm/arch_timer.c index 6dcdae4d38cb..5e40bea8f3f3 100644 --- a/arch/arm64/kvm/arch_timer.c +++ b/arch/arm64/kvm/arch_timer.c @@ -14,12 +14,11 @@ #include #include +#include #include #include #include - -#include -#include +#include #include "trace.h" diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 6de1d63b981b..6480628197b4 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -39,10 +39,9 @@ #include #include #include +#include #include -#include - #include "arm_hypercalls.h" #include "arm_psci.h" diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c index 6b066e04dc5d..b5d999adce56 100644 --- a/arch/arm64/kvm/pmu-emul.c +++ b/arch/arm64/kvm/pmu-emul.c @@ -11,10 +11,10 @@ #include #include #include -#include -#include -#include #include +#include +#include +#include #define PERF_ATTR_CFG1_COUNTER_64BIT BIT(0) diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index 7a65a35ee4ac..ad5e239774f1 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm/reset.c @@ -17,12 +17,11 @@ #include #include -#include - #include #include #include #include +#include #include #include #include diff --git a/arch/arm64/kvm/trace_arm.h b/arch/arm64/kvm/trace_arm.h index 8ad53104934d..76ef72de6133 100644 --- a/arch/arm64/kvm/trace_arm.h +++ b/arch/arm64/kvm/trace_arm.h @@ -3,7 +3,7 @@ #define _TRACE_ARM_ARM64_KVM_H #include -#include +#include #include #undef TRACE_SYSTEM diff --git a/arch/arm64/kvm/vgic/vgic-debug.c b/arch/arm64/kvm/vgic/vgic-debug.c index 07aa0437125a..2d542040008c 100644 --- a/arch/arm64/kvm/vgic/vgic-debug.c +++ b/arch/arm64/kvm/vgic/vgic-debug.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "vgic.h" diff --git a/arch/arm64/kvm/vgic/vgic-init.c b/arch/arm64/kvm/vgic/vgic-init.c index c8c3cb812783..9f548ffac90b 100644 --- a/arch/arm64/kvm/vgic/vgic-init.c +++ b/arch/arm64/kvm/vgic/vgic-init.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include "vgic.h" diff --git a/arch/arm64/kvm/vgic/vgic-irqfd.c b/arch/arm64/kvm/vgic/vgic-irqfd.c index 475059bacedf..c35e1a138617 100644 --- a/arch/arm64/kvm/vgic/vgic-irqfd.c +++ b/arch/arm64/kvm/vgic/vgic-irqfd.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include "vgic.h" /** diff --git a/arch/arm64/kvm/vgic/vgic-kvm-device.c b/arch/arm64/kvm/vgic/vgic-kvm-device.c index 212b73a715c1..2c7027d675c9 100644 --- a/arch/arm64/kvm/vgic/vgic-kvm-device.c +++ b/arch/arm64/kvm/vgic/vgic-kvm-device.c @@ -6,7 +6,7 @@ * Author: Marc Zyngier */ #include -#include +#include #include #include #include diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v2.c b/arch/arm64/kvm/vgic/vgic-mmio-v2.c index e070cda86e12..bba0cfeefffe 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio-v2.c +++ b/arch/arm64/kvm/vgic/vgic-mmio-v2.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include "vgic.h" #include "vgic-mmio.h" diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c index 188d2187eede..d54a90beef61 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c +++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c @@ -9,11 +9,11 @@ #include #include #include -#include #include #include #include +#include #include "vgic.h" #include "vgic-mmio.h" diff --git a/arch/arm64/kvm/vgic/vgic-mmio.c b/arch/arm64/kvm/vgic/vgic-mmio.c index ff558c05e990..68a3d8062473 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio.c +++ b/arch/arm64/kvm/vgic/vgic-mmio.c @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include "vgic.h" #include "vgic-mmio.h" diff --git a/arch/arm64/kvm/vgic/vgic-v2.c b/arch/arm64/kvm/vgic/vgic-v2.c index 7e9cdb78f7ce..7eacf1c850a5 100644 --- a/arch/arm64/kvm/vgic/vgic-v2.c +++ b/arch/arm64/kvm/vgic/vgic-v2.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include "vgic.h" diff --git a/arch/arm64/kvm/vgic/vgic-v3.c b/arch/arm64/kvm/vgic/vgic-v3.c index 3dfc8b84e03e..e8501828072b 100644 --- a/arch/arm64/kvm/vgic/vgic-v3.c +++ b/arch/arm64/kvm/vgic/vgic-v3.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include From patchwork Sat Sep 16 00:31:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140924 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1462398vqi; Fri, 15 Sep 2023 20:53:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH4oYnoyEfcpNj11rfc/i057e3BhHtD2207jE6DgHX27kPgqmfnzgidAYCBjZGxi1a1hjX+ X-Received: by 2002:a05:6808:e84:b0:3a7:366f:3b01 with SMTP id k4-20020a0568080e8400b003a7366f3b01mr3869609oil.33.1694836398100; Fri, 15 Sep 2023 20:53:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694836398; cv=none; d=google.com; s=arc-20160816; b=cMcaCOmBy90S5NtTUa5IWJw8HAMisp3OdFUZJKCyhpnqlilE8XvysE8aMagVHGH+cR 4BAr2ULMTWIh5rN9DM1NJi25KBxSGamv/HXp1Fs1jxVzUik/wgBMBRNhWMt7aSAL/y6R IdqOUHrzv7DXlaZveKv/2O8FkRL5bTak0xERPCmIRVbHfLMpJ3ekFo7Ub9QbF3/LwRIC 8r+R62RxRTXWr5hDGlZtXiBaEfzlZUXhnfCTKbniwe9XgVzTyupjidWMBpCNKVZPyppM i8+xXTI++HSM73aotP2xrKkBmV94O+jhet/5m/wZ8pgU9rL2DIbMe6mVNFVWXefZVMkX wB6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=K+4wLZRg/fEoTWN91R6Hud4ODei52D2o77Nnp/okXhc=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=hIVqMfg/vtJh1tpx9RV5K/xlxBja+Q+tE4+03PisxqblSaqAesuLPq8+dJdAeuu5aJ EE9HzyodFIGky5Npb7vjxzfSplAVC1b3I54ud9FlzjlmIGLxJ48/y5DkRW117QBj5rBR 7QDOzJw+5lnoMWrfE7B9p6DLLNPfcyvE9NFZaySx6bJVLzgo3sh0DmUmqQNNhXA7LDmD avKRXetI6yyxsk9ev8MS/rd712+Jw40baMn2asPaHHg9ZMRQRJGQYMncTQq6LbCiWP0Y LrDAD/rVH98nNSleL2bHXRwReDdO1jkc2P9nJEEfQivXhiPxphW43CGXTdqIZzI5uKJU PpCw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=HpUBRAj0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id go24-20020a17090b03d800b002748c1bbd79si2730943pjb.6.2023.09.15.20.53.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:53:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=HpUBRAj0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 3732A83CBB24; Fri, 15 Sep 2023 17:34:12 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238966AbjIPAdh (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238620AbjIPAcY (ORCPT ); Fri, 15 Sep 2023 20:32:24 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C4FD02D75 for ; Fri, 15 Sep 2023 17:31:51 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-5925fb6087bso33963567b3.2 for ; Fri, 15 Sep 2023 17:31:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824311; x=1695429111; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=K+4wLZRg/fEoTWN91R6Hud4ODei52D2o77Nnp/okXhc=; b=HpUBRAj0XTY8DTNT1FZXthO/kSUOHmAEXO4Q6EhzM0LLh4eWwJNsfSzzJQy4JG7wgl uHgcmdWBUTyHrwKfxFI1+YiDBQO8Q4eOGiwgTmrQYiIyq9FNgYNvubdkVnIXolF31lan kIpDyUwVM02vSYN09CzeS1b9JuIlEyUmMXh2avqsuwVm+aUDzIgzyqffJyUNWLq1YpC+ XHGxYiWcZerKCRd5PCOzWM65cPccrVVJi69aEx0/jpc49BkOL/VFoEwz06TfXemgmndW rW0QrCRYemg3jK3M21kw/9dNwqFf/AsmVtFrgU6jqfsvmj2p1mlsQ9AmgCQ9m6lIVqqy dc1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824311; x=1695429111; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=K+4wLZRg/fEoTWN91R6Hud4ODei52D2o77Nnp/okXhc=; b=oEPhZLu2UHXr+rzzWEAMFn1OrxB//fMh2IdWo/QX+RphuSqXQctKrrkmiCDBMRwMv+ gpQiFwqED3B7fJX0fgNFwAjiQR2a9ri+ANH812oXdy6ebFK/9EFL04D62OPVUFsr6QCA ZuTICJis81/tDA+fW8VNNmygGsij4iXsifOD0YbxQ7sjnJAqAsYWlybeMy9OHDUl6bia x4jgYnju8S+KT0+/f8opfver8egzZ9ZWoBHZkUryoBrrmZIVNX6ErQdKfAD8knKWIQVS gkV07RXvgHMDPR9cRwcsBbJO81gi6t6LxQeLynmZadp7ZLWfVZJIsL3jlHfvcD6PFz5c nEYA== X-Gm-Message-State: AOJu0Ywqa+k9igqLsnC6xBtae7ibyN+8IbPBzprmHMnK3lVUDmqZBRqb sCqoPMcEUWiXSpumGomTsZ/vYRMT6Ak= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:ca08:0:b0:59b:f493:813c with SMTP id p8-20020a81ca08000000b0059bf493813cmr84977ywi.9.1694824310900; Fri, 15 Sep 2023 17:31:50 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:07 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-16-seanjc@google.com> Subject: [PATCH 15/26] KVM: Move include/kvm/iodev.h to include/linux as kvm_iodev.h From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:12 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777164770530792684 X-GMAIL-MSGID: 1777164770530792684 Move iodev.h, the last remaining holdout in include/kvm, to the standard include/linux directory as kvm_iodev.h and delete include/kvm. Signed-off-by: Sean Christopherson Acked-by: Anup Patel --- MAINTAINERS | 1 - arch/arm64/include/asm/kvm_vgic.h | 2 +- arch/arm64/kvm/vgic/vgic-mmio-v2.c | 2 +- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 2 +- arch/arm64/kvm/vgic/vgic-mmio.c | 2 +- arch/mips/include/asm/kvm_host.h | 3 +-- arch/powerpc/kvm/mpic.c | 2 +- arch/riscv/kvm/aia_aplic.c | 2 +- arch/riscv/kvm/aia_imsic.c | 2 +- arch/x86/kvm/i8254.h | 2 +- arch/x86/kvm/ioapic.h | 2 +- arch/x86/kvm/irq.h | 2 +- arch/x86/kvm/lapic.h | 2 +- include/{kvm/iodev.h => linux/kvm_iodev.h} | 0 virt/kvm/coalesced_mmio.c | 3 +-- virt/kvm/eventfd.c | 2 +- virt/kvm/kvm_main.c | 3 +-- 17 files changed, 15 insertions(+), 19 deletions(-) rename include/{kvm/iodev.h => linux/kvm_iodev.h} (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 90f13281d297..ddc8375d536c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11498,7 +11498,6 @@ W: http://www.linux-kvm.org T: git git://git.kernel.org/pub/scm/virt/kvm/kvm.git F: Documentation/virt/kvm/ F: include/asm-generic/kvm* -F: include/kvm/iodev.h F: include/linux/kvm* F: include/trace/events/kvm.h F: include/uapi/asm-generic/kvm* diff --git a/arch/arm64/include/asm/kvm_vgic.h b/arch/arm64/include/asm/kvm_vgic.h index 5b27f94d4fad..2ca52888bc75 100644 --- a/arch/arm64/include/asm/kvm_vgic.h +++ b/arch/arm64/include/asm/kvm_vgic.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v2.c b/arch/arm64/kvm/vgic/vgic-mmio-v2.c index bba0cfeefffe..646053ee892f 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio-v2.c +++ b/arch/arm64/kvm/vgic/vgic-mmio-v2.c @@ -6,9 +6,9 @@ #include #include #include +#include #include -#include #include #include "vgic.h" diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c index d54a90beef61..b79a2e860415 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c +++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c @@ -7,8 +7,8 @@ #include #include #include +#include #include -#include #include #include diff --git a/arch/arm64/kvm/vgic/vgic-mmio.c b/arch/arm64/kvm/vgic/vgic-mmio.c index 68a3d8062473..4feca3b1d915 100644 --- a/arch/arm64/kvm/vgic/vgic-mmio.c +++ b/arch/arm64/kvm/vgic/vgic-mmio.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h index 54a85f1d4f2c..f8f63d0aa399 100644 --- a/arch/mips/include/asm/kvm_host.h +++ b/arch/mips/include/asm/kvm_host.h @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -24,8 +25,6 @@ #include #include -#include - /* MIPS KVM register ids */ #define MIPS_CP0_32(_R, _S) \ (KVM_REG_MIPS_CP0 | KVM_REG_SIZE_U32 | (8 * (_R) + (_S))) diff --git a/arch/powerpc/kvm/mpic.c b/arch/powerpc/kvm/mpic.c index 23e9c2bd9f27..b25a03251544 100644 --- a/arch/powerpc/kvm/mpic.c +++ b/arch/powerpc/kvm/mpic.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #define MAX_CPU 32 #define MAX_SRC 256 diff --git a/arch/riscv/kvm/aia_aplic.c b/arch/riscv/kvm/aia_aplic.c index 39e72aa016a4..b49e747f2bad 100644 --- a/arch/riscv/kvm/aia_aplic.c +++ b/arch/riscv/kvm/aia_aplic.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include struct aplic_irq { diff --git a/arch/riscv/kvm/aia_imsic.c b/arch/riscv/kvm/aia_imsic.c index 6cf23b8adb71..586e466a1c6d 100644 --- a/arch/riscv/kvm/aia_imsic.c +++ b/arch/riscv/kvm/aia_imsic.c @@ -10,10 +10,10 @@ #include #include #include +#include #include #include #include -#include #include #include diff --git a/arch/x86/kvm/i8254.h b/arch/x86/kvm/i8254.h index a768212ba821..4de7a0b88e4f 100644 --- a/arch/x86/kvm/i8254.h +++ b/arch/x86/kvm/i8254.h @@ -4,7 +4,7 @@ #include -#include +#include struct kvm_kpit_channel_state { u32 count; /* can be 65536 */ diff --git a/arch/x86/kvm/ioapic.h b/arch/x86/kvm/ioapic.h index 539333ac4b38..2beec2daf1a3 100644 --- a/arch/x86/kvm/ioapic.h +++ b/arch/x86/kvm/ioapic.h @@ -3,7 +3,7 @@ #define __KVM_IO_APIC_H #include -#include +#include #include "irq.h" struct kvm; diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h index c2d7cfe82d00..f9530e9a66f8 100644 --- a/arch/x86/kvm/irq.h +++ b/arch/x86/kvm/irq.h @@ -13,9 +13,9 @@ #include #include #include +#include #include -#include #include "lapic.h" #define PIC_NUM_PINS 16 diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 0a0ea4b5dd8c..bfd99ad1882e 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -2,7 +2,7 @@ #ifndef __KVM_X86_LAPIC_H #define __KVM_X86_LAPIC_H -#include +#include #include diff --git a/include/kvm/iodev.h b/include/linux/kvm_iodev.h similarity index 100% rename from include/kvm/iodev.h rename to include/linux/kvm_iodev.h diff --git a/virt/kvm/coalesced_mmio.c b/virt/kvm/coalesced_mmio.c index 1b90acb6e3fe..cfcb4b84d632 100644 --- a/virt/kvm/coalesced_mmio.c +++ b/virt/kvm/coalesced_mmio.c @@ -9,8 +9,7 @@ * */ -#include - +#include #include #include #include diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 89912a17f5d5..4d7cfb1095fd 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -26,7 +26,7 @@ #include #include -#include +#include #ifdef CONFIG_HAVE_KVM_IRQFD diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 486800a7024b..f585a159b4f5 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -13,9 +13,8 @@ * Yaniv Kamay */ -#include - #include +#include #include #include #include From patchwork Sat Sep 16 00:31:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140905 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1453850vqi; Fri, 15 Sep 2023 20:18:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH558HW5jPT2CT4R+mZeMoOGSprFAjP2IXk6bk6vSGoF61QV8daKN06aNg9MuJ9klsWTheU X-Received: by 2002:a17:902:c44b:b0:1c4:51f3:a184 with SMTP id m11-20020a170902c44b00b001c451f3a184mr434784plm.10.1694834336982; Fri, 15 Sep 2023 20:18:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694834336; cv=none; d=google.com; s=arc-20160816; b=INQkVClVS2PAKCgFDbq+/ewLAX+iVqbDQM7yzM1yHkOK8YyASRJVMS7bvIC81VZ7UV A4PFo+2in5qbJspofcFMdjv+dWxjhJEtOK6oSCkV0C5B6s/sEPdTzLnmi/ot7LIWnkC5 kkr8sPsZReQHfUSiCPHgJBzFKa5mA/I4d5EXY26gZLAMCf4zlttA0SxFpI55gVHA3mBw yI3JSWqt0hd+3FHXviG7mnaVarvpkeIKONGkTNS1DYgH1+glZ1gXWfW6M3rwL9OfwihN Ku+Kx3Fy32Tfjj6zCihAACDictX9FYqbsWkcwkmdk8mPa0umHGwa4bEK+SWZi5LCFmuh 4phQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=pl7bBxxWVXjTf9iTQwKV6iNN5dTCLVhIVjlh92R6IC4=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=WJe8RfGzz+gVQP8g9eFFamH6SAMEc9Vqj7u/eH5hStjJxqdkdpun677V1tH7Oi5SP/ OyxoUId7AEHD/cPbiZ31jy44EEUzG2su1kOe7R7dLVeXxMePWXY8Bf7MIahFR4zuMOXj /kzfOmKcY2TVq0waveh/B76mtvhhuDDNQ1q6Hiylq+qKb885ISi3FeHarOiKBpcJLUld hQU7FMkHJMi5ULihPveAgcTVZnX+Rd/HH59AtSYnSmtt7NIqevCvDicd/RSX51pMOuET CLXr/UION8XiG6CFxZUTGRukkdUsznrZ1yTTaa43J9H1bPwLe7ikAj/WBzCrtgwM3RFk I+ZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=zOLzyvf9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id ay6-20020a1709028b8600b001b8a4519706si4198801plb.19.2023.09.15.20.18.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:18:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=zOLzyvf9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 0A6FE83EC67B; Fri, 15 Sep 2023 17:34:19 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238853AbjIPAdb (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34228 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238654AbjIPAc0 (ORCPT ); Fri, 15 Sep 2023 20:32:26 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E22E52D7F for ; Fri, 15 Sep 2023 17:31:53 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d817775453dso3100917276.2 for ; Fri, 15 Sep 2023 17:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824313; x=1695429113; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=pl7bBxxWVXjTf9iTQwKV6iNN5dTCLVhIVjlh92R6IC4=; b=zOLzyvf9Xh9Oyip0BwJ83PeBHCS/GkeIkYW7amwKWpbVRBulRSs+M2ewlVHSYEk8Y1 fZi/rLeXSktTS8MyrHSb7oSjjoji3mP8DLBFys3HTkweHkzNEjUj/MYjO6bhCObLf6WI C4epHaQCDHjamTfPTIFUVJo9uV7rJeD8D3Ev5VTy1GaRUXNCbP9vUakULPRry3f2UmYw gyw5WDenpiA4SZAJNYLZ4b5c/W6CHbsXfPj0GoeSA/wcWsneuM9gT86MPn9Q/cBxCCsq e6qXt7/vwX6T3FspiyVRjD7e2hTXM1HQsLlpY6p8Z4vdzbokFmWoStzOeNzcENym+vhB +SRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824313; x=1695429113; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pl7bBxxWVXjTf9iTQwKV6iNN5dTCLVhIVjlh92R6IC4=; b=Imj8MhwqBFcF7DcjjPTvBgLZyDpBUGcTObKa8bGMmc5QaM9ZiLD2xN43SPLdXV/uj4 Tddu/1AZUWXa+9uOPr1C6J9tMOkjM90niJXjTqsz4TKufR2Z0Z+fH20+knn1uhE/zF5C P1Wn2uTVlq9FMOywVPV+FLZBDquAQgsVlahoY8LjaCczp+eCYaW+g9DmEXwPbOiiOj+0 KQTOcFMurRnO7gSOVAgALQdEXQvy57H4/SuHIGzER+sMyB4oxP7gmT9qZ54tVrAIya33 GZLqSBRuHCc5FOs1qVDz3/zqDbwbmcTyPWIyY9bmKqYpjCSgBcEsRDG7CxrSM2ke43U+ SXcw== X-Gm-Message-State: AOJu0YymL1oYogF4uSozsk5nr2wleZ48BRKRREUJHa36p/H82lkc2umM nBoST7GnRqPaulKEQeROEDOyoJvM+M8= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:4cf:b0:d7b:92d7:5629 with SMTP id v15-20020a05690204cf00b00d7b92d75629mr82335ybs.8.1694824312956; Fri, 15 Sep 2023 17:31:52 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:08 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-17-seanjc@google.com> Subject: [PATCH 16/26] KVM: MIPS: Stop adding virt/kvm to the arch include path From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:19 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777162609579859349 X-GMAIL-MSGID: 1777162609579859349 Don't add virt/kvm to KVM MIPS' include path, the headers in virt/kvm are intended to be used only by other code in virt/kvm, i.e. are "private" to the core KVM code. It's not clear that MIPS *ever* included a header from virt/kvm, i.e. odds are good the "-Ivirt/kvm" was copied from a different architecture's Makefile when MIPS support was first added. Signed-off-by: Sean Christopherson --- arch/mips/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/mips/kvm/Makefile b/arch/mips/kvm/Makefile index 805aeea2166e..96a7cd21b140 100644 --- a/arch/mips/kvm/Makefile +++ b/arch/mips/kvm/Makefile @@ -4,7 +4,7 @@ include $(srctree)/virt/kvm/Makefile.kvm -ccflags-y += -Ivirt/kvm -Iarch/mips/kvm +ccflags-y += -Iarch/mips/kvm kvm-$(CONFIG_CPU_HAS_MSA) += msa.o From patchwork Sat Sep 16 00:31:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140907 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1455584vqi; Fri, 15 Sep 2023 20:25:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGjprtmVj5XlRv5ngGqce2SkZZMU/6Wo/+3qucr7DMVL+dNc21CmPhRkWJUFaLm74okeAWI X-Received: by 2002:aa7:88d3:0:b0:68f:e245:3aa5 with SMTP id k19-20020aa788d3000000b0068fe2453aa5mr4759562pff.33.1694834739374; Fri, 15 Sep 2023 20:25:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694834739; cv=none; d=google.com; s=arc-20160816; b=mwzeUacVMtP+vcXEOXOCmggP24lmmfce2VfR/KPNo1ThpaiYIuPREXfey1Rqfjt0hu JhVm87etPINEhq1FTFM6Tx9H5ikcqr5niGnUqdlq4+Ah9s6opoNZlwMmQLYjbozcsjMy Axxm0Ot5VJocFruewYbuj7WrKmVcgCiVruj3CLFRhmaKCU8SLW7JpjHEh58iw3ps/beN 8EpUgfKQ0B1WvtWV9vhuPaKxlJv9bmdqYsKWSs3rQQ2keOyQ11W6AQjHEdfhjTePl8I8 TFRYAbe7ua37IUW81yZ3KVQ3MP9ZyNKRDY9dp+ovYH6Ce2ZBk7aorInEHbuXb2fppv6u yiEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=PzobvpQc4vWfR42iy4RjYEgAb/kHLuzC5INLwcS+RqY=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=q8CHPvC7oKsw3fJ4Q5EZ6OsUH0eg6Zucs+LH8I8lExJKJQoQaE2p4131cNKcQXRi7/ G5JW9+/wOWc5uJwvc8hWKkB2/A3eLLR2ZCGPe/HvKMY69V25OlE9ilG0CpCgA3ofNTRU 0UQnBv/gX+vU8uTyJ3bQut7ziwPuiYnM7pijH+WrKDuZ/FGszyIclUOOxTj+PXZdLy4p 2IWit9IOjiZ/Rdnd7TPptxm6SnfjZUrBUQsPzMhrdOVHTSoIDDB0s/RzK/GqHbyhIoti CV/bz6zao5eOVoJu60XqzTYsqWgIk5nEIcbq5O097PVbnir9Lv7+lqpR+h6AzEDB3n46 QsTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=YxihMmMO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id k186-20020a6384c3000000b00577960a815csi4153799pgd.188.2023.09.15.20.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:25:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=YxihMmMO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id A863A834A4E7; Fri, 15 Sep 2023 17:33:26 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239004AbjIPAdS (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238734AbjIPAci (ORCPT ); Fri, 15 Sep 2023 20:32:38 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FED02709 for ; Fri, 15 Sep 2023 17:31:55 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-d8186d705a9so3253663276.3 for ; Fri, 15 Sep 2023 17:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824315; x=1695429115; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=PzobvpQc4vWfR42iy4RjYEgAb/kHLuzC5INLwcS+RqY=; b=YxihMmMOwAJDc/bohM/izVntYK4R7FAAA53ohMstPpD0qgnNu65NkYu2rM60V2XRl7 SoSsFkx83Rdd2lw/hJ1tVX2Qd8mELlpNHREfNHu3j46tDd05Z9mzKhU6rlK0NCLUNPJk u0wHDKMdqWe6q8hJLnKIYgmtI0x/evwMYUsYMj1jZsB04PYfON5z6J7440wSOhZcr6U/ I4Yw9GPYIayu+Y4uIafMn0jxhTMGSOmzI7AshUDpcZj9QzmP3AfH7ybM9cR4WGZ7qH9c 6+XbKkh1B/ns7LBaT8q4OYPlxGDqOAoZVtWPDp1Dfc8mwumFYq9Sg/WjhDSTNnkdA9do vdhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824315; x=1695429115; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PzobvpQc4vWfR42iy4RjYEgAb/kHLuzC5INLwcS+RqY=; b=oDaPhpDrTMJLeaGdAtraUjK25Nu+iXWhtXoLLSHdzlV5CI5yhV4ljXOBKrCs8QhTgo SwThzG3kA2KGzsqcw7qvI6cqEE7lH0IB1LApKmPujf/aY9yv+eNjx5IYeJ2UyVxJ1c15 xb6S6hkzSCp2lyuVXz8lCzLhCYV8XW4bGr+aBSfz7GBZR2lpRZXuNyX6JWfGXmHCTR6O FIiBU54VJOSNwOKZqXB1nKMa5fdMSLZyG54CeWE5/KdLr52dg2MH8gikWKJuvPICddZ6 y3Sa4NxJ3j+oGRjEl7yYd+aUcehi5W+GA4tIOhYHZq+Eso40URsW/9HpF5Akyyh94iMG oC9A== X-Gm-Message-State: AOJu0Yx1p+lSW5oLZnmmR80uNTssn6gydq45NqH05/lvOfU7Au0LRcvP FaK4CwNTj8A+4OgDP/0gMiqPJRppodk= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:2e06:0:b0:d77:fb4e:d85e with SMTP id u6-20020a252e06000000b00d77fb4ed85emr78448ybu.6.1694824314795; Fri, 15 Sep 2023 17:31:54 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:09 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-18-seanjc@google.com> Subject: [PATCH 17/26] KVM: PPC: Stop adding virt/kvm to the arch include path From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:26 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777163031653827793 X-GMAIL-MSGID: 1777163031653827793 Don't add virt/kvm to KVM PPC's include path, the headers in virt/kvm are intended to be used only by other code in virt/kvm, i.e. are "private" to the core KVM code. It's not clear that PPC *ever* included a header from virt/kvm, i.e. odds are good the "-Ivirt/kvm" was copied from a different architecture's Makefile when PPC support was first added. Signed-off-by: Sean Christopherson --- arch/powerpc/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile index 5319d889b184..08a0e53d58c7 100644 --- a/arch/powerpc/kvm/Makefile +++ b/arch/powerpc/kvm/Makefile @@ -3,7 +3,7 @@ # Makefile for Kernel-based Virtual Machine module # -ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm +ccflags-y := -Iarch/powerpc/kvm include $(srctree)/virt/kvm/Makefile.kvm From patchwork Sat Sep 16 00:31:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140865 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1427857vqi; Fri, 15 Sep 2023 18:50:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG8HFh7EBnTPF0aN0uD36eJu/mL4PZbcyw+utVRs/RsXcVYaA5u/2EC81NWg1s58+toLg4U X-Received: by 2002:a05:6358:618c:b0:140:f6ab:b11e with SMTP id w12-20020a056358618c00b00140f6abb11emr4102483rww.28.1694829036408; Fri, 15 Sep 2023 18:50:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694829036; cv=none; d=google.com; s=arc-20160816; b=gQceiz4/AQ0O2zTjowm8nxfNKhyYYGV/FHac62C3UzbYtcoe3v8K/rAVUzKL/V3bRw 67bADD/v8gL5bDIHIB0zo974zqHscRGplI4k6aFS7umj1nKoZoZXTl+/UL7DykZzW3ry 9+7Xu4DHZgwG2/1yWEdhBvzkQdsDCKSdJ30lFRNrKSKbl1EPCsN3AHejNjXqjfZHVG8e Rk2nnBC9oGUv0Cy1WRi4iooTYdmLoTUjb92rgnqyJgu8knumlGnTgkwEiqJIkXoCRR4z 5QyG+a70vgLHUtFdHTMCAwRnT0z03iq2KRMtRg5PFW1L75waQkL3BLtAgx7BJoJ0saQU yqzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=Fxp/wpw1LF0d8Fhe/2GDyJ/jS0kdkc80zXgNVrZkdeA=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=vt9NtkKDFy+gHC3VuiWZv9arsYMBf90eNiO4Qqhe5sYpWyvjPCZp6FGDDIWdGDkkLQ wHP/wUv94w2x0Does2Z38W9nbGhU/FUZnAQlT5UWaf8KIlFEFydP5hvJAlm8iKnIMi7n XGsypIwKLOjZcNWomHPWDC6MByCHsrSStpW5iSiNVddE6KA6rkHaYYCETrUpl7xfhbXv Dq8Cx/e15DvKLmFVximMIRH9/YyMbbHx0UfA/EoMtJKfonssYJKQPs2GRNkqG+FoVCMn Wi3VjrwukP6TpeYcPLAzlPbLi1BtjChrNvnDOvJC/sP7ELVtrnV7ZiYQJiC0N8AG/w2Z n/Ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=2fbwrzww; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id r135-20020a632b8d000000b00563ef545828si4165790pgr.8.2023.09.15.18.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 18:50:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=2fbwrzww; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 1BF288300EDD; Fri, 15 Sep 2023 17:34:40 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238862AbjIPAdf (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238666AbjIPAc1 (ORCPT ); Fri, 15 Sep 2023 20:32:27 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC7E730CA for ; Fri, 15 Sep 2023 17:31:57 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d814a1f7378so7097536276.1 for ; Fri, 15 Sep 2023 17:31:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824317; x=1695429117; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=Fxp/wpw1LF0d8Fhe/2GDyJ/jS0kdkc80zXgNVrZkdeA=; b=2fbwrzwwcwMEdCJUr8RGBaUnDngKNB070PXZtyq30zQwjcm8IolGOgCF1XZmW1ompj IDBGVk8mkCcHAD4KXWzTkNV7Ai4zcL9LFKOqVR+Xrn3ZzRBGASphXPfjCS42L/CbasYL K1P6sVitcJCmYaiSyf0RbihIqVp7G7lJrQayuNjQMGiY9xwnVGQUE2V4qezFwn8FLTtm rsZHajwCTZ4KS+RQcnK4ZdWQULiNEGoZBZaSj6x/FhDkfbEN78LHV7ARbwSZ6RVVX/WF 6/fbeE2lkm75SHXs7lvSMGcOS3cXdtqsvcFNQCwpmLq8JB9OpLH8mxuNlMEnGJT5l7kM UoIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824317; x=1695429117; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Fxp/wpw1LF0d8Fhe/2GDyJ/jS0kdkc80zXgNVrZkdeA=; b=CpbAGqVswEr8CiTl7oYjmAYEkKeSeGaVKEoKCAvqLE0GYs8Jiklj9lEVk5G8UnQCl3 ODQoFw7mSpk1sKWFmNRNlMq2o8EAOl3NJ3tivenm7h92FysxnVgeUi92mgKt/3Ca35rD oJy7uEcS/TNTBk7wfdsljZ35mW+uAsJcdI+2DXuXTq2vuaoVnczUg8xOf/JA2bUsz/Xf j8RSu0vZtvbaTC9VIJhzt8JpWdQ2L+BTGBlyfQ6sDLcz/JgBMkBflqWQ92JQ+SnhRzdd 2WjSdesmDz92Esf5fQarseRHmZ8bV8hUJ7Fmxef1dXEvaHFZhd+NVxgJzukliiTen3rc 3HtA== X-Gm-Message-State: AOJu0Yw/BKGf2p7vWcTTLQPPIp7G8UNguqSWqtNIbM5T4DbChsltOnNt Jtm0vw45d6lrvOpfCCBECattcdFPc20= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:4444:0:b0:d80:8aa6:5ac0 with SMTP id r65-20020a254444000000b00d808aa65ac0mr190245yba.4.1694824316815; Fri, 15 Sep 2023 17:31:56 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:10 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-19-seanjc@google.com> Subject: [PATCH 18/26] KVM: s390: Stop adding virt/kvm to the arch include path From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:40 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777157051510145557 X-GMAIL-MSGID: 1777157051510145557 Don't add virt/kvm to KVM s390's include path, the headers in virt/kvm are intended to be used only by other code in virt/kvm, i.e. are "private" to the core KVM code. It's not clear that s390 *ever* included a header from virt/kvm, i.e. odds are good the "-Ivirt/kvm" was copied from a x86's Makefile when s390 support was first added. The only headers in virt/kvm at the time were the x86 specific ioapic.h, and iodev.h, neither of which shows up as an #include in the diff for the commit range 37817f2982d0f..e976a2b997fc4. Signed-off-by: Sean Christopherson Reviewed-by: Thomas Huth Acked-by: Claudio Imbrenda --- arch/s390/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/s390/kvm/Makefile b/arch/s390/kvm/Makefile index 02217fb4ae10..f17249ab2a72 100644 --- a/arch/s390/kvm/Makefile +++ b/arch/s390/kvm/Makefile @@ -5,7 +5,7 @@ include $(srctree)/virt/kvm/Makefile.kvm -ccflags-y := -Ivirt/kvm -Iarch/s390/kvm +ccflags-y := -Iarch/s390/kvm kvm-y += kvm-s390.o intercept.o interrupt.o priv.o sigp.o kvm-y += diag.o gaccess.o guestdbg.o vsie.o pv.o From patchwork Sat Sep 16 00:31:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140840 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1405546vqi; Fri, 15 Sep 2023 17:40:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGNruKMtt4KdfVq3yaJ7AFER1uVXkjBwUMFOUljouaxYuPulD1Ye/Mt6ROqBQmM4AYPn29b X-Received: by 2002:aa7:88cd:0:b0:68f:c9df:2ccb with SMTP id k13-20020aa788cd000000b0068fc9df2ccbmr3498155pff.1.1694824859145; Fri, 15 Sep 2023 17:40:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694824859; cv=none; d=google.com; s=arc-20160816; b=hG2xdWySuMAFCCvoC690mx2QyFw47st2zFj2uMZFcH0rroRxObOUgLgvkSbETKBKqr 8sIoBKrnXTskpz5RvY6l5U26C7eFxS109uH6G8aQ2Glw6Fb7MR+7ESWx1ZeD0YcBVTnR mQus38bNtPmxmUUJyYgdCRVfP+MdrGpPWaSJQ3qJG+ykf5ljIuUNffxeYfF9mi1HeSpq RPQTzIGoPogCEyPQMv+spoSU33lo96ipDM4mqtm+aI4qiMcfNHoUIzflCbk8bhSfnOwP 2UNL1WPJCKEESAJexjey0HKE6JOJeU9kwW6fKbZXcVlbkoLxSwVvSSDwlCNs9XJUhKlz mMeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=I1k7UlFLK1e3KB496SGnrZE1fwTPdTtkvkYnZUVfXtU=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=sdImjxm0RWcaEVAGu+gSg3hEUSZAy2f7hxPD/MskqbKwX675TClh75FEGzj8DsMfq8 dyBKkFXdB1cDwyZpvRSIZ3fODflPRDXdoR/BPtaI7shOfMKezqS1vf8ppoB4UGz1DbHF YFWYm+mgKtPUOt2bK5Hk73EQZzWpWnPVjdO9wDKHQ6pEphwYfl5Bk1qBpDmk2nPuBqga GRhvoT4E2KzfxXlEnMw0IDSLDqbG58/tGGlRrdI+Q6u49J0PcT04UZy1pqfvOKGTph+I c5w6eVMTPqhqFWEkP9dH/CKsbG+SGfDpZPwcCXgsxy6TV9Pw3ewidqoSks7KAimc3Mfj qmxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=IWC0OkgW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id p23-20020a056a000a1700b0069026fd5a29si4209745pfh.19.2023.09.15.17.40.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 17:40:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=IWC0OkgW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 7E5B783C9D46; Fri, 15 Sep 2023 17:34:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238537AbjIPAdY (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238774AbjIPAcn (ORCPT ); Fri, 15 Sep 2023 20:32:43 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 431AA1FD2 for ; Fri, 15 Sep 2023 17:31:59 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id d9443c01a7336-1c43e6ba8d1so8895215ad.3 for ; Fri, 15 Sep 2023 17:31:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824319; x=1695429119; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=I1k7UlFLK1e3KB496SGnrZE1fwTPdTtkvkYnZUVfXtU=; b=IWC0OkgWuATSfuo1F1dQCwyIx+b/WZpIdXnlA2378o7EYl9hFcmP717IG0O306dLn0 foehRodde+VX2DfIEUjgrrM1Eon0688x7Uc1rZpXhaW922hWaAU9WZkTYLnrtkjDyItx bWgsoMv8If1qO23dFbpQ+FjPuBVLHkuowtKkRVWhhg+n500FUE0kmhHAToObw2Sgbi7m jXvF4n/9DAADe5Lxbp2YyBI42mXIjiAhYJz0rOplK0JxxxJDFjW2LvwCm8ep+6tGZo66 kUp3ad0vQQCdrix+Yt2Z/spbVBivm71cUo/+LgEVVK4um4SkpAsjPoALFSActnL5+a0Z oLbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824319; x=1695429119; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=I1k7UlFLK1e3KB496SGnrZE1fwTPdTtkvkYnZUVfXtU=; b=IFgvnQqki2kLiYZOouEb7Cmoo0ioRsBNaSPLs7DvSofCTgIvPurI4KHE4V73k1Tmmm /HPhQ1b47ud3Jwn+GDOJuBAgbYioBR+mgADjZO98D+r86N2s0Y4dfVAvaT/3Ldk/d9Ww 83/NYB51i8AIAaBqqqigD1N+8xU7hlXHxaQevbQ+9J35IhyiaSjjhR7G6Fqyo1QadDPN FCwyD+ocolzN9JarR3t/Yo4ZvRItmCC/6IuiIUIWQumpuH21h5ppypuTQiaVsyg4v9ul TzN9uGX51T9Gn/IAYL8KM8E9WR4/fISC8jdGQ4/PeyYLPN15k+E14aQu2A71Ou7ICNXt nE7w== X-Gm-Message-State: AOJu0YwMmfU3b5bK7xEnN1vPCI1fmSB2GO9DWQ3OJf9kpGggdyvkws+O A7Dc6Th25iw0E3712HVhZZIVlOvNQ08= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:ec8b:b0:1bf:cc5:7b53 with SMTP id x11-20020a170902ec8b00b001bf0cc57b53mr68748plg.1.1694824318653; Fri, 15 Sep 2023 17:31:58 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:11 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-20-seanjc@google.com> Subject: [PATCH 19/26] KVM: Standardize include paths across all architectures From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:02 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777152671381136779 X-GMAIL-MSGID: 1777152671381136779 Standardize KVM's include paths across all architectures by declaring the KVM-specific includes in the common Makefile.kvm. Having common KVM "own" the included paths reduces the temptation to unnecessarily add virt/kvm to arch include paths, and conversely if allowing arch code to grab headers from virt/kvm becomes desirable, virt/kvm can be added to all architecture's include path with a single line update. Having the common KVM makefile append to ccflags also provides a convenient location to append other things, e.g. KVM-specific #defines. Note, this changes the behavior of s390 and PPC, as s390 and PPC previously overwrote ccflags-y instead of adding on. There is no evidence that overwriting ccflags-y was necessary or even deliberate, as both s390 and PPC switched to the overwrite behavior without so much as a passing mention when EXTRA_CFLAGS was replaced with ccflags-y (commit c73028a02887 ("s390: change to new flag variable") and commit 4108d9ba9091 ("powerpc/Makefiles: Change to new flag variables")). Signed-off-by: Sean Christopherson Acked-by: Anup Patel --- arch/arm64/kvm/Makefile | 2 -- arch/mips/kvm/Makefile | 2 -- arch/powerpc/kvm/Makefile | 2 -- arch/riscv/kvm/Makefile | 2 -- arch/s390/kvm/Makefile | 2 -- arch/x86/kvm/Makefile | 1 - virt/kvm/Makefile.kvm | 2 ++ 7 files changed, 2 insertions(+), 11 deletions(-) diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile index c0c050e53157..3996489baeef 100644 --- a/arch/arm64/kvm/Makefile +++ b/arch/arm64/kvm/Makefile @@ -3,8 +3,6 @@ # Makefile for Kernel-based Virtual Machine module # -ccflags-y += -I $(srctree)/$(src) - include $(srctree)/virt/kvm/Makefile.kvm obj-$(CONFIG_KVM) += kvm.o diff --git a/arch/mips/kvm/Makefile b/arch/mips/kvm/Makefile index 96a7cd21b140..d198e1addea7 100644 --- a/arch/mips/kvm/Makefile +++ b/arch/mips/kvm/Makefile @@ -4,8 +4,6 @@ include $(srctree)/virt/kvm/Makefile.kvm -ccflags-y += -Iarch/mips/kvm - kvm-$(CONFIG_CPU_HAS_MSA) += msa.o kvm-y += mips.o emulate.o entry.o \ diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile index 08a0e53d58c7..d6c6678ddf65 100644 --- a/arch/powerpc/kvm/Makefile +++ b/arch/powerpc/kvm/Makefile @@ -3,8 +3,6 @@ # Makefile for Kernel-based Virtual Machine module # -ccflags-y := -Iarch/powerpc/kvm - include $(srctree)/virt/kvm/Makefile.kvm common-objs-y += powerpc.o emulate_loadstore.o diff --git a/arch/riscv/kvm/Makefile b/arch/riscv/kvm/Makefile index 4c2067fc59fc..ff7d5f67e229 100644 --- a/arch/riscv/kvm/Makefile +++ b/arch/riscv/kvm/Makefile @@ -3,8 +3,6 @@ # Makefile for RISC-V KVM support # -ccflags-y += -I $(srctree)/$(src) - include $(srctree)/virt/kvm/Makefile.kvm obj-$(CONFIG_KVM) += kvm.o diff --git a/arch/s390/kvm/Makefile b/arch/s390/kvm/Makefile index f17249ab2a72..f8153189e003 100644 --- a/arch/s390/kvm/Makefile +++ b/arch/s390/kvm/Makefile @@ -5,8 +5,6 @@ include $(srctree)/virt/kvm/Makefile.kvm -ccflags-y := -Iarch/s390/kvm - kvm-y += kvm-s390.o intercept.o interrupt.o priv.o sigp.o kvm-y += diag.o gaccess.o guestdbg.o vsie.o pv.o diff --git a/arch/x86/kvm/Makefile b/arch/x86/kvm/Makefile index 80e3fe184d17..d13f1a7b7b3d 100644 --- a/arch/x86/kvm/Makefile +++ b/arch/x86/kvm/Makefile @@ -1,6 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -ccflags-y += -I $(srctree)/arch/x86/kvm ccflags-$(CONFIG_KVM_WERROR) += -Werror ifeq ($(CONFIG_FRAME_POINTER),y) diff --git a/virt/kvm/Makefile.kvm b/virt/kvm/Makefile.kvm index 29373b59d89a..e85079ad245d 100644 --- a/virt/kvm/Makefile.kvm +++ b/virt/kvm/Makefile.kvm @@ -3,6 +3,8 @@ # Makefile for Kernel-based Virtual Machine module # +ccflags-y += -I$(srctree)/$(src) + KVM ?= ../../../virt/kvm kvm-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o From patchwork Sat Sep 16 00:31:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140837 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1404594vqi; Fri, 15 Sep 2023 17:37:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFPkWGmdA3HND438+vrjuLlQd7XqoPSG3PdtjYsOSzvyg6hjrPdBLojmy23yqTJvwdb2Sb2 X-Received: by 2002:a17:902:e5d2:b0:1c2:5db:7f16 with SMTP id u18-20020a170902e5d200b001c205db7f16mr3608460plf.67.1694824668097; Fri, 15 Sep 2023 17:37:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694824668; cv=none; d=google.com; s=arc-20160816; b=ZFusnlkfsX2cYxlufCOp6c89bsDQYF4roVbSZS0dv2L1c1WYYM3Cxt/ci9IpM0ofg/ ltXItHmbuTgeIUt4QxhoAyNYxHICIxstprhtid4ts0xKFN+Rhbb0l9NB3mimrXi7NTn6 wGXtoSOGrs4Wo3YLVRoZxt00il4Up05WnXzhPJH0IfWEmW83TJ8pZSvL35ZFKXL+gS4/ I8YaVAvRMddRpvxkQvnJ1gbEkQmwn/0hTZF0s9k0RBcRdx4v52aChBw7lKWNJB9yoQqp eD24oVcjlj+Mne9THGdA8uBU2U7CZoTxW/xDSC3PofER6vIQUrjizV2rIK+jAXbzkgsv CPMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=B1dRB8XO+KspaRMyC7zp9UYo9xj54whk7JRM1+EstQc=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=ceK01VW6ZDEETig3mR2BbB5gLrUnZ3IOntKXq/twEHBdKRVJ1jBi9BQNwxmnrfQZdB DYB62TTkVewYBA2eVP00h71MU35lnDslbS6Liqpp7cK50+Ooi6dFKgH5GpRwI+I3k/qE Q52OMJuXtqSkTPu88M4to+YGG4QMnijwHwzsEXlAVFzzXKGTzcr1jy+car5ounuTurF+ R5tQYHCZHF9NDHTFB121yWXU0ZQJM2vv0QwxbM4XDhdeTBxR5chFhOWWujmUe/YIsPfX 51rZFGV6TafwfUjIKjKHPUMnWhSZQjf7dItm1EMz4EyfMdK9/RQZyLPL2jfU9qh4y0bB D2pQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=b2Q8m1ZZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id z17-20020a170903019100b001bf0916b665si4278733plg.393.2023.09.15.17.37.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 17:37:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=b2Q8m1ZZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 7010483CEDEC; Fri, 15 Sep 2023 17:34:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238810AbjIPAd0 (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238740AbjIPAck (ORCPT ); Fri, 15 Sep 2023 20:32:40 -0400 Received: from mail-pg1-x54a.google.com (mail-pg1-x54a.google.com [IPv6:2607:f8b0:4864:20::54a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AF8910F7 for ; Fri, 15 Sep 2023 17:32:01 -0700 (PDT) Received: by mail-pg1-x54a.google.com with SMTP id 41be03b00d2f7-573c84224easo2542173a12.1 for ; Fri, 15 Sep 2023 17:32:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824321; x=1695429121; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=B1dRB8XO+KspaRMyC7zp9UYo9xj54whk7JRM1+EstQc=; b=b2Q8m1ZZ+34ugEzoopce/wVvpJwHju3GZM8AMZM9sfiFIRHsiUc4YnjWTu2lgU1M13 0ZPaHi67Xz5Q5XfQY8mBegk7faF59l/FgDguEHLxX4HLFdyLB6UNeTbswYJV/NIRVpVC FNJiEjVMLd/xexsSsF3ExC9yQQ3IkUDVRnMf/7TG6QfuXDJCZmwbSJX1hX0NlAYKPeoQ cspGVS68nnyEMyVSwkZvx/pt0G/45k/GuIWJPwJqmAfSOUyZquCtLOUPU1YlWSlDRn/h 0A6qh/ZPDSli2T+i025H0KYTRrn7+jzEYGSNazClftofMavBWBaA3uYfpeqYC8yzLpMm r0Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824321; x=1695429121; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=B1dRB8XO+KspaRMyC7zp9UYo9xj54whk7JRM1+EstQc=; b=PKwqLXxKD/HO7bZ0/p5GTrQcJmO6QwNFmX/19MYcua8zl1O2w6Osur0i/ekjvKlNGj ddwmfIlvHN7g0xKyc/ccIiecxdTzkojJ2F2pfT2p/Qsg6bOtuuVjFCFHibMZ++YQlFxa nt+NIfqzPJ0/V10Vr5B66CzguU2yhGFmdWuxTq/+j+GQ51EzbrTMKLQUT4fLiT/Hh3Sq 2NgCSox2lAdDo/q7IRMu66srowHJOGUm8hQdhFxeZ+rixgObYyoJoIldk1Vc0qUn9sIt i+fDJiSq/R5aEXmm8H14a+IH5dqFSaJfebMp7fNTxgIgtr0QpuKaFe9toTD1reDF4CKF cmCw== X-Gm-Message-State: AOJu0YyYPTMVBzUsfLktSLGSnl8ALDO4bleQmegC1/pjoE1p+lvHNpFO Ba+pZk4Na0iR5DmZkV0LsNSMeWK7QO4= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a63:7057:0:b0:574:535:60f with SMTP id a23-20020a637057000000b005740535060fmr69376pgn.11.1694824320845; Fri, 15 Sep 2023 17:32:00 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:12 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-21-seanjc@google.com> Subject: [PATCH 20/26] perf/x86: KVM: Have perf define a dedicated struct for getting guest PEBS data From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:02 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777152471171514846 X-GMAIL-MSGID: 1777152471171514846 Have perf define a struct for getting guest PEBS data from KVM instead of poking into the kvm_pmu structure. Passing in an entire "struct kvm_pmu" _as an opaque pointer_ to get at three fields is silly, especially since one of the fields exists purely to convey information to perf, i.e. isn't used by KVM. Perf should also own its APIs, i.e. define what fields/data it needs, not rely on KVM to throw fields into data structures that effectively hold KVM-internal state. Signed-off-by: Sean Christopherson --- arch/x86/events/core.c | 5 +++-- arch/x86/events/intel/core.c | 18 +++++++++--------- arch/x86/events/perf_event.h | 3 ++- arch/x86/include/asm/kvm_host.h | 9 --------- arch/x86/include/asm/perf_event.h | 12 ++++++++++-- arch/x86/kvm/vmx/pmu_intel.c | 16 +++++++++++++--- arch/x86/kvm/vmx/vmx.c | 10 ++++++---- arch/x86/kvm/vmx/vmx.h | 2 +- 8 files changed, 44 insertions(+), 31 deletions(-) diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index 185f902e5f28..3b015cfcf41d 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -695,9 +695,10 @@ void x86_pmu_disable_all(void) } } -struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr, void *data) +struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr, + struct x86_guest_pebs *guest_pebs) { - return static_call(x86_pmu_guest_get_msrs)(nr, data); + return static_call(x86_pmu_guest_get_msrs)(nr, guest_pebs); } EXPORT_SYMBOL_GPL(perf_guest_get_msrs); diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c index fa355d3658a6..9b848d7ebaaf 100644 --- a/arch/x86/events/intel/core.c +++ b/arch/x86/events/intel/core.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include @@ -4053,11 +4052,11 @@ static int intel_pmu_hw_config(struct perf_event *event) * when it uses {RD,WR}MSR, which should be handled by the KVM context, * specifically in the intel_pmu_{get,set}_msr(). */ -static struct perf_guest_switch_msr *intel_guest_get_msrs(int *nr, void *data) +static struct perf_guest_switch_msr *intel_guest_get_msrs(int *nr, + struct x86_guest_pebs *guest_pebs) { struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events); struct perf_guest_switch_msr *arr = cpuc->guest_switch_msrs; - struct kvm_pmu *kvm_pmu = (struct kvm_pmu *)data; u64 intel_ctrl = hybrid(cpuc->pmu, intel_ctrl); u64 pebs_mask = cpuc->pebs_enabled & x86_pmu.pebs_capable; int global_ctrl, pebs_enable; @@ -4090,20 +4089,20 @@ static struct perf_guest_switch_msr *intel_guest_get_msrs(int *nr, void *data) return arr; } - if (!kvm_pmu || !x86_pmu.pebs_ept) + if (!guest_pebs || !x86_pmu.pebs_ept) return arr; arr[(*nr)++] = (struct perf_guest_switch_msr){ .msr = MSR_IA32_DS_AREA, .host = (unsigned long)cpuc->ds, - .guest = kvm_pmu->ds_area, + .guest = guest_pebs->ds_area, }; if (x86_pmu.intel_cap.pebs_baseline) { arr[(*nr)++] = (struct perf_guest_switch_msr){ .msr = MSR_PEBS_DATA_CFG, .host = cpuc->active_pebs_data_cfg, - .guest = kvm_pmu->pebs_data_cfg, + .guest = guest_pebs->data_cfg, }; } @@ -4119,8 +4118,8 @@ static struct perf_guest_switch_msr *intel_guest_get_msrs(int *nr, void *data) arr[pebs_enable].guest = 0; } else { /* Disable guest PEBS thoroughly for cross-mapped PEBS counters. */ - arr[pebs_enable].guest &= ~kvm_pmu->host_cross_mapped_mask; - arr[global_ctrl].guest &= ~kvm_pmu->host_cross_mapped_mask; + arr[pebs_enable].guest &= ~guest_pebs->cross_mapped_mask; + arr[global_ctrl].guest &= ~guest_pebs->cross_mapped_mask; /* Set hw GLOBAL_CTRL bits for PEBS counter when it runs for guest */ arr[global_ctrl].guest |= arr[pebs_enable].guest; } @@ -4128,7 +4127,8 @@ static struct perf_guest_switch_msr *intel_guest_get_msrs(int *nr, void *data) return arr; } -static struct perf_guest_switch_msr *core_guest_get_msrs(int *nr, void *data) +static struct perf_guest_switch_msr *core_guest_get_msrs(int *nr, + struct x86_guest_pebs *guest_pebs) { struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events); struct perf_guest_switch_msr *arr = cpuc->guest_switch_msrs; diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h index c8ba2be7585d..d805c9007e35 100644 --- a/arch/x86/events/perf_event.h +++ b/arch/x86/events/perf_event.h @@ -920,7 +920,8 @@ struct x86_pmu { /* * Intel host/guest support (KVM) */ - struct perf_guest_switch_msr *(*guest_get_msrs)(int *nr, void *data); + struct perf_guest_switch_msr *(*guest_get_msrs)(int *nr, + struct x86_guest_pebs *guest_pebs); /* * Check period value for PERF_EVENT_IOC_PERIOD ioctl. diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 1a4def36d5bb..29db870dbaae 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -548,15 +548,6 @@ struct kvm_pmu { u64 pebs_data_cfg; u64 pebs_data_cfg_mask; - /* - * If a guest counter is cross-mapped to host counter with different - * index, its PEBS capability will be temporarily disabled. - * - * The user should make sure that this mask is updated - * after disabling interrupts and before perf_guest_get_msrs(); - */ - u64 host_cross_mapped_mask; - /* * The gate to release perf_events not marked in * pmc_in_use only once in a vcpu time slice. diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h index 85a9fd5a3ec3..34c2c9a0b02b 100644 --- a/arch/x86/include/asm/perf_event.h +++ b/arch/x86/include/asm/perf_event.h @@ -564,11 +564,19 @@ static inline void perf_events_lapic_init(void) { } static inline void perf_check_microcode(void) { } #endif +struct x86_guest_pebs { + u64 ds_area; + u64 data_cfg; + u64 cross_mapped_mask; +}; + #if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL) -extern struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr, void *data); +extern struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr, + struct x86_guest_pebs *guest_pebs); extern void x86_perf_get_lbr(struct x86_pmu_lbr *lbr); #else -struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr, void *data); +struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr, + struct x86_guest_pebs *guest_pebs); static inline void x86_perf_get_lbr(struct x86_pmu_lbr *lbr) { memset(lbr, 0, sizeof(*lbr)); diff --git a/arch/x86/kvm/vmx/pmu_intel.c b/arch/x86/kvm/vmx/pmu_intel.c index f2efa0bf7ae8..3b3929871f7e 100644 --- a/arch/x86/kvm/vmx/pmu_intel.c +++ b/arch/x86/kvm/vmx/pmu_intel.c @@ -765,11 +765,20 @@ static void intel_pmu_cleanup(struct kvm_vcpu *vcpu) intel_pmu_release_guest_lbr_event(vcpu); } -void intel_pmu_cross_mapped_check(struct kvm_pmu *pmu) +u64 intel_pmu_get_cross_mapped_mask(struct kvm_pmu *pmu) { - struct kvm_pmc *pmc = NULL; + u64 host_cross_mapped_mask; + struct kvm_pmc *pmc; int bit, hw_idx; + if (!(pmu->pebs_enable & pmu->global_ctrl)) + return 0; + + /* + * If a guest counter is cross-mapped to host counter with different + * index, its PEBS capability will be temporarily disabled. + */ + host_cross_mapped_mask = 0; for_each_set_bit(bit, (unsigned long *)&pmu->global_ctrl, X86_PMC_IDX_MAX) { pmc = intel_pmc_idx_to_pmc(pmu, bit); @@ -784,8 +793,9 @@ void intel_pmu_cross_mapped_check(struct kvm_pmu *pmu) */ hw_idx = pmc->perf_event->hw.idx; if (hw_idx != pmc->idx && hw_idx > -1) - pmu->host_cross_mapped_mask |= BIT_ULL(hw_idx); + host_cross_mapped_mask |= BIT_ULL(hw_idx); } + return host_cross_mapped_mask; } struct kvm_pmu_ops intel_pmu_ops __initdata = { diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 72e3943f3693..faf0071566ef 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -7131,12 +7131,14 @@ static void atomic_switch_perf_msrs(struct vcpu_vmx *vmx) struct perf_guest_switch_msr *msrs; struct kvm_pmu *pmu = vcpu_to_pmu(&vmx->vcpu); - pmu->host_cross_mapped_mask = 0; - if (pmu->pebs_enable & pmu->global_ctrl) - intel_pmu_cross_mapped_check(pmu); + struct x86_guest_pebs guest_pebs = { + .ds_area = pmu->ds_area, + .data_cfg = pmu->pebs_data_cfg, + .cross_mapped_mask = intel_pmu_get_cross_mapped_mask(pmu), + }; /* Note, nr_msrs may be garbage if perf_guest_get_msrs() returns NULL. */ - msrs = perf_guest_get_msrs(&nr_msrs, (void *)pmu); + msrs = perf_guest_get_msrs(&nr_msrs, &guest_pebs); if (!msrs) return; diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h index c2130d2c8e24..476119670d82 100644 --- a/arch/x86/kvm/vmx/vmx.h +++ b/arch/x86/kvm/vmx/vmx.h @@ -670,7 +670,7 @@ static inline bool intel_pmu_lbr_is_enabled(struct kvm_vcpu *vcpu) return !!vcpu_to_lbr_records(vcpu)->nr; } -void intel_pmu_cross_mapped_check(struct kvm_pmu *pmu); +u64 intel_pmu_get_cross_mapped_mask(struct kvm_pmu *pmu); int intel_pmu_create_guest_lbr_event(struct kvm_vcpu *vcpu); void vmx_passthrough_lbr_msrs(struct kvm_vcpu *vcpu); From patchwork Sat Sep 16 00:31:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140870 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1433812vqi; Fri, 15 Sep 2023 19:08:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEYx5F9aMNweMiigLzkWiqMMmzFF8115+sxK0LRNU0jKcnJr6T8oHLkTKgBvBmP7JXOCctR X-Received: by 2002:a17:90b:10f:b0:25e:a8ab:9157 with SMTP id p15-20020a17090b010f00b0025ea8ab9157mr2990759pjz.22.1694830094795; Fri, 15 Sep 2023 19:08:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694830094; cv=none; d=google.com; s=arc-20160816; b=MzKeRg4BA7pXAvnGI7LHLzQoiFJ0BTDZisY9I1CruNC6sv806qrYX2JZ78w4QKPe9w VEMay7G+Ey/tSNLZXV9gAGf0gRb/8wJ59RD7Sr8TgsRknGY2vTZSSt+pFXO2OjNu5jiZ EVn5DFay3J7LE6HBqQDP/cuMYEehxvQKhFxP4c17dwhFmF7NwC3X6wx+ln65BQFCPQcE pHXif42cjegrgwsquTSvksq8FotfMq6F8Ycg+gwm8MZluz8tqo8DxfoCIntDPUr29KUT mK0/krj4sK48GFMvizi9l2MmtK3+sSVzdEqzfr+ScVCyGciBul3IaFRF6aZVistZda2U mfGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=kZSgVl8Q+hmlGcu9E42B+6nCYbsSFCH4k+E/cwlLEa8=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=j3Ph21WhV2uKtnlg4076TR8ukukyKaelOgMxr+FQxV4EZGyFJvji5K+iIkAPBGC9Ko GD8/l4NxuthWReHzFmNIaJeVlZCddLTnpdnkjdU6rX+51jvMEOVAtn8y8tUk6X8hT3i9 Tnr5KSaWA1WmFfzEEuhlMFuTCmRZQtIr5z3KW9dQzKxhLDZXjHb40ObnAwByUlibyLGJ VTIgRilqvgoYk7gCfBU2kPs3H34ljUIbHNJEYg2Zg3aR36EkTSUM21jDCmRbNjjLMfhK /1fzReynaTJ1JqaAA2Vfp9w00MKJ6AuqChTtEBXIZz5vpbf+6MqunZxWwHZCZvm7pZae TlGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=bPv1OfhN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id t18-20020a17090ae51200b00274891d9605si2779989pjy.115.2023.09.15.19.08.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 19:08:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=bPv1OfhN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 3161283CEDD9; Fri, 15 Sep 2023 17:34:01 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239057AbjIPAdq (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238820AbjIPAdH (ORCPT ); Fri, 15 Sep 2023 20:33:07 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00A372D5B for ; Fri, 15 Sep 2023 17:32:03 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-59c12d31d04so12968117b3.1 for ; Fri, 15 Sep 2023 17:32:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824323; x=1695429123; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=kZSgVl8Q+hmlGcu9E42B+6nCYbsSFCH4k+E/cwlLEa8=; b=bPv1OfhNBPdU0sr0XJk80Rkg5EW4P1gXiI2In4zbIY41ZlOFQYLOnz6HKhuHcRDqZH h0A0HVwECGR4XrRSThDKFML+RxobkgH0LoQLA3xy2rM/pEa/0gq/BQLNU+NqcpWWg33x 8VIc1BFq9LgZv3B+EJD5EdoLiJ+4ulr0g9J6prUugANFkmRo+CDgD0zynjLtm1t24GY0 xkDMUF55KabBZNnKiaK/9uoOcHm5/3lbOPXGA3a98soE/v3dJuZksD5HaUcOjAC/JwVh mLCLc5erjSCqqYTXKP6YaxPdzN4vsytcejG5rjU2sdPLHjLw45d/3OhXWuB52uGzMTbJ D1sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824323; x=1695429123; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kZSgVl8Q+hmlGcu9E42B+6nCYbsSFCH4k+E/cwlLEa8=; b=R5tz4brO8fxIrA1DZpgxHWbE0BPj1R82dkm6shdEGbARY7pX2PXm+xrL/ZSIwV3jsg PeU9HY8cLa9UyM6AVDNdHjAg496HA83Zxmsq4EQbpSFaP8HdqHb6jiaOp4O6yGcovYuB sAeaKOg9NWKPbRK+nEkg5ZWtwP/6MbsDkwRH+Bcwn1N8/dcY0MFl7XMEzZP4nxj6YwxR TKm4KLnXr5wOf4B80gr6Jciv2abLRP/uGY5G4tXr4ynaHMcURAjWvoJ2ySTCeMvCoaE7 dBMj5ypkFnw6gVvechKmTFlcge4r2vjj708KlEDLoAw11+I1J1+eGXQfgYVn/Aij3EhM nCOg== X-Gm-Message-State: AOJu0YxqH1gWqYWEtKZ0gArt819rk2nrIk93wPoGtgJlib2lL9dCQIdk dnZJqIwqdq5hJT7IG4vsWnVpFzJ7NFI= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:b60c:0:b0:586:a58d:2e24 with SMTP id u12-20020a81b60c000000b00586a58d2e24mr95790ywh.5.1694824323076; Fri, 15 Sep 2023 17:32:03 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:13 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-22-seanjc@google.com> Subject: [PATCH 21/26] entry/kvm: Drop @vcpu param from arch_xfer_to_guest_mode_handle_work() From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:01 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777158161160670503 X-GMAIL-MSGID: 1777158161160670503 Drop the "struct kvm_vcpu" parameter from arch_xfer_to_guest_mode_handle_work() as a preparatory step towards removing the vCPU parameter from xfer_to_guest_mode_work() as well. Signed-off-by: Sean Christopherson --- include/linux/entry-kvm.h | 7 ++----- kernel/entry/kvm.c | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/include/linux/entry-kvm.h b/include/linux/entry-kvm.h index 6813171afccb..e7d90d06e566 100644 --- a/include/linux/entry-kvm.h +++ b/include/linux/entry-kvm.h @@ -25,18 +25,15 @@ struct kvm_vcpu; /** * arch_xfer_to_guest_mode_handle_work - Architecture specific xfer to guest * mode work handling function. - * @vcpu: Pointer to current's VCPU data * @ti_work: Cached TIF flags gathered in xfer_to_guest_mode_handle_work() * * Invoked from xfer_to_guest_mode_handle_work(). Defaults to NOOP. Can be * replaced by architecture specific code. */ -static inline int arch_xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu, - unsigned long ti_work); +static inline int arch_xfer_to_guest_mode_handle_work(unsigned long ti_work); #ifndef arch_xfer_to_guest_mode_work -static inline int arch_xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu, - unsigned long ti_work) +static inline int arch_xfer_to_guest_mode_handle_work(unsigned long ti_work) { return 0; } diff --git a/kernel/entry/kvm.c b/kernel/entry/kvm.c index 2e0f75bcb7fd..c2fc39824157 100644 --- a/kernel/entry/kvm.c +++ b/kernel/entry/kvm.c @@ -19,7 +19,7 @@ static int xfer_to_guest_mode_work(struct kvm_vcpu *vcpu, unsigned long ti_work) if (ti_work & _TIF_NOTIFY_RESUME) resume_user_mode_work(NULL); - ret = arch_xfer_to_guest_mode_handle_work(vcpu, ti_work); + ret = arch_xfer_to_guest_mode_handle_work(ti_work); if (ret) return ret; From patchwork Sat Sep 16 00:31:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140988 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1529085vqi; Sat, 16 Sep 2023 00:30:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGOVv3X37wi6h1o4UA2CaJm0CNEmiF3t+prwS58CtzKaJvgixtcfHTFAyW1V5m8+nMpkFCA X-Received: by 2002:a17:902:c106:b0:1c3:b3c7:d67f with SMTP id 6-20020a170902c10600b001c3b3c7d67fmr3456425pli.47.1694849424431; Sat, 16 Sep 2023 00:30:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694849424; cv=none; d=google.com; s=arc-20160816; b=qrYPISkSeM6JzGYH9XxobYHjVBZWySHW0e68HDvbHhL/lx/9oaHF6D1iMjW3tFMJL4 IZKiOXWNEjCQ6C6EWzlady2ZXGmkiFWjrwgucSOYAHzKvU870zFoTgCzluR0/Ro9i15E VMhdKDLJSFGHaKrlbrTV2CpEM3+MHVSXlqi+CDS7yHZAZSS3fjDDtwsK6J52mfol44DU fNEMiTZF8EbetttZe0pT0YqI/wg6Jj6N83yNbJUHc+0on8hvwW5qMZZrJkG/lsCjtqEi LAfxisVSpS07mpIv5cY0dktS+QH9WzGz4xNAVehmczUip3/QbTZ1JkYjrJJWcVZq9yYS ChiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=xxhu5mShS80K2/3vPmWMk/nseLaV4p5fitYU0fke5+k=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=yr8bTk6p0qS/qlrPuw6jFQz1MaNh6rbcIfxZZCdsdkphLUiYLTXVXS9OPrJvplRsj/ nE03xhBngE7noxhpBdHHw2HuFf9aCt15ILjK1rtkCIEGEZp65NKJnQkWYFGD7n4ubQ8J deP2+Q9/I2BwG1dEAasLwzNxx4nPPi8+9ZuQR0QMJKVxYk7x+nfCmEVGwuWudGjpPKJh Y0d4KvomxKCQ5CvOjQVkIyyNJZPzNXpLUC7znwkO0IynjruYIhOw7hgBWnp6VIi3an3S h4FKuu+5fkuNlH2T7oqU3OAwH/nFy1sZacWBYo9FC9wicBo8mQ0GEtpfhQfeDPjLCnJ8 yrkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=I0twIbH0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id n16-20020a170902e55000b001b8ae9058d3si4872697plf.516.2023.09.16.00.30.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 00:30:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=I0twIbH0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id B1B13808BD1B; Fri, 15 Sep 2023 17:35:41 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239171AbjIPAfG (ORCPT + 28 others); Fri, 15 Sep 2023 20:35:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238889AbjIPAeY (ORCPT ); Fri, 15 Sep 2023 20:34:24 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D063319A5 for ; Fri, 15 Sep 2023 17:32:05 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-59beea5ce93so44687467b3.0 for ; Fri, 15 Sep 2023 17:32:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824325; x=1695429125; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=xxhu5mShS80K2/3vPmWMk/nseLaV4p5fitYU0fke5+k=; b=I0twIbH0JWDnve96saXAKVyhd09K4ELG8M0LyS636cxkXlCdGwfc8cMH/2napwy6L6 kwxP8eYF66+YeOwkMvIAfRGMqc+Idqqzof6dupRSi7LsejOODbUYP43KPeQzeITwE5pu Rq442nYS09zx/bwnt9NFvBkQ7bJ8b8rZhUNM99sGT3cE1Vmu0I6QA0ngcoF/0AFqt/3g abOA5+iG7SRrFJKspHTWyb0K7zSMVzmVb0QhxUtsK7vEsDBABuS9q7jnsYrmVP9PTar4 aa3kYKL8Rxgh2n+rtckXA9FfTVW3KksoNht9J/SSkTQlGfbIUf4Quy9U9kfsgwP4Zc14 fgBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824325; x=1695429125; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xxhu5mShS80K2/3vPmWMk/nseLaV4p5fitYU0fke5+k=; b=h5Eoc7U/cyOkDSHv8uO3lTN7SWTPykh+YfygUz9fGLT3ylUhZy8FHwhIx7hDDSo/3D zBDShhg5sehDvSIyhwJ+vR1S0Ft/lUzSxNkuPabwTE3l3u0Rvb9la1wkerAP4DYWeio1 SW/LEzVOqtrZM8lwQSZyIaaLCDWLJOi3da/a6xs8vnvrbeFK2ZI1NovD+7zb6+/nx49e VESgSgTS3a8jGNnWjE8KlmDIUlmerYa7KV0ubuJ/Le4IkirZRPGnuI/kJJ84PD60M+3y +uH5D2leW3hVF5T+/XFS5hRt2yTG5+L+bsbhNbr5WOBCgHJOxmgBhxOg30mF0sgQnQrU 1Jmg== X-Gm-Message-State: AOJu0YwV6ct/fVbfTw1Djpvn74LJbqkVkSg1zVIMTNgaZ/wcHXzdzAc1 g/pMN1K88AVlJG/PLt/hO9hI71PJNvY= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:690c:2f05:b0:589:a533:405b with SMTP id ev5-20020a05690c2f0500b00589a533405bmr205315ywb.3.1694824325035; Fri, 15 Sep 2023 17:32:05 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:14 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-23-seanjc@google.com> Subject: [PATCH 22/26] entry/kvm: KVM: Move KVM details related to signal/-EINTR into KVM proper From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:35:41 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777178430103862011 X-GMAIL-MSGID: 1777178430103862011 Move KVM's morphing of pending signals into exits to userspace into KVM proper, and drop the @vcpu param from xfer_to_guest_mode_handle_work(). How KVM responds to -EINTR is a detail that really belongs in KVM itself, and removing the non-KVM call to kvm_handle_signal_exit() will allow hiding said API and the definition of "struct kvm_vcpu" from the kernel. Alternatively, entry/kvm.c could be treated as part of KVM, i.e. be given access to KVM internals, but that's not obviously better than having KVM react to -EINTR (though it's not obviously worse either). Signed-off-by: Sean Christopherson --- arch/arm64/kvm/arm.c | 3 +-- arch/riscv/kvm/vcpu.c | 2 +- arch/x86/kvm/vmx/vmx.c | 1 - arch/x86/kvm/x86.c | 3 +-- include/linux/entry-kvm.h | 3 +-- include/linux/kvm_host.h | 13 ++++++++++++- kernel/entry/kvm.c | 11 ++++------- 7 files changed, 20 insertions(+), 16 deletions(-) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 6480628197b4..641df091e46b 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -6,7 +6,6 @@ #include #include -#include #include #include #include @@ -929,7 +928,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) /* * Check conditions before entering the guest */ - ret = xfer_to_guest_mode_handle_work(vcpu); + ret = kvm_xfer_to_guest_mode_handle_work(vcpu); if (!ret) ret = 1; diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index 82229db1ce73..c313f4e90e70 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -667,7 +667,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) run->exit_reason = KVM_EXIT_UNKNOWN; while (ret > 0) { /* Check conditions before entering the guest */ - ret = xfer_to_guest_mode_handle_work(vcpu); + ret = kvm_xfer_to_guest_mode_handle_work(vcpu); if (ret) continue; ret = 1; diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index faf0071566ef..43b87ad5fde8 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 6c9c81e82e65..aab095f89d9e 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -59,7 +59,6 @@ #include #include #include -#include #include #include @@ -10987,7 +10986,7 @@ static int vcpu_run(struct kvm_vcpu *vcpu) if (__xfer_to_guest_mode_work_pending()) { kvm_vcpu_srcu_read_unlock(vcpu); - r = xfer_to_guest_mode_handle_work(vcpu); + r = kvm_xfer_to_guest_mode_handle_work(vcpu); kvm_vcpu_srcu_read_lock(vcpu); if (r) return r; diff --git a/include/linux/entry-kvm.h b/include/linux/entry-kvm.h index e7d90d06e566..e235a91d28fc 100644 --- a/include/linux/entry-kvm.h +++ b/include/linux/entry-kvm.h @@ -42,11 +42,10 @@ static inline int arch_xfer_to_guest_mode_handle_work(unsigned long ti_work) /** * xfer_to_guest_mode_handle_work - Check and handle pending work which needs * to be handled before going to guest mode - * @vcpu: Pointer to current's VCPU data * * Returns: 0 or an error code */ -int xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu); +int xfer_to_guest_mode_handle_work(void); /** * xfer_to_guest_mode_prepare - Perform last minute preparation work that diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index fb6c6109fdca..d520d6801070 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -2,7 +2,7 @@ #ifndef __KVM_HOST_H #define __KVM_HOST_H - +#include #include #include #include @@ -2293,6 +2293,17 @@ static inline void kvm_handle_signal_exit(struct kvm_vcpu *vcpu) vcpu->run->exit_reason = KVM_EXIT_INTR; vcpu->stat.signal_exits++; } + +static inline int kvm_xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu) +{ + int r = xfer_to_guest_mode_handle_work(); + + if (r) { + WARN_ON_ONCE(r != -EINTR); + kvm_handle_signal_exit(vcpu); + } + return r; +} #endif /* CONFIG_KVM_XFER_TO_GUEST_WORK */ /* diff --git a/kernel/entry/kvm.c b/kernel/entry/kvm.c index c2fc39824157..872617468b4a 100644 --- a/kernel/entry/kvm.c +++ b/kernel/entry/kvm.c @@ -1,17 +1,14 @@ // SPDX-License-Identifier: GPL-2.0 #include -#include -static int xfer_to_guest_mode_work(struct kvm_vcpu *vcpu, unsigned long ti_work) +static int xfer_to_guest_mode_work(unsigned long ti_work) { do { int ret; - if (ti_work & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL)) { - kvm_handle_signal_exit(vcpu); + if (ti_work & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL)) return -EINTR; - } if (ti_work & _TIF_NEED_RESCHED) schedule(); @@ -28,7 +25,7 @@ static int xfer_to_guest_mode_work(struct kvm_vcpu *vcpu, unsigned long ti_work) return 0; } -int xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu) +int xfer_to_guest_mode_handle_work(void) { unsigned long ti_work; @@ -44,6 +41,6 @@ int xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu) if (!(ti_work & XFER_TO_GUEST_MODE_WORK)) return 0; - return xfer_to_guest_mode_work(vcpu, ti_work); + return xfer_to_guest_mode_work(ti_work); } EXPORT_SYMBOL_GPL(xfer_to_guest_mode_handle_work); From patchwork Sat Sep 16 00:31:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140915 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1459027vqi; Fri, 15 Sep 2023 20:39:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IENnA1Ua6RyNx7lyxOpOrefDMo/ZlmuxcQhFLfN1nzfGDulzZ+LfD5KRlZQ+zJQbBjXPmEe X-Received: by 2002:a17:903:41c4:b0:1bb:d280:5e0b with SMTP id u4-20020a17090341c400b001bbd2805e0bmr3974300ple.18.1694835547536; Fri, 15 Sep 2023 20:39:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694835547; cv=none; d=google.com; s=arc-20160816; b=opLnc7ig6EC20CS/y6xt+0QwWpshEEBZYZjUHCqNKbVRSEgaJ8Mp8vOe45eLAP7nbT FJt07BM12Pcj1HNesX8ReU8oLvXS+VuP4SVALdjeBhlCpzy3nXIyvRmyIsMY8haer3RP 6xUc3ISpBfIzcHEA9WyW0d7yv6DH57OL4HlavL2NJk3Z/SAvgG2lcEUKuWIPuyNzTJlj sr3pgA2GsJTRvRcl88URQOR1kHdzbxoJk8gsy+EyzMhs9PYP80FCefboxi6YhP99PE8R sWTgInSuTL1vEub+E7ZUsnbyQhwr/tHI/XyHHljayNdC+ZHe35+LjjAFwCUghB300L4Y jYAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=g87cF9aMFFIIQhALNgZyjDSNT/0Iy7aXKR5wCizfY2Q=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=sElTGjje7lW4OZxcfhtpD1gkffU7m1jG9K00J9+O2DH3Fugz5qXYaXTBNMmmOpST4T lD1clG/0+7gTl4ezBqntnXGfRMgoGmlCpYjoiZwIH2xggJolIiQ58/l9LxvCtTjcTklE UurLDeC5ruRZmdtkWJVpaJnvTLAWi9M2UtwKTzxPYjPbhwq/EsHgV54dyyjlHIRbJlkW AViur0eURCPVRbEtote836H86NKyX7Yshnl80boNA0F6C2UCpiIjTLQYYr3VMOMEkiDF ALZV1TrO5dtOi9QWjXeFzIIghZJfC4NouUwmGm16bCJ5xAjwOgUFYhnjMkXKRNKXnfYN c1XA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=giSg+gCV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id n8-20020a170902e54800b001b9ea0f0e25si4636172plf.607.2023.09.15.20.39.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 20:39:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=giSg+gCV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 9736583C9F92; Fri, 15 Sep 2023 17:33:35 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238939AbjIPAdM (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238789AbjIPAcp (ORCPT ); Fri, 15 Sep 2023 20:32:45 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A36A5FB for ; Fri, 15 Sep 2023 17:32:07 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d7b957fd276so3276377276.0 for ; Fri, 15 Sep 2023 17:32:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824327; x=1695429127; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=g87cF9aMFFIIQhALNgZyjDSNT/0Iy7aXKR5wCizfY2Q=; b=giSg+gCVVOrEc5FageiFHVw+1BxDfcFg66J/ZK03jIn36YcQJk+0YdoenOOm/R/oor a6/ngPIASQipZXnEE77CELpl9diiITyIIh4TnRIqTGgT4YIhNXP+iHw6YPv1LKJnK6Ei qL6X04A6yM7kcWetXaCIFFt+0VQXyr1zOy3CDM7BpsbM3FwLgTbKTAqqO6AVkdGggrvv MRnZNzzkxCyLUheux/fXhwHwIV1fehB4bA4KbUdMZF+F/wKTeL3zVEvQEmA/8u3GJ84b gyDZvo481bvF5xePOkCFKztqAczCgieO4PAWhkCniU7jMdWbkJP6atgKTXgoAe1wmSud 2a+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824327; x=1695429127; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=g87cF9aMFFIIQhALNgZyjDSNT/0Iy7aXKR5wCizfY2Q=; b=OA6lKqVEX+71dAoh1HRHJTBCZ9M45QEibDqULnEXi1/Vu2M8Hpa3WPJUSUPc8V17QV diqMdObsyPIoAwzpVmztBOf5hvtczvIn+dBf5mLx75SRozyrSRPX2A1BRVW/7afPWc3C wBz7fSVKfn6gXvkSo2QK1U0YeTgfIgZjuuZWU3V7O5LqfiI74xNnw7WzUp0zmYanc86g lNa0Y+O3V5j0QzfptbDCxgqfs7O/aK0nc3JFcfYDvOyWYtgI5mYugWwxJOzf0iQUyrTt h0rsNW7abvJFDKwRQVea2JikRZehQZV1ZVo3pSD/8ujZEAeuBHt/rAPZCft5g4Cq1XrP 7ZEQ== X-Gm-Message-State: AOJu0YxsU22b8vO8cxgF71TESaBTOn/klsejvTjxhFLrB8sZCfohmMvk MggvI/NSWqcg7RjICydLRXnjN1xXrj4= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:d28b:0:b0:d0c:c83b:94ed with SMTP id j133-20020a25d28b000000b00d0cc83b94edmr70330ybg.10.1694824326852; Fri, 15 Sep 2023 17:32:06 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:15 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-24-seanjc@google.com> Subject: [PATCH 23/26] KVM: arm64: Move and consolidate "public" functions in asm/kvm_host.h From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:33:35 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777163879207697140 X-GMAIL-MSGID: 1777163879207697140 Move a variety of "public" symbols in arm64's kvm_host.h, i.e. symbols and functions that are used by non-KVM code, towards the top of the header. This will allow hiding the "private" code in kvm_host.h, i.e. the stuff that is intended to be KVM-internal, with a minimal amount of #ifdeffery. Signed-off-by: Sean Christopherson --- arch/arm64/include/asm/kvm_host.h | 48 ++++++++++++++----------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 90cfbf420545..89b40c34f0af 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -67,10 +67,32 @@ enum kvm_mode { }; #ifdef CONFIG_KVM enum kvm_mode kvm_get_mode(void); + +extern phys_addr_t hyp_mem_base; +extern phys_addr_t hyp_mem_size; +void __init kvm_hyp_reserve(void); + +void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr); +void kvm_clr_pmu_events(u32 clr); +bool kvm_set_pmuserenr(u64 val); #else static inline enum kvm_mode kvm_get_mode(void) { return KVM_MODE_NONE; }; + +static inline void kvm_hyp_reserve(void) { } + +static inline void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr) {} +static inline void kvm_clr_pmu_events(u32 clr) {} +static inline bool kvm_set_pmuserenr(u64 val) +{ + return false; +} #endif +static inline bool kvm_pmu_counter_deferred(struct perf_event_attr *attr) +{ + return (!has_vhe() && attr->exclude_host); +} + DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use); extern unsigned int __ro_after_init kvm_sve_max_vl; @@ -1086,28 +1108,10 @@ void kvm_arch_vcpu_ctxsync_fp(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_put_fp(struct kvm_vcpu *vcpu); void kvm_vcpu_unshare_task_fp(struct kvm_vcpu *vcpu); -static inline bool kvm_pmu_counter_deferred(struct perf_event_attr *attr) -{ - return (!has_vhe() && attr->exclude_host); -} - /* Flags for host debug state */ void kvm_arch_vcpu_load_debug_state_flags(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_put_debug_state_flags(struct kvm_vcpu *vcpu); -#ifdef CONFIG_KVM -void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr); -void kvm_clr_pmu_events(u32 clr); -bool kvm_set_pmuserenr(u64 val); -#else -static inline void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr) {} -static inline void kvm_clr_pmu_events(u32 clr) {} -static inline bool kvm_set_pmuserenr(u64 val) -{ - return false; -} -#endif - void kvm_vcpu_load_sysregs_vhe(struct kvm_vcpu *vcpu); void kvm_vcpu_put_sysregs_vhe(struct kvm_vcpu *vcpu); @@ -1142,14 +1146,6 @@ bool kvm_arm_vcpu_is_finalized(struct kvm_vcpu *vcpu); (test_bit(KVM_ARCH_FLAG_HAS_RAN_ONCE, &(kvm)->arch.flags)) int kvm_trng_call(struct kvm_vcpu *vcpu); -#ifdef CONFIG_KVM -extern phys_addr_t hyp_mem_base; -extern phys_addr_t hyp_mem_size; -void __init kvm_hyp_reserve(void); -#else -static inline void kvm_hyp_reserve(void) { } -#endif - void kvm_arm_vcpu_power_off(struct kvm_vcpu *vcpu); bool kvm_arm_vcpu_stopped(struct kvm_vcpu *vcpu); From patchwork Sat Sep 16 00:31:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 140958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1493299vqi; Fri, 15 Sep 2023 22:42:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGpukENYu+yhu215n+wF73L/WiVdkgVZcX5TgwJJfailHMAmBRVlzFhohe+K/IdpHf9Oa6T X-Received: by 2002:a54:4e85:0:b0:3a7:4914:23ce with SMTP id c5-20020a544e85000000b003a7491423cemr3320501oiy.18.1694842939696; Fri, 15 Sep 2023 22:42:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694842939; cv=none; d=google.com; s=arc-20160816; b=FfzjQ38YVUWFQJ8rHt7vQOizVnHj4YZ9RokCFrs2O+Ax9scoJUR3sjfzYalZREPtUK 1sfFzDgEeyLhaWrHFcWynB95W/I/t5tMtSWHU2AXMfxYJqDYvmNuQgQ89BfNLDGJe3ig zO/zNnx5s6bGVR5RvGrJX3gGJ4FRy/E4wmILJKCkC3spyiDrIdFGcUu0tOJownRujp9o 2U9Ylt+WbSNfN7XozrB5RT9NmU+zCRY6AcdjMcRWCFO1hoE2H+6On3ugluiTWz+DvzsE kx7HtlwtKtXKG83eSWxunj+x21LUz+xKdWigCBWjDTUXHROH3Lzlb50BUaGvEmyLWTTc 5oBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=0VtgUtus3LRehL4neqp1OYPW/02VDjf+LHA0REetHQw=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=WDqB0Ur7eu/nkMlvnonXY2rvd4BoIdHe8wV0RZb1QsAxwWAdvKW24l5dDlkg8+UjxF JhYzi5BMJUg254BBGZmZ3lteuhhXGOc5oWvPtLXkYlyKHsw9gVFGZKEXgTGUZffIAign LIIuVE1mX+Ef6awc4KCf6Xss3LrbsHLaQSqeO/WcPzGHXzZOfGSwJIYXgSP1BUxIw9OV ZAk8DK/5P3ZsS9DyZZ2+aLg0ruMBQobjaEQGzO67oRqOv2XMEQtY4I7e5nStTFuiPIkj LTJpo1T2vxOPIy8Z1IydKGu6h830FRVTLm8yX9wonQ1dcHcsPiXTchQO+GiYTEcxt2Kg 2nPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=4AI9NYwO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id w3-20020a63f503000000b0055b43079640si4339873pgh.707.2023.09.15.22.42.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 22:42:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=4AI9NYwO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id E2B1482CD632; Fri, 15 Sep 2023 17:34:19 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239051AbjIPAdm (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57186 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238576AbjIPAcu (ORCPT ); Fri, 15 Sep 2023 20:32:50 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B66132715 for ; Fri, 15 Sep 2023 17:32:09 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-59bf252a83aso27490207b3.3 for ; Fri, 15 Sep 2023 17:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824329; x=1695429129; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=0VtgUtus3LRehL4neqp1OYPW/02VDjf+LHA0REetHQw=; b=4AI9NYwOs7Qxw+F4NZFoKEvkF/ZhJhsoOqPm3pP+SBcEGD4pphMfgvr2oo2Sdm3PGX JfCT6509S/I71oH8ban7uIF5Td8ynYv4sED2o/8WRpjFyyJkWaj14lYJRPq+LiB0L/hv PJkh+NgRmVQME5EKzrxILu5YSGUY8j9n2/yjotBC6TLm7nXXUuL7ZE+vPdBE7KvfuMUR 8Kz2aXpwhnjFkqDktr4zIpXAVG+YentMA68hD+Kk/flY5i4QXqwc360B3xdG3OY8Q60z wnOrzJWg7kW8JHZLv4A2zNYDQxxYdoKzYA4qQWREXcEWHnXvb1aQqABFI5LPbgTy1ypd thSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824329; x=1695429129; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0VtgUtus3LRehL4neqp1OYPW/02VDjf+LHA0REetHQw=; b=i6bIFKWuYfjrlKd0pXZfEijP6GPg4YYNYAmwACdfATMCmpq8fmzGUh1oSe0muGMQUh IPnmLlg/PKv2+cGDQehNaVJ+ZhAFA9pVt460Wtx/oLsvM8W6qnMS4kA6lP6QzoaifwzP 6rkqvP+Yq4cp89APCK3PEgHplGU30lFINuQrYE5sTB/4+ZiRkBgrVKlB2dV+u+sG5pIf WUVGqVvYtj5tRYCMOtCeEKy9vPEu1/KobebXQe8wDKT0SV4axRwaPkGVQHY4/5pkhjvI fLjRltCEJ/Mj+xIonUz5RCmMG39eDs126Iw3akGXynpdJv6uh5T1yvLnVrrsyFzco0V2 5DHg== X-Gm-Message-State: AOJu0YwnTAeAoHhVTVdW6ycsmCEoyhtsLA/MVTzCOLu8IU+ndcs2leRQ RrrVMU3vaanIbpBa3Z1Jp6hGZJv31LI= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:b620:0:b0:58c:a9b4:a64c with SMTP id u32-20020a81b620000000b0058ca9b4a64cmr86672ywh.1.1694824328926; Fri, 15 Sep 2023 17:32:08 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:16 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-25-seanjc@google.com> Subject: [PATCH 24/26] powerpc/xics: Move declaration of xics_wake_cpu() out of kvm_ppc.h From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:20 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777171630114360614 X-GMAIL-MSGID: 1777171630114360614 xics_wake_cpu() is provided by core PPC code, not by KVM. Move its declaration out of kvm_ppc.h and into xics.h. Signed-off-by: Sean Christopherson --- arch/powerpc/include/asm/kvm_ppc.h | 2 -- arch/powerpc/include/asm/xics.h | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h index b4da8514af43..72fee202d3ec 100644 --- a/arch/powerpc/include/asm/kvm_ppc.h +++ b/arch/powerpc/include/asm/kvm_ppc.h @@ -1072,6 +1072,4 @@ static inline ulong kvmppc_get_ea_indexed(struct kvm_vcpu *vcpu, int ra, int rb) return ea; } -extern void xics_wake_cpu(int cpu); - #endif /* __POWERPC_KVM_PPC_H__ */ diff --git a/arch/powerpc/include/asm/xics.h b/arch/powerpc/include/asm/xics.h index 89090485bec1..17a45c022bd9 100644 --- a/arch/powerpc/include/asm/xics.h +++ b/arch/powerpc/include/asm/xics.h @@ -32,6 +32,9 @@ extern int icp_native_init(void); extern void icp_native_flush_interrupt(void); extern void icp_native_cause_ipi_rm(int cpu); +#ifdef CONFIG_SMP +extern void xics_wake_cpu(int cpu); +#endif #else static inline int icp_native_init(void) { return -ENODEV; } #endif From patchwork Sat Sep 16 00:31:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 141021 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1579917vqi; Sat, 16 Sep 2023 03:15:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGI6fk3P2tb8cKh56L4dnk9f8HUlaVP/UuNZQ7lua0yx31QnII8MzUp/UHLFmrT63HTG4QL X-Received: by 2002:a05:6e02:100c:b0:34c:a532:615e with SMTP id n12-20020a056e02100c00b0034ca532615emr5026545ilj.17.1694859301273; Sat, 16 Sep 2023 03:15:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694859301; cv=none; d=google.com; s=arc-20160816; b=xYo16a2CzXYzR1ZHK9/MArG9xWysYKV8QyrJISLmIjRm5QS3kHvwEEn8EYtCzbYBVD QvXTLUffOuJAFugqp+hjbNFF45PBqhZBZ8/Mph8my0Fmlx6mSW3XXm8dfm8b1EXerAS7 WhpihTuzWzHsxUEiFePCdaCfBh1Wgbafpsn2u0hlNgqg3lpwIfSs5znCNLNS1At3qpsX 01A13hTcohkXpf54VNTRFPT348ofeBpQ40x/b+xyl+2UQfB/fcvW/SNq8/Nqxhm0bqah e/Ae8glSReYKC1tQ91sdGSqyMoPj6BI4E9fHeRd4wSk2/ee2WYwWExIXLisbqMaY1+le 8VYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=XQKt9ip81eNaA/ioPgL3dH9e9vr3TzqljSeTBinzyVo=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=pASL/1ZVcmwt4gF2+Y9H6ZMN/zC2CwJ7uhmNx7evTZ5wzkdblg8Tm/XxgPEaZ5Wm/e WaIsLL9SJnFKuhrgiFDAxmRtrqQQZ/gbhVMoud7SK/j9M7LyY1G4I90GjS/5aoTP90VJ E3PUPl/uAu8BKPCIiNvYgG08v7m1IS9zWXbV+QiyI+yYBm8WEmEHaZXkYfb0U8UDNN6T y1JhCy8IwyltS5Grc3zUK9NJgX2E31UmiYjChq5UtUugKFPHmhR8+AO0025EaGl9z1vn f3dn8YZsaqdLrhvdVBB5fTaBOGrUjaYXdraN7uioq19HNHN4L874emWWkThnF0YlBlQc CYGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=qTUH+rPJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id u186-20020a6385c3000000b00573f7d0944dsi4618555pgd.326.2023.09.16.03.15.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 03:15:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=qTUH+rPJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 7A3C3808BD0F; Fri, 15 Sep 2023 17:34:47 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239065AbjIPAdt (ORCPT + 28 others); Fri, 15 Sep 2023 20:33:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238641AbjIPAcu (ORCPT ); Fri, 15 Sep 2023 20:32:50 -0400 Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com [IPv6:2607:f8b0:4864:20::1049]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89A752719 for ; Fri, 15 Sep 2023 17:32:11 -0700 (PDT) Received: by mail-pj1-x1049.google.com with SMTP id 98e67ed59e1d1-2746ce771f7so1992530a91.1 for ; Fri, 15 Sep 2023 17:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824331; x=1695429131; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=XQKt9ip81eNaA/ioPgL3dH9e9vr3TzqljSeTBinzyVo=; b=qTUH+rPJ82ZzGmakmrKXjz+AdBPQXQHVHn6pul2lIrDcJ2uf+VXwGcYkUofQ0rO4MM pDaNCycrLUR6KKJJpbeDTUqp7TrlKNc8TdiFyj4KRMWzwvK9OmIqrlf+HzQ78n9hKIgf bMdwI3W5Ot4qzWt++LoyITxe7gg7PDoJOCqXXvbThFljY9XBvq0R/aY1QmRJ4IwArxzR C1mV+8lHw2GslON+5XJkFFZO3rc1tNyKcZJ4uruFJhs2HFIuOSZAn0GPiSqDhThNRtlj 3ZPuHFakDoMGUSBcOVxmdrDVEz6Y2g0O4gRAT2PidTN/+OTazANYWtmlSNT6mSMcwCqm Pcxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824331; x=1695429131; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XQKt9ip81eNaA/ioPgL3dH9e9vr3TzqljSeTBinzyVo=; b=IRlkGudgafV2qRvAftK0u8cXa6WCqW24PZNWDuCdY4Yu7heCntpv4mTeZXRif/3n7P Aq42hoyXLhKdn4bo5eQhvJ/bqqAgwNFa3XkSr6gdsjE7u5fsaM27HI5ZxFgVsFQNXroh YtwgR8FNq7igCfMB8Xffy4eKKYetJPAWMXuuT+CEHnXa8uyavQPqQsG5QUrUOi0yefQQ iUrNtrchyv/qykB2h3clW8Jt7rf3+unWKN5NsXLZ2hyu2nPad57ZgWy7gaHDAuxA8LG7 UtLCw50uunH4o+eIax04leQe7wPfqC+LgNPCoRQDX81kF39vBZ9vDSu/RZa1KozV4IiH YYsQ== X-Gm-Message-State: AOJu0YwmByntE0kur9K40QpqlqcLkNiwtG/HlnUp6QLsX/Ix78O6g5hL sCEB2kf97Re7SGmxlnEThldgnLchkiM= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:d4c7:b0:1bc:5182:1de2 with SMTP id o7-20020a170902d4c700b001bc51821de2mr81466plg.1.1694824330917; Fri, 15 Sep 2023 17:32:10 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:17 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-26-seanjc@google.com> Subject: [PATCH 25/26] KVM: PPC: Rearrange code in kvm_ppc.h to isolate "public" information From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:47 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777188786553652726 X-GMAIL-MSGID: 1777188786553652726 Move all declarations and definitions in kvm_ppc.h that are consumed by things other than KVM to the top of the file. This will allow wrapping the parts of kvm_ppc.h that are intended only for KVM, i.e. are intended to be "private" to KVM, with an #ifdef to hide KVM's internal details from the kernel at-large. Signed-off-by: Sean Christopherson --- arch/powerpc/include/asm/kvm_ppc.h | 302 +++++++++++++++-------------- 1 file changed, 153 insertions(+), 149 deletions(-) diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h index 72fee202d3ec..ead2ad892ebc 100644 --- a/arch/powerpc/include/asm/kvm_ppc.h +++ b/arch/powerpc/include/asm/kvm_ppc.h @@ -30,6 +30,159 @@ #endif #include +struct openpic; + +#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE +extern void kvm_cma_reserve(void) __init; +static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr) +{ + paca_ptrs[cpu]->kvm_hstate.xics_phys = (void __iomem *)addr; +} + +static inline void kvmppc_set_xive_tima(int cpu, + unsigned long phys_addr, + void __iomem *virt_addr) +{ + paca_ptrs[cpu]->kvm_hstate.xive_tima_phys = (void __iomem *)phys_addr; + paca_ptrs[cpu]->kvm_hstate.xive_tima_virt = virt_addr; +} + +static inline u32 kvmppc_get_xics_latch(void) +{ + u32 xirr; + + xirr = get_paca()->kvm_hstate.saved_xirr; + get_paca()->kvm_hstate.saved_xirr = 0; + return xirr; +} + +/* + * To avoid the need to unnecessarily exit fully to the host kernel, an IPI to + * a CPU thread that's running/napping inside of a guest is by default regarded + * as a request to wake the CPU (if needed) and continue execution within the + * guest, potentially to process new state like externally-generated + * interrupts or IPIs sent from within the guest itself (e.g. H_PROD/H_IPI). + * + * To force an exit to the host kernel, kvmppc_set_host_ipi() must be called + * prior to issuing the IPI to set the corresponding 'host_ipi' flag in the + * target CPU's PACA. To avoid unnecessary exits to the host, this flag should + * be immediately cleared via kvmppc_clear_host_ipi() by the IPI handler on + * the receiving side prior to processing the IPI work. + * + * NOTE: + * + * We currently issue an smp_mb() at the beginning of kvmppc_set_host_ipi(). + * This is to guard against sequences such as the following: + * + * CPU + * X: smp_muxed_ipi_set_message(): + * X: smp_mb() + * X: message[RESCHEDULE] = 1 + * X: doorbell_global_ipi(42): + * X: kvmppc_set_host_ipi(42) + * X: ppc_msgsnd_sync()/smp_mb() + * X: ppc_msgsnd() -> 42 + * 42: doorbell_exception(): // from CPU X + * 42: ppc_msgsync() + * 105: smp_muxed_ipi_set_message(): + * 105: smb_mb() + * // STORE DEFERRED DUE TO RE-ORDERING + * --105: message[CALL_FUNCTION] = 1 + * | 105: doorbell_global_ipi(42): + * | 105: kvmppc_set_host_ipi(42) + * | 42: kvmppc_clear_host_ipi(42) + * | 42: smp_ipi_demux_relaxed() + * | 42: // returns to executing guest + * | // RE-ORDERED STORE COMPLETES + * ->105: message[CALL_FUNCTION] = 1 + * 105: ppc_msgsnd_sync()/smp_mb() + * 105: ppc_msgsnd() -> 42 + * 42: local_paca->kvm_hstate.host_ipi == 0 // IPI ignored + * 105: // hangs waiting on 42 to process messages/call_single_queue + * + * We also issue an smp_mb() at the end of kvmppc_clear_host_ipi(). This is + * to guard against sequences such as the following (as well as to create + * a read-side pairing with the barrier in kvmppc_set_host_ipi()): + * + * CPU + * X: smp_muxed_ipi_set_message(): + * X: smp_mb() + * X: message[RESCHEDULE] = 1 + * X: doorbell_global_ipi(42): + * X: kvmppc_set_host_ipi(42) + * X: ppc_msgsnd_sync()/smp_mb() + * X: ppc_msgsnd() -> 42 + * 42: doorbell_exception(): // from CPU X + * 42: ppc_msgsync() + * // STORE DEFERRED DUE TO RE-ORDERING + * -- 42: kvmppc_clear_host_ipi(42) + * | 42: smp_ipi_demux_relaxed() + * | 105: smp_muxed_ipi_set_message(): + * | 105: smb_mb() + * | 105: message[CALL_FUNCTION] = 1 + * | 105: doorbell_global_ipi(42): + * | 105: kvmppc_set_host_ipi(42) + * | // RE-ORDERED STORE COMPLETES + * -> 42: kvmppc_clear_host_ipi(42) + * 42: // returns to executing guest + * 105: ppc_msgsnd_sync()/smp_mb() + * 105: ppc_msgsnd() -> 42 + * 42: local_paca->kvm_hstate.host_ipi == 0 // IPI ignored + * 105: // hangs waiting on 42 to process messages/call_single_queue + */ +static inline void kvmppc_set_host_ipi(int cpu) +{ + /* + * order stores of IPI messages vs. setting of host_ipi flag + * + * pairs with the barrier in kvmppc_clear_host_ipi() + */ + smp_mb(); + WRITE_ONCE(paca_ptrs[cpu]->kvm_hstate.host_ipi, 1); +} + +static inline void kvmppc_clear_host_ipi(int cpu) +{ + WRITE_ONCE(paca_ptrs[cpu]->kvm_hstate.host_ipi, 0); + /* + * order clearing of host_ipi flag vs. processing of IPI messages + * + * pairs with the barrier in kvmppc_set_host_ipi() + */ + smp_mb(); +} + +extern void kvmppc_xics_ipi_action(void); + +extern void kvm_hv_vm_activated(void); +extern void kvm_hv_vm_deactivated(void); +extern bool kvm_hv_mode_active(void); +#else +static inline void __init kvm_cma_reserve(void) +{} + +static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr) +{} + +static inline void kvmppc_set_xive_tima(int cpu, + unsigned long phys_addr, + void __iomem *virt_addr) +{} + +static inline u32 kvmppc_get_xics_latch(void) +{ + return 0; +} + +static inline void kvmppc_set_host_ipi(int cpu) +{} + +static inline void kvmppc_clear_host_ipi(int cpu) +{} + +static inline bool kvm_hv_mode_active(void) { return false; } +#endif + /* * KVMPPC_INST_SW_BREAKPOINT is debug Instruction * for supporting software breakpoint. @@ -443,166 +596,18 @@ void kvmppc_set_pid(struct kvm_vcpu *vcpu, u32 pid); struct openpic; #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE -extern void kvm_cma_reserve(void) __init; -static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr) -{ - paca_ptrs[cpu]->kvm_hstate.xics_phys = (void __iomem *)addr; -} - -static inline void kvmppc_set_xive_tima(int cpu, - unsigned long phys_addr, - void __iomem *virt_addr) -{ - paca_ptrs[cpu]->kvm_hstate.xive_tima_phys = (void __iomem *)phys_addr; - paca_ptrs[cpu]->kvm_hstate.xive_tima_virt = virt_addr; -} - -static inline u32 kvmppc_get_xics_latch(void) -{ - u32 xirr; - - xirr = get_paca()->kvm_hstate.saved_xirr; - get_paca()->kvm_hstate.saved_xirr = 0; - return xirr; -} - -/* - * To avoid the need to unnecessarily exit fully to the host kernel, an IPI to - * a CPU thread that's running/napping inside of a guest is by default regarded - * as a request to wake the CPU (if needed) and continue execution within the - * guest, potentially to process new state like externally-generated - * interrupts or IPIs sent from within the guest itself (e.g. H_PROD/H_IPI). - * - * To force an exit to the host kernel, kvmppc_set_host_ipi() must be called - * prior to issuing the IPI to set the corresponding 'host_ipi' flag in the - * target CPU's PACA. To avoid unnecessary exits to the host, this flag should - * be immediately cleared via kvmppc_clear_host_ipi() by the IPI handler on - * the receiving side prior to processing the IPI work. - * - * NOTE: - * - * We currently issue an smp_mb() at the beginning of kvmppc_set_host_ipi(). - * This is to guard against sequences such as the following: - * - * CPU - * X: smp_muxed_ipi_set_message(): - * X: smp_mb() - * X: message[RESCHEDULE] = 1 - * X: doorbell_global_ipi(42): - * X: kvmppc_set_host_ipi(42) - * X: ppc_msgsnd_sync()/smp_mb() - * X: ppc_msgsnd() -> 42 - * 42: doorbell_exception(): // from CPU X - * 42: ppc_msgsync() - * 105: smp_muxed_ipi_set_message(): - * 105: smb_mb() - * // STORE DEFERRED DUE TO RE-ORDERING - * --105: message[CALL_FUNCTION] = 1 - * | 105: doorbell_global_ipi(42): - * | 105: kvmppc_set_host_ipi(42) - * | 42: kvmppc_clear_host_ipi(42) - * | 42: smp_ipi_demux_relaxed() - * | 42: // returns to executing guest - * | // RE-ORDERED STORE COMPLETES - * ->105: message[CALL_FUNCTION] = 1 - * 105: ppc_msgsnd_sync()/smp_mb() - * 105: ppc_msgsnd() -> 42 - * 42: local_paca->kvm_hstate.host_ipi == 0 // IPI ignored - * 105: // hangs waiting on 42 to process messages/call_single_queue - * - * We also issue an smp_mb() at the end of kvmppc_clear_host_ipi(). This is - * to guard against sequences such as the following (as well as to create - * a read-side pairing with the barrier in kvmppc_set_host_ipi()): - * - * CPU - * X: smp_muxed_ipi_set_message(): - * X: smp_mb() - * X: message[RESCHEDULE] = 1 - * X: doorbell_global_ipi(42): - * X: kvmppc_set_host_ipi(42) - * X: ppc_msgsnd_sync()/smp_mb() - * X: ppc_msgsnd() -> 42 - * 42: doorbell_exception(): // from CPU X - * 42: ppc_msgsync() - * // STORE DEFERRED DUE TO RE-ORDERING - * -- 42: kvmppc_clear_host_ipi(42) - * | 42: smp_ipi_demux_relaxed() - * | 105: smp_muxed_ipi_set_message(): - * | 105: smb_mb() - * | 105: message[CALL_FUNCTION] = 1 - * | 105: doorbell_global_ipi(42): - * | 105: kvmppc_set_host_ipi(42) - * | // RE-ORDERED STORE COMPLETES - * -> 42: kvmppc_clear_host_ipi(42) - * 42: // returns to executing guest - * 105: ppc_msgsnd_sync()/smp_mb() - * 105: ppc_msgsnd() -> 42 - * 42: local_paca->kvm_hstate.host_ipi == 0 // IPI ignored - * 105: // hangs waiting on 42 to process messages/call_single_queue - */ -static inline void kvmppc_set_host_ipi(int cpu) -{ - /* - * order stores of IPI messages vs. setting of host_ipi flag - * - * pairs with the barrier in kvmppc_clear_host_ipi() - */ - smp_mb(); - WRITE_ONCE(paca_ptrs[cpu]->kvm_hstate.host_ipi, 1); -} - -static inline void kvmppc_clear_host_ipi(int cpu) -{ - WRITE_ONCE(paca_ptrs[cpu]->kvm_hstate.host_ipi, 0); - /* - * order clearing of host_ipi flag vs. processing of IPI messages - * - * pairs with the barrier in kvmppc_set_host_ipi() - */ - smp_mb(); -} - static inline void kvmppc_fast_vcpu_kick(struct kvm_vcpu *vcpu) { vcpu->kvm->arch.kvm_ops->fast_vcpu_kick(vcpu); } -extern void kvm_hv_vm_activated(void); -extern void kvm_hv_vm_deactivated(void); -extern bool kvm_hv_mode_active(void); - extern void kvmppc_check_need_tlb_flush(struct kvm *kvm, int pcpu); #else -static inline void __init kvm_cma_reserve(void) -{} - -static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr) -{} - -static inline void kvmppc_set_xive_tima(int cpu, - unsigned long phys_addr, - void __iomem *virt_addr) -{} - -static inline u32 kvmppc_get_xics_latch(void) -{ - return 0; -} - -static inline void kvmppc_set_host_ipi(int cpu) -{} - -static inline void kvmppc_clear_host_ipi(int cpu) -{} - static inline void kvmppc_fast_vcpu_kick(struct kvm_vcpu *vcpu) { kvm_vcpu_kick(vcpu); } - -static inline bool kvm_hv_mode_active(void) { return false; } - #endif #ifdef CONFIG_PPC_PSERIES @@ -642,7 +647,6 @@ extern u64 kvmppc_xics_get_icp(struct kvm_vcpu *vcpu); extern int kvmppc_xics_set_icp(struct kvm_vcpu *vcpu, u64 icpval); extern int kvmppc_xics_connect_vcpu(struct kvm_device *dev, struct kvm_vcpu *vcpu, u32 cpu); -extern void kvmppc_xics_ipi_action(void); extern void kvmppc_xics_set_mapped(struct kvm *kvm, unsigned long guest_irq, unsigned long host_irq); extern void kvmppc_xics_clr_mapped(struct kvm *kvm, unsigned long guest_irq, From patchwork Sat Sep 16 00:31:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 141002 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1561160vqi; Sat, 16 Sep 2023 02:12:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGx3jevwpgITYws1POd8w0B8xB5pY9GKWtqtxStaq2t2+3GX3BDNDRuBQqdS3tDG4t088NA X-Received: by 2002:a05:6870:5a4:b0:1b0:43b6:e13b with SMTP id m36-20020a05687005a400b001b043b6e13bmr5045714oap.54.1694855576825; Sat, 16 Sep 2023 02:12:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694855576; cv=none; d=google.com; s=arc-20160816; b=RUZP+0pgSZkYq3ycpFNZwOFYJAon87932NxBTTS9QMvE/fQazYfVtadL+gbuD33YBh YWs9waDbrQq7gzwfQWc09CzMMn/INIZfWhAxw7XZF2AQ/9/tlgjm1/xvRwZAFMcGfqTA HX/yIzorI7XmgEmKj9Phb3kTzHnEA9GtjWENWCocEtFzUSfYHhBVelhjlmLD8KAO9gCe 2GRc0o6GqXx3rphrkpFpeAy5ECz++/V62kuPhlBgXMTStApGARW+7xFUNDpSoHvy42BG 5+ybrPliu3pwU+VI36JzohNhj/1IEyG8aoVYl4qGq+hzVDRJyGu/UUfDgy98qXTnLRTc Zyxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:from:subject :message-id:references:mime-version:in-reply-to:date:reply-to :dkim-signature; bh=KxFx3Fi7YuxuIuavK7ybnF2fqrq2iHl6ALoFtRauezE=; fh=kXSkXFacTVTlVHq0XnHvR0iN61knZqi7sPJIGv3JAWo=; b=Mi7hjXYg/pkaCOnAv+5VF7+lk+LjrJdVQSLP4qRnH5RxLx8fB4w4UGJktsKN2zdxs+ xyzUwgyVkdCdysTh/ME/6Zzlp+O32HoPtojILV3AiBXtaDFBlGi6/CRlSqZpwazpk1K/ U5FdEFzuZcwgampSVavSLeS80mn9br5t8nr/PwN8oC0nzOvudRUvVciVGACZ02i7wGY+ IW07aKHmLTk6USxmbreHwJpGlVCa2jx9KqgC8O8K13BP0owaA9Vg4eHlV+sUOoA+xxq+ SxPTchakv8d7sRkhVM3zdoyygKKdK1/DMcWkHF833rbpbHg84dMUL+nS+eatnFu7YBAu DFzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=OfieX1BX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id nl10-20020a17090b384a00b002684bc84493si4986609pjb.131.2023.09.16.02.12.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 02:12:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=OfieX1BX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 479A483AAAEF; Fri, 15 Sep 2023 17:34:30 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238738AbjIPAeA (ORCPT + 28 others); Fri, 15 Sep 2023 20:34:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238840AbjIPAd2 (ORCPT ); Fri, 15 Sep 2023 20:33:28 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFD3F272E for ; Fri, 15 Sep 2023 17:32:13 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-5924b2aac52so36088207b3.2 for ; Fri, 15 Sep 2023 17:32:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694824333; x=1695429133; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:from:to:cc:subject:date :message-id:reply-to; bh=KxFx3Fi7YuxuIuavK7ybnF2fqrq2iHl6ALoFtRauezE=; b=OfieX1BX4uPi/vqSvyvLZyvZWObdBkSIk9Qz86oxtssjuvH9RBVVbUZmuzTP/s5PWn ZA1kNW5fuSXMs0fnB0NHVqckncfqGGvLuBkUwpe7KEy7OJUyAGOYO0eviseW9M8mHfJQ YELiQTIDsHQ42ve24rG70CbLLnYSE5C/zpK/ARzdaKITxl3uDIgasMwHnYA7BF2A6IFt mNbku2/NytV/8tnsMa2zpz775MgwqehIpHfnzvormxXSZKDmVSgqDQvJQzNf//9OdK+X aZqMqokhEoP+ojB36c8Lq5IZJgVKiPBqy2xWGYftQTk5xyVLfoWMwfmPCHre5rhGO5Ci ax5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694824333; x=1695429133; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KxFx3Fi7YuxuIuavK7ybnF2fqrq2iHl6ALoFtRauezE=; b=Qm1BrIP5LlPksJOqVW3RWDG4uTp314OcOxS0ce4zNqjdRHTFgyZFUUl1WJW+hkXUuz fgxDVBBh1NtX34jIQ3HWN5OkVuBa7pZBKdw3rcps2CgtgfmdWCkIqtk+CYagZl4HruX4 TS1yHHpyJipfhbtUMuZ6Osxx6BUCTdVNZd7qEgqupCD5/ZiH/7cVlRmvjtOFSIIutY28 qbk2DZeejWr/BuJQl9/uwzlZoSfApvHiS7T4va8gqatiRKcCTOuoJJe6fLdSdLb0t43d Oc0mA3QnlP8EPZv1otJLBHD/eQK5ECQv4BCFxNnMENZvVz33YlvvciBeZor4wyVr6mFn Vwnw== X-Gm-Message-State: AOJu0YzhzSTUv4ZTSZoqMHpx+PJNzC28VA2kuMj/PJtnMU2AYsSwFfZZ ga7WkE+XBqBxb3It3tfmefqevh+751U= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:aa24:0:b0:d81:43c7:61ed with SMTP id s33-20020a25aa24000000b00d8143c761edmr78301ybi.5.1694824333108; Fri, 15 Sep 2023 17:32:13 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 15 Sep 2023 17:31:18 -0700 In-Reply-To: <20230916003118.2540661-1-seanjc@google.com> Mime-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230916003118.2540661-27-seanjc@google.com> Subject: [PATCH 26/26] KVM: Hide KVM internal data structures and values from kernel at-large From: Sean Christopherson To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:34:30 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777184881231686835 X-GMAIL-MSGID: 1777184881231686835 Wrap all KVM internal APIs, data structures, values, etc. in public headers with "#ifdef __KVM__" to effectively hide KVM's internal details from other subsystems and the kernel at-large. Hiding KVM details for all architectures will, in the very distant future, allow loading a new (or old) KVM module without needing to rebuild and reboot the entire kernel, or to even allow loading and running multiple versions of KVM simultaneously on a single host. To allow different instances of KVM modules to freely modify KVM data structures, enums, #defines, etc., e.g. the struct kvm_vcpu layout, there must be exactly zero dereferences of KVM-defined structures/values in non-KVM code (excepting code for architectures that don't support such shenanigans). Any such references could lead to latent bugs, e.g. as the kernel would think a KVM structure has layout X, but in reality the current incarnation of KVM uses layout Y. In KVM x86, all remaining non-KVM references to KVM details have been now eliminated. To harden KVM against new references being introduced, hide KVM's details to ensure that KVM doesn’t create a de facto ABI with the rest of the kernel. Use #ifdeffery to hide KVM details as doing so requires, by far, the least amount of churn and impact on architectures that freely share select KVM details with the rest of the kernel, e.g. s390, ARM64 and PPC, have significant usage of KVM-defined APIs, structures, values, etc. E.g. attempting to extract the "private" chunks into dedicated KVM-internal headers would require massive churn, even on x86, and it's not obvious the end result would be a net positive (all attempts at moving code around failed long before getting anywhere near compiling cleanly). Another (bad) alternative that would be relative churn-free would be to move the KVM headers to a dedicated KVM-specific path while maintaining the generic layout, e.g. something like virt/kvm/include/linux. That would allow x86 to simply omit the KVM-specific include path. But that would require modifying the global include path, i.e. would make KVM a really special snowflake and set the awful precedent that it's "ok" to add subsystem specific directories to the global include path. Grant exceptions to asm-offsets.c as needed, and to s390's VFIO AP driver. Creating a KVM-specific asm-offsets, as was done for x86, adds no value (x86 did so to avoid exposing vendor specific headers) and doesn't create much of a "slippery slope" risk. s390's VFIO AP driver on the other hand is simply too intertwined with KVM to realistically treat it as anything other than KVM code, despite it living in crypto drivers, e.g. the driver has some rather crazy lock ordering rules between the device and KVM. Add a static assert that __KVM__ is defined in trace/events/kvm.h, as that is effectively a private KVM header that just happens to live in a public path. Shuffle a few PPC includes and an s390 declaration as needed, and opportunistically include kvm_host.h in trace/events.kvm.h instead of relying on the parent to provide the right includes. Cc: Anish Ghulati Cc: Venkatesh Srinivas Cc: Andrew Thornton Signed-off-by: Sean Christopherson --- arch/arm64/include/asm/kvm_emulate.h | 3 +++ arch/arm64/include/asm/kvm_host.h | 2 ++ arch/arm64/include/asm/kvm_mmu.h | 4 ++++ arch/arm64/kernel/asm-offsets.c | 2 ++ arch/arm64/kvm/hyp/Makefile | 2 +- arch/arm64/kvm/hyp/nvhe/Makefile | 3 ++- arch/arm64/kvm/hyp/vhe/Makefile | 2 +- arch/mips/include/asm/kvm_host.h | 2 ++ arch/mips/kernel/asm-offsets.c | 2 ++ arch/powerpc/include/asm/kvm_book3s.h | 3 +++ arch/powerpc/include/asm/kvm_book3s_64.h | 2 ++ arch/powerpc/include/asm/kvm_booke.h | 4 ++++ arch/powerpc/include/asm/kvm_host.h | 7 ++++--- arch/powerpc/include/asm/kvm_ppc.h | 2 ++ arch/powerpc/kernel/asm-offsets.c | 1 + arch/riscv/include/asm/kvm_host.h | 3 +++ arch/riscv/kernel/asm-offsets.c | 1 + arch/s390/include/asm/kvm_host.h | 7 +++++-- arch/s390/kernel/asm-offsets.c | 1 + arch/x86/include/asm/kvm_host.h | 3 +++ drivers/s390/crypto/vfio_ap_drv.c | 1 + drivers/s390/crypto/vfio_ap_ops.c | 2 ++ include/linux/kvm_host.h | 4 ++++ include/linux/kvm_types.h | 3 +++ include/trace/events/kvm.h | 5 +++++ virt/kvm/Makefile.kvm | 2 +- 26 files changed, 64 insertions(+), 9 deletions(-) diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h index 3d6725ff0bf6..5861fa00763b 100644 --- a/arch/arm64/include/asm/kvm_emulate.h +++ b/arch/arm64/include/asm/kvm_emulate.h @@ -21,6 +21,8 @@ #include #include +#ifdef __KVM__ + #define CURRENT_EL_SP_EL0_VECTOR 0x0 #define CURRENT_EL_SP_ELx_VECTOR 0x200 #define LOWER_EL_AArch64_VECTOR 0x400 @@ -615,4 +617,5 @@ static __always_inline void kvm_reset_cptr_el2(struct kvm_vcpu *vcpu) kvm_write_cptr_el2(val); } +#endif /* __KVM__ */ #endif /* __ARM64_KVM_EMULATE_H__ */ diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 89b40c34f0af..ba4065db5d5c 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -93,6 +93,7 @@ static inline bool kvm_pmu_counter_deferred(struct perf_event_attr *attr) return (!has_vhe() && attr->exclude_host); } +#ifdef __KVM__ DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use); extern unsigned int __ro_after_init kvm_sve_max_vl; @@ -1149,4 +1150,5 @@ int kvm_trng_call(struct kvm_vcpu *vcpu); void kvm_arm_vcpu_power_off(struct kvm_vcpu *vcpu); bool kvm_arm_vcpu_stopped(struct kvm_vcpu *vcpu); +#endif /* __KVM__ */ #endif /* __ARM64_KVM_HOST_H__ */ diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h index 96a80e8f6226..9d8c92cda3b6 100644 --- a/arch/arm64/include/asm/kvm_mmu.h +++ b/arch/arm64/include/asm/kvm_mmu.h @@ -125,6 +125,8 @@ void kvm_update_va_mask(struct alt_instr *alt, void kvm_compute_layout(void); void kvm_apply_hyp_relocations(void); +#ifdef __KVM__ + #define __hyp_pa(x) (((phys_addr_t)(x)) + hyp_physvirt_offset) static __always_inline unsigned long __kern_hyp_va(unsigned long v) @@ -314,5 +316,7 @@ static inline struct kvm *kvm_s2_mmu_to_kvm(struct kvm_s2_mmu *mmu) { return container_of(mmu->arch, struct kvm, arch); } + +#endif /* __KVM__ */ #endif /* __ASSEMBLY__ */ #endif /* __ARM64_KVM_MMU_H__ */ diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c index 5ff1942b04fc..dc02ea9a002c 100644 --- a/arch/arm64/kernel/asm-offsets.c +++ b/arch/arm64/kernel/asm-offsets.c @@ -7,6 +7,8 @@ * Copyright (C) 2012 ARM Ltd. */ +#define __KVM__ + #include #include #include diff --git a/arch/arm64/kvm/hyp/Makefile b/arch/arm64/kvm/hyp/Makefile index 4ce8c86967b5..99982b75671a 100644 --- a/arch/arm64/kvm/hyp/Makefile +++ b/arch/arm64/kvm/hyp/Makefile @@ -5,6 +5,6 @@ incdir := $(srctree)/$(src)/include subdir-asflags-y := -I$(incdir) -I$(srctree)/arch/arm64/kvm -subdir-ccflags-y := -I$(incdir) -I$(srctree)/arch/arm64/kvm +subdir-ccflags-y := -I$(incdir) -I$(srctree)/arch/arm64/kvm -D__KVM__ obj-$(CONFIG_KVM) += vhe/ nvhe/ pgtable.o diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile index 2250253a6429..b5f4750fa16e 100644 --- a/arch/arm64/kvm/hyp/nvhe/Makefile +++ b/arch/arm64/kvm/hyp/nvhe/Makefile @@ -9,7 +9,8 @@ asflags-y := -D__KVM_NVHE_HYPERVISOR__ -D__DISABLE_EXPORTS # there is no way to execute them and any such MMIO access from nVHE KVM # will explode instantly (Words of Marc Zyngier). So introduce a generic flag # __DISABLE_TRACE_MMIO__ to disable MMIO tracing for nVHE KVM. -ccflags-y := -D__KVM_NVHE_HYPERVISOR__ -D__DISABLE_EXPORTS -D__DISABLE_TRACE_MMIO__ +ccflags-y := -D__KVM_NVHE_HYPERVISOR__ -D__DISABLE_EXPORTS \ + -D__DISABLE_TRACE_MMIO__ -D__KVM__ ccflags-y += -fno-stack-protector \ -DDISABLE_BRANCH_PROFILING \ $(DISABLE_STACKLEAK_PLUGIN) diff --git a/arch/arm64/kvm/hyp/vhe/Makefile b/arch/arm64/kvm/hyp/vhe/Makefile index 3b9e5464b5b3..54cd3c444102 100644 --- a/arch/arm64/kvm/hyp/vhe/Makefile +++ b/arch/arm64/kvm/hyp/vhe/Makefile @@ -4,7 +4,7 @@ # asflags-y := -D__KVM_VHE_HYPERVISOR__ -ccflags-y := -D__KVM_VHE_HYPERVISOR__ +ccflags-y := -D__KVM_VHE_HYPERVISOR__ -D__KVM__ obj-y := timer-sr.o sysreg-sr.o debug-sr.o switch.o tlb.o obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \ diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h index f8f63d0aa399..6fd7c998d7b9 100644 --- a/arch/mips/include/asm/kvm_host.h +++ b/arch/mips/include/asm/kvm_host.h @@ -25,6 +25,7 @@ #include #include +#ifdef __KVM__ /* MIPS KVM register ids */ #define MIPS_CP0_32(_R, _S) \ (KVM_REG_MIPS_CP0 | KVM_REG_SIZE_U32 | (8 * (_R) + (_S))) @@ -897,4 +898,5 @@ static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) {} #define __KVM_HAVE_ARCH_FLUSH_REMOTE_TLBS +#endif /* __KVM__ */ #endif /* __MIPS_KVM_HOST_H__ */ diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c index d1b11f66f748..8a233bddfea0 100644 --- a/arch/mips/kernel/asm-offsets.c +++ b/arch/mips/kernel/asm-offsets.c @@ -9,6 +9,8 @@ * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com * Copyright (C) 2000 MIPS Technologies, Inc. */ +#define __KVM__ + #include #include #include diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h index bbf5e2c5fe09..8880bc7c8a32 100644 --- a/arch/powerpc/include/asm/kvm_book3s.h +++ b/arch/powerpc/include/asm/kvm_book3s.h @@ -13,6 +13,8 @@ #include #include +#ifdef __KVM__ + struct kvmppc_bat { u64 raw; u32 bepi; @@ -483,4 +485,5 @@ static inline u32 kvmppc_pack_vcpu_id(struct kvm *kvm, u32 id) return packed_id; } +#endif /* __KVM__ */ #endif /* __ASM_KVM_BOOK3S_H__ */ diff --git a/arch/powerpc/include/asm/kvm_book3s_64.h b/arch/powerpc/include/asm/kvm_book3s_64.h index d49065af08e9..a807716ccae6 100644 --- a/arch/powerpc/include/asm/kvm_book3s_64.h +++ b/arch/powerpc/include/asm/kvm_book3s_64.h @@ -16,6 +16,7 @@ #include #include +#ifdef __KVM__ /* * Structure for a nested guest, that is, for a guest that is managed by * one of our guests. @@ -679,4 +680,5 @@ extern pte_t *find_kvm_nested_guest_pte(struct kvm *kvm, unsigned long lpid, #endif /* CONFIG_KVM_BOOK3S_HV_POSSIBLE */ +#endif /* __KVM__ */ #endif /* __ASM_KVM_BOOK3S_64_H__ */ diff --git a/arch/powerpc/include/asm/kvm_booke.h b/arch/powerpc/include/asm/kvm_booke.h index 0c3401b2e19e..85ebc0314539 100644 --- a/arch/powerpc/include/asm/kvm_booke.h +++ b/arch/powerpc/include/asm/kvm_booke.h @@ -12,6 +12,8 @@ #include #include +#ifdef __KVM__ + /* * Number of available lpids. Only the low-order 6 bits of LPID rgister are * implemented on e500mc+ cores. @@ -105,4 +107,6 @@ static inline bool kvmppc_supports_magic_page(struct kvm_vcpu *vcpu) return false; #endif } + +#endif /* __KVM__ */ #endif /* __ASM_KVM_BOOKE_H__ */ diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index 14ee0dece853..1e7a008ce085 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -25,13 +26,14 @@ #include #include #include +#include +#ifdef __KVM__ #define __KVM_HAVE_ARCH_VCPU_DEBUGFS #define KVM_MAX_VCPUS NR_CPUS #define KVM_MAX_VCORES NR_CPUS -#include #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE #include /* for MAX_SMT_THREADS */ @@ -60,8 +62,6 @@ #define KVM_REQ_EPR_EXIT KVM_ARCH_REQ(1) #define KVM_REQ_PENDING_TIMER KVM_ARCH_REQ(2) -#include - #define KVM_ARCH_WANT_MMU_NOTIFIER #define HPTEG_CACHE_NUM (1 << 15) @@ -883,4 +883,5 @@ static inline void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu) {} static inline void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu) {} static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) {} +#endif /* __KVM__ */ #endif /* __POWERPC_KVM_HOST_H__ */ diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h index ead2ad892ebc..03d9998d0111 100644 --- a/arch/powerpc/include/asm/kvm_ppc.h +++ b/arch/powerpc/include/asm/kvm_ppc.h @@ -183,6 +183,7 @@ static inline void kvmppc_clear_host_ipi(int cpu) static inline bool kvm_hv_mode_active(void) { return false; } #endif +#ifdef __KVM__ /* * KVMPPC_INST_SW_BREAKPOINT is debug Instruction * for supporting software breakpoint. @@ -1076,4 +1077,5 @@ static inline ulong kvmppc_get_ea_indexed(struct kvm_vcpu *vcpu, int ra, int rb) return ea; } +#endif /* __KVM__ */ #endif /* __POWERPC_KVM_PPC_H__ */ diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index 9f14d95b8b32..872d44971536 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c @@ -8,6 +8,7 @@ * compile this file to assembler, and then extract the * #defines from the assembly-language output. */ +#define __KVM__ #include #include diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h index 1ebf20dfbaa6..a81ae8c4b739 100644 --- a/arch/riscv/include/asm/kvm_host.h +++ b/arch/riscv/include/asm/kvm_host.h @@ -22,6 +22,8 @@ #include #include +#ifdef __KVM__ + #define KVM_MAX_VCPUS 1024 #define KVM_HALT_POLL_NS_DEFAULT 500000 @@ -354,4 +356,5 @@ bool kvm_riscv_vcpu_has_interrupts(struct kvm_vcpu *vcpu, u64 mask); void kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu); void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu); +#endif /* __KVM__ */ #endif /* __RISCV_KVM_HOST_H__ */ diff --git a/arch/riscv/kernel/asm-offsets.c b/arch/riscv/kernel/asm-offsets.c index d6a75aac1d27..476263e78f39 100644 --- a/arch/riscv/kernel/asm-offsets.c +++ b/arch/riscv/kernel/asm-offsets.c @@ -5,6 +5,7 @@ */ #define GENERATING_ASM_OFFSETS +#define __KVM__ #include #include diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h index 427f9528a7b6..9153420bb5ac 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h @@ -380,6 +380,10 @@ struct sie_page { __u8 reserved700[2304]; /* 0x0700 */ }; +extern char sie_exit; + +#ifdef __KVM__ + struct kvm_vcpu_stat { struct kvm_vcpu_stat_generic generic; u64 exit_userspace; @@ -1028,8 +1032,6 @@ static inline int sie64a(struct kvm_s390_sie_block *sie_block, u64 *rsa) return __sie64a(virt_to_phys(sie_block), sie_block, rsa); } -extern char sie_exit; - bool kvm_s390_pv_is_protected(struct kvm *kvm); bool kvm_s390_pv_cpu_is_protected(struct kvm_vcpu *vcpu); @@ -1049,6 +1051,7 @@ static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) {} #define __KVM_HAVE_ARCH_VM_FREE void kvm_arch_free_vm(struct kvm *kvm); +#endif /* __KVM__ */ struct zpci_kvm_hook { int (*kvm_register)(void *opaque, struct kvm *kvm); diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index fa5f6885c74a..22ed673871ee 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c @@ -6,6 +6,7 @@ */ #define ASM_OFFSETS_C +#define __KVM__ #include #include diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 29db870dbaae..eda45a937666 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -37,6 +37,8 @@ #include #include +#ifdef __KVM__ + #define __KVM_HAVE_ARCH_VCPU_DEBUGFS #define KVM_MAX_VCPUS 1024 @@ -2229,4 +2231,5 @@ int memslot_rmap_alloc(struct kvm_memory_slot *slot, unsigned long npages); */ #define KVM_EXIT_HYPERCALL_MBZ GENMASK_ULL(31, 1) +#endif /* __KVM__ */ #endif /* _ASM_X86_KVM_HOST_H */ diff --git a/drivers/s390/crypto/vfio_ap_drv.c b/drivers/s390/crypto/vfio_ap_drv.c index a5ab03e42ff1..55744f0f4758 100644 --- a/drivers/s390/crypto/vfio_ap_drv.c +++ b/drivers/s390/crypto/vfio_ap_drv.c @@ -7,6 +7,7 @@ * Author(s): Tony Krowiak * Pierre Morel */ +#define __KVM__ #include #include diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index 4db538a55192..0dd98f42e9d5 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -8,6 +8,8 @@ * Halil Pasic * Pierre Morel */ +#define __KVM__ + #include #include #include diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index d520d6801070..f0afe549c0d6 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -45,6 +45,8 @@ #include #include +#ifdef __KVM__ + #ifndef KVM_MAX_VCPU_IDS #define KVM_MAX_VCPU_IDS KVM_MAX_VCPUS #endif @@ -2329,4 +2331,6 @@ static inline void kvm_account_pgtable_pages(void *virt, int nr) /* Max number of entries allowed for each kvm dirty ring */ #define KVM_DIRTY_RING_MAX_ENTRIES 65536 +#endif /* __KVM__ */ + #endif diff --git a/include/linux/kvm_types.h b/include/linux/kvm_types.h index 6f4737d5046a..4804bce2a655 100644 --- a/include/linux/kvm_types.h +++ b/include/linux/kvm_types.h @@ -48,6 +48,8 @@ typedef u64 hfn_t; typedef hfn_t kvm_pfn_t; +#ifdef __KVM__ + enum pfn_cache_usage { KVM_GUEST_USES_PFN = BIT(0), KVM_HOST_USES_PFN = BIT(1), @@ -123,4 +125,5 @@ struct kvm_vcpu_stat_generic { #define KVM_STATS_NAME_SIZE 48 +#endif /* __KVM__ */ #endif /* __KVM_TYPES_H__ */ diff --git a/include/trace/events/kvm.h b/include/trace/events/kvm.h index 3bd31ea23fee..aee85527bb74 100644 --- a/include/trace/events/kvm.h +++ b/include/trace/events/kvm.h @@ -2,8 +2,13 @@ #if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_KVM_MAIN_H +#include #include +#ifndef __KVM__ +static_assert(0, "Do not include trace/events/kvm.h from non-KVM code"); +#endif + #undef TRACE_SYSTEM #define TRACE_SYSTEM kvm diff --git a/virt/kvm/Makefile.kvm b/virt/kvm/Makefile.kvm index e85079ad245d..4de10d447ef3 100644 --- a/virt/kvm/Makefile.kvm +++ b/virt/kvm/Makefile.kvm @@ -3,7 +3,7 @@ # Makefile for Kernel-based Virtual Machine module # -ccflags-y += -I$(srctree)/$(src) +ccflags-y += -I$(srctree)/$(src) -D__KVM__ KVM ?= ../../../virt/kvm