Received: by 2002:a05:6512:2355:0:0:0:0 with SMTP id p21csp206018lfu; Wed, 30 Mar 2022 20:56:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJytSkGiNMpHiiMIMtw/Yf4hRr6JNISORvieIQyotDB83uM0SZKHEzGFbnQCXOITIA1wrACL X-Received: by 2002:a63:ae48:0:b0:386:2e2a:c16a with SMTP id e8-20020a63ae48000000b003862e2ac16amr8927866pgp.59.1648698962958; Wed, 30 Mar 2022 20:56:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648698962; cv=none; d=google.com; s=arc-20160816; b=qhrJ1tEBRvp/UJB1nk4f8sJU6Xb98QArtG5widHJcEge6GyfR8eVov6NyAw7I4+cv6 vrQB//Qcs52NZnd40XK54ZZ+947Rvpir4ZfBmrqUIsrlE1qihdUv0IHLNm0IPwacEZBd aUN4Y1Ygu1ykK3/WKqEei+d4xNDMMDBeRko01J5aW8dMHW2utEkfSjQxxpzN3kH0JPFQ nYKbJWChxPocVac/Ta5URhx0mKaQbfIjXhyXHbnZq1xe82pvyS4OJjn3cz8cW0GBHCLy pBnx+XBam5vHeeJxjsFCBsCvURwIFRtcBNXlv98UYOm4lmWoYLTjld/q6ogbh94uQUH2 jmSw== 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:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=uGhal7P1JB6IhrBSHUiVBKjKdptSWrnYmKPeEqz/Pvs=; b=x1Ttc4O/PL/hMqGugUPHLvGQnpAExX4x8z920jautH6W1yiCmqQiCyCuUYZDUPaBV8 PEsC2KiVdy2/qp6AXpqI16SwtZbUCYucSkY6pC17h2XXyhtaA+32Cj01poAVcKjrpsrp 8yR+PIcr+Wz8Ps725k8jz7JaYADumuYFJ2NGxtIycItVr5aQQqz0rhH6TJt0K+k4B71/ cUbSRh+3aVymyNzEMPvKw49Dim39NxWmFb+OPiCFFtZhcAMnPVyxhMQ4we8CX+DbwhsE M0Mm6KmyNtyiz3tQZK+lXqI83ZQ5JUPTZRxxn8+UqCQufj3DMHdmGuHpdxAj6iMLHc41 kJLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="V/bXiybw"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id m14-20020a056a00080e00b004fabbccb1c3si24578442pfk.60.2022.03.30.20.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Mar 2022 20:56:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="V/bXiybw"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 210D2165B9D; Wed, 30 Mar 2022 20:07:41 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349465AbiC3Rs6 (ORCPT + 99 others); Wed, 30 Mar 2022 13:48:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57756 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349632AbiC3RsY (ORCPT ); Wed, 30 Mar 2022 13:48:24 -0400 Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com [IPv6:2607:f8b0:4864:20::44a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EA5D5136 for ; Wed, 30 Mar 2022 10:46:39 -0700 (PDT) Received: by mail-pf1-x44a.google.com with SMTP id x68-20020a623147000000b004fd8d1ed04cso2803114pfx.23 for ; Wed, 30 Mar 2022 10:46:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=uGhal7P1JB6IhrBSHUiVBKjKdptSWrnYmKPeEqz/Pvs=; b=V/bXiybwP6fjl0zOnLiMboN4XAJPfEDymrD4bRqEEmgWd2ITlcImSPxzS4wlpj42fg C+oq2yg4HqlE3nl23ASsjQTFtWoi+xuaKI5CtVkYaOoEuN4CU+m6YpvB9NNPRQwIbtW8 tw6pjbANyD9fgWWo+4HYmaBacgWrucaW5lSX+YdwSdqYWA5ks/CE9Ro1INooC7vZZlOA cjnNTFgR8xHJ7b+k8UfRvSX1hIkFvMXlgjAGXsmvNyOIs/x8yKDx6C+sUBwLeHUCwjek ybp3TaC51/+gy8QhlV+RXmQ3T60RmcpMnG3x+DuVKQbWrVGrazy6+gP42mW8ZX5Sn8bl Kt2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=uGhal7P1JB6IhrBSHUiVBKjKdptSWrnYmKPeEqz/Pvs=; b=hZ7pk7xKKHWM4Zg3djaQirbglyYZHDo5PgAezFJ5FN5rvnnZqkj3mn7HoC9PwADjiZ o3hnG4ELpIPtHukMv6cog98ZmECqYV9oQSshdW2ZPnX6qcj/ZWjRvSWwKuDRHrep1+zt SsZuWr1853W+2VCmnZ4zjqfiFfn5KekzLtcWg2XQgtYfpw8SbSna9z+dgl5LIenl9QiG eOqlZXzOUqrHu2G9y10PB2kITeO0YVGqI8pikqudheFKxht8Mv8SiFuuxzusVAqGzViu +pLXPY7/ziddHwtD29dHfTkxen1Ayeuc3qmi5aK13a9zP/q8HVGV23b1Wnni/RF6KHTY hdrA== X-Gm-Message-State: AOAM530euaq9fq4/p7qRHtiBdjEWTGUMZhTJZGCyT8S0ZS/iWvYd/kMK NEgr2p1UpDg9iQYxHYnrSsWd1T5lGV6UFW3dvJgsumVS6oueSIznYki9cGXEfCQJn8SKbsEqbJf 0N7ZRBzdtPPvOLSYEw5IbqpDmE4PV42Y6Hdn3avW+PFpMRjC3BqrG8jv3vacwZOpFBh27Y/Ku X-Received: from bgardon.sea.corp.google.com ([2620:15c:100:202:7c53:ec2f:bd26:b69c]) (user=bgardon job=sendgmr) by 2002:a17:902:6901:b0:156:4aad:fad7 with SMTP id j1-20020a170902690100b001564aadfad7mr466019plk.33.1648662399311; Wed, 30 Mar 2022 10:46:39 -0700 (PDT) Date: Wed, 30 Mar 2022 10:46:17 -0700 In-Reply-To: <20220330174621.1567317-1-bgardon@google.com> Message-Id: <20220330174621.1567317-8-bgardon@google.com> Mime-Version: 1.0 References: <20220330174621.1567317-1-bgardon@google.com> X-Mailer: git-send-email 2.35.1.1021.g381101b075-goog Subject: [PATCH v3 07/11] KVM: x86/MMU: Factor out updating NX hugepages state for a VM From: Ben Gardon To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , Peter Xu , Sean Christopherson , David Matlack , Jim Mattson , David Dunn , Jing Zhang , Junaid Shahid , Ben Gardon Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no 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 Factor out the code to update the NX hugepages state for an individual VM. This will be expanded in future commits to allow per-VM control of Nx hugepages. No functional change intended. Signed-off-by: Ben Gardon --- arch/x86/kvm/mmu/mmu.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index dbf46dd98618..af428cb65b3f 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -6202,6 +6202,15 @@ static void __set_nx_huge_pages(bool val) nx_huge_pages = itlb_multihit_kvm_mitigation = val; } +static void kvm_update_nx_huge_pages(struct kvm *kvm) +{ + mutex_lock(&kvm->slots_lock); + kvm_mmu_zap_all_fast(kvm); + mutex_unlock(&kvm->slots_lock); + + wake_up_process(kvm->arch.nx_lpage_recovery_thread); +} + static int set_nx_huge_pages(const char *val, const struct kernel_param *kp) { bool old_val = nx_huge_pages; @@ -6224,13 +6233,9 @@ static int set_nx_huge_pages(const char *val, const struct kernel_param *kp) mutex_lock(&kvm_lock); - list_for_each_entry(kvm, &vm_list, vm_list) { - mutex_lock(&kvm->slots_lock); - kvm_mmu_zap_all_fast(kvm); - mutex_unlock(&kvm->slots_lock); + list_for_each_entry(kvm, &vm_list, vm_list) + kvm_update_nx_huge_pages(kvm); - wake_up_process(kvm->arch.nx_lpage_recovery_thread); - } mutex_unlock(&kvm_lock); } -- 2.35.1.1021.g381101b075-goog