From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 20/22] kvm: mmu: NX largepage recovery for TDP MMU
Date: Fri, 09 Oct 2020 14:03:41 +0300 [thread overview]
Message-ID: <20201009110341.GH1042@kadam> (raw)
In-Reply-To: <20200925212302.3979661-21-bgardon@google.com>
[-- Attachment #1: Type: text/plain, Size: 4684 bytes --]
Hi Ben,
url: https://github.com/0day-ci/linux/commits/Ben-Gardon/Introduce-the-TDP-MMU/20200926-052649
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 6d28cf7dfede6cfca5119a0d415a6a447c68f3a0
config: x86_64-randconfig-m001-20201008 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
arch/x86/kvm/mmu/tdp_mmu.c:1280 kvm_tdp_mmu_recover_nx_lpages() error: uninitialized symbol 'flush'.
Old smatch warnings:
arch/x86/kvm/mmu/tdp_mmu.c:786 set_tdp_spte() error: uninitialized symbol 'new_spte'.
vim +/flush +1280 arch/x86/kvm/mmu/tdp_mmu.c
db486646d29d61d Ben Gardon 2020-09-25 1234 void kvm_tdp_mmu_recover_nx_lpages(struct kvm *kvm)
db486646d29d61d Ben Gardon 2020-09-25 1235 {
db486646d29d61d Ben Gardon 2020-09-25 1236 struct kvm_mmu_page *sp;
db486646d29d61d Ben Gardon 2020-09-25 1237 bool flush;
db486646d29d61d Ben Gardon 2020-09-25 1238 int rcu_idx;
db486646d29d61d Ben Gardon 2020-09-25 1239 unsigned int ratio;
db486646d29d61d Ben Gardon 2020-09-25 1240 ulong to_zap;
db486646d29d61d Ben Gardon 2020-09-25 1241 u64 old_spte;
db486646d29d61d Ben Gardon 2020-09-25 1242
db486646d29d61d Ben Gardon 2020-09-25 1243 rcu_idx = srcu_read_lock(&kvm->srcu);
db486646d29d61d Ben Gardon 2020-09-25 1244 spin_lock(&kvm->mmu_lock);
db486646d29d61d Ben Gardon 2020-09-25 1245
db486646d29d61d Ben Gardon 2020-09-25 1246 ratio = READ_ONCE(nx_huge_pages_recovery_ratio);
db486646d29d61d Ben Gardon 2020-09-25 1247 to_zap = ratio ? DIV_ROUND_UP(kvm->stat.nx_lpage_splits, ratio) : 0;
If "to_zap" is false then "flush" is uninitialized.
db486646d29d61d Ben Gardon 2020-09-25 1248
db486646d29d61d Ben Gardon 2020-09-25 1249 while (to_zap &&
db486646d29d61d Ben Gardon 2020-09-25 1250 !list_empty(&kvm->arch.tdp_mmu_lpage_disallowed_pages)) {
db486646d29d61d Ben Gardon 2020-09-25 1251 /*
db486646d29d61d Ben Gardon 2020-09-25 1252 * We use a separate list instead of just using active_mmu_pages
db486646d29d61d Ben Gardon 2020-09-25 1253 * because the number of lpage_disallowed pages is expected to
db486646d29d61d Ben Gardon 2020-09-25 1254 * be relatively small compared to the total.
db486646d29d61d Ben Gardon 2020-09-25 1255 */
db486646d29d61d Ben Gardon 2020-09-25 1256 sp = list_first_entry(&kvm->arch.tdp_mmu_lpage_disallowed_pages,
db486646d29d61d Ben Gardon 2020-09-25 1257 struct kvm_mmu_page,
db486646d29d61d Ben Gardon 2020-09-25 1258 lpage_disallowed_link);
db486646d29d61d Ben Gardon 2020-09-25 1259
db486646d29d61d Ben Gardon 2020-09-25 1260 old_spte = *sp->parent_sptep;
db486646d29d61d Ben Gardon 2020-09-25 1261 *sp->parent_sptep = 0;
db486646d29d61d Ben Gardon 2020-09-25 1262
db486646d29d61d Ben Gardon 2020-09-25 1263 list_del(&sp->lpage_disallowed_link);
db486646d29d61d Ben Gardon 2020-09-25 1264 kvm->arch.tdp_mmu_lpage_disallowed_page_count--;
db486646d29d61d Ben Gardon 2020-09-25 1265
db486646d29d61d Ben Gardon 2020-09-25 1266 handle_changed_spte(kvm, kvm_mmu_page_as_id(sp), sp->gfn,
db486646d29d61d Ben Gardon 2020-09-25 1267 old_spte, 0, sp->role.level + 1);
db486646d29d61d Ben Gardon 2020-09-25 1268
db486646d29d61d Ben Gardon 2020-09-25 1269 flush = true;
db486646d29d61d Ben Gardon 2020-09-25 1270
db486646d29d61d Ben Gardon 2020-09-25 1271 if (!--to_zap || need_resched() ||
db486646d29d61d Ben Gardon 2020-09-25 1272 spin_needbreak(&kvm->mmu_lock)) {
db486646d29d61d Ben Gardon 2020-09-25 1273 flush = false;
db486646d29d61d Ben Gardon 2020-09-25 1274 kvm_flush_remote_tlbs(kvm);
db486646d29d61d Ben Gardon 2020-09-25 1275 if (to_zap)
db486646d29d61d Ben Gardon 2020-09-25 1276 cond_resched_lock(&kvm->mmu_lock);
db486646d29d61d Ben Gardon 2020-09-25 1277 }
db486646d29d61d Ben Gardon 2020-09-25 1278 }
db486646d29d61d Ben Gardon 2020-09-25 1279
db486646d29d61d Ben Gardon 2020-09-25 @1280 if (flush)
db486646d29d61d Ben Gardon 2020-09-25 1281 kvm_flush_remote_tlbs(kvm);
db486646d29d61d Ben Gardon 2020-09-25 1282
db486646d29d61d Ben Gardon 2020-09-25 1283 spin_unlock(&kvm->mmu_lock);
db486646d29d61d Ben Gardon 2020-09-25 1284 srcu_read_unlock(&kvm->srcu, rcu_idx);
db486646d29d61d Ben Gardon 2020-09-25 1285 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41414 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 20/22] kvm: mmu: NX largepage recovery for TDP MMU
Date: Fri, 09 Oct 2020 14:03:41 +0300 [thread overview]
Message-ID: <20201009110341.GH1042@kadam> (raw)
In-Reply-To: <20200925212302.3979661-21-bgardon@google.com>
[-- Attachment #1: Type: text/plain, Size: 4684 bytes --]
Hi Ben,
url: https://github.com/0day-ci/linux/commits/Ben-Gardon/Introduce-the-TDP-MMU/20200926-052649
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 6d28cf7dfede6cfca5119a0d415a6a447c68f3a0
config: x86_64-randconfig-m001-20201008 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
arch/x86/kvm/mmu/tdp_mmu.c:1280 kvm_tdp_mmu_recover_nx_lpages() error: uninitialized symbol 'flush'.
Old smatch warnings:
arch/x86/kvm/mmu/tdp_mmu.c:786 set_tdp_spte() error: uninitialized symbol 'new_spte'.
vim +/flush +1280 arch/x86/kvm/mmu/tdp_mmu.c
db486646d29d61d Ben Gardon 2020-09-25 1234 void kvm_tdp_mmu_recover_nx_lpages(struct kvm *kvm)
db486646d29d61d Ben Gardon 2020-09-25 1235 {
db486646d29d61d Ben Gardon 2020-09-25 1236 struct kvm_mmu_page *sp;
db486646d29d61d Ben Gardon 2020-09-25 1237 bool flush;
db486646d29d61d Ben Gardon 2020-09-25 1238 int rcu_idx;
db486646d29d61d Ben Gardon 2020-09-25 1239 unsigned int ratio;
db486646d29d61d Ben Gardon 2020-09-25 1240 ulong to_zap;
db486646d29d61d Ben Gardon 2020-09-25 1241 u64 old_spte;
db486646d29d61d Ben Gardon 2020-09-25 1242
db486646d29d61d Ben Gardon 2020-09-25 1243 rcu_idx = srcu_read_lock(&kvm->srcu);
db486646d29d61d Ben Gardon 2020-09-25 1244 spin_lock(&kvm->mmu_lock);
db486646d29d61d Ben Gardon 2020-09-25 1245
db486646d29d61d Ben Gardon 2020-09-25 1246 ratio = READ_ONCE(nx_huge_pages_recovery_ratio);
db486646d29d61d Ben Gardon 2020-09-25 1247 to_zap = ratio ? DIV_ROUND_UP(kvm->stat.nx_lpage_splits, ratio) : 0;
If "to_zap" is false then "flush" is uninitialized.
db486646d29d61d Ben Gardon 2020-09-25 1248
db486646d29d61d Ben Gardon 2020-09-25 1249 while (to_zap &&
db486646d29d61d Ben Gardon 2020-09-25 1250 !list_empty(&kvm->arch.tdp_mmu_lpage_disallowed_pages)) {
db486646d29d61d Ben Gardon 2020-09-25 1251 /*
db486646d29d61d Ben Gardon 2020-09-25 1252 * We use a separate list instead of just using active_mmu_pages
db486646d29d61d Ben Gardon 2020-09-25 1253 * because the number of lpage_disallowed pages is expected to
db486646d29d61d Ben Gardon 2020-09-25 1254 * be relatively small compared to the total.
db486646d29d61d Ben Gardon 2020-09-25 1255 */
db486646d29d61d Ben Gardon 2020-09-25 1256 sp = list_first_entry(&kvm->arch.tdp_mmu_lpage_disallowed_pages,
db486646d29d61d Ben Gardon 2020-09-25 1257 struct kvm_mmu_page,
db486646d29d61d Ben Gardon 2020-09-25 1258 lpage_disallowed_link);
db486646d29d61d Ben Gardon 2020-09-25 1259
db486646d29d61d Ben Gardon 2020-09-25 1260 old_spte = *sp->parent_sptep;
db486646d29d61d Ben Gardon 2020-09-25 1261 *sp->parent_sptep = 0;
db486646d29d61d Ben Gardon 2020-09-25 1262
db486646d29d61d Ben Gardon 2020-09-25 1263 list_del(&sp->lpage_disallowed_link);
db486646d29d61d Ben Gardon 2020-09-25 1264 kvm->arch.tdp_mmu_lpage_disallowed_page_count--;
db486646d29d61d Ben Gardon 2020-09-25 1265
db486646d29d61d Ben Gardon 2020-09-25 1266 handle_changed_spte(kvm, kvm_mmu_page_as_id(sp), sp->gfn,
db486646d29d61d Ben Gardon 2020-09-25 1267 old_spte, 0, sp->role.level + 1);
db486646d29d61d Ben Gardon 2020-09-25 1268
db486646d29d61d Ben Gardon 2020-09-25 1269 flush = true;
db486646d29d61d Ben Gardon 2020-09-25 1270
db486646d29d61d Ben Gardon 2020-09-25 1271 if (!--to_zap || need_resched() ||
db486646d29d61d Ben Gardon 2020-09-25 1272 spin_needbreak(&kvm->mmu_lock)) {
db486646d29d61d Ben Gardon 2020-09-25 1273 flush = false;
db486646d29d61d Ben Gardon 2020-09-25 1274 kvm_flush_remote_tlbs(kvm);
db486646d29d61d Ben Gardon 2020-09-25 1275 if (to_zap)
db486646d29d61d Ben Gardon 2020-09-25 1276 cond_resched_lock(&kvm->mmu_lock);
db486646d29d61d Ben Gardon 2020-09-25 1277 }
db486646d29d61d Ben Gardon 2020-09-25 1278 }
db486646d29d61d Ben Gardon 2020-09-25 1279
db486646d29d61d Ben Gardon 2020-09-25 @1280 if (flush)
db486646d29d61d Ben Gardon 2020-09-25 1281 kvm_flush_remote_tlbs(kvm);
db486646d29d61d Ben Gardon 2020-09-25 1282
db486646d29d61d Ben Gardon 2020-09-25 1283 spin_unlock(&kvm->mmu_lock);
db486646d29d61d Ben Gardon 2020-09-25 1284 srcu_read_unlock(&kvm->srcu, rcu_idx);
db486646d29d61d Ben Gardon 2020-09-25 1285 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41414 bytes --]
next prev parent reply other threads:[~2020-10-09 11:03 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-25 21:22 [PATCH 00/22] Introduce the TDP MMU Ben Gardon
2020-09-25 21:22 ` [PATCH 01/22] kvm: mmu: Separate making SPTEs from set_spte Ben Gardon
2020-09-30 4:55 ` Sean Christopherson
2020-09-30 23:03 ` Ben Gardon
2020-09-25 21:22 ` [PATCH 02/22] kvm: mmu: Introduce tdp_iter Ben Gardon
2020-09-26 0:04 ` Paolo Bonzini
2020-09-30 5:06 ` Sean Christopherson
2020-09-26 0:54 ` Paolo Bonzini
2020-09-30 5:08 ` Sean Christopherson
2020-09-30 5:24 ` Sean Christopherson
2020-09-30 6:24 ` Paolo Bonzini
2020-09-30 23:20 ` Eric van Tassell
2020-09-30 23:34 ` Paolo Bonzini
2020-10-01 0:07 ` Sean Christopherson
2020-09-25 21:22 ` [PATCH 03/22] kvm: mmu: Init / Uninit the TDP MMU Ben Gardon
2020-09-26 0:06 ` Paolo Bonzini
2020-09-30 5:34 ` Sean Christopherson
2020-09-30 18:36 ` Ben Gardon
2020-09-30 16:57 ` Sean Christopherson
2020-09-30 17:39 ` Paolo Bonzini
2020-09-30 18:42 ` Ben Gardon
2020-09-25 21:22 ` [PATCH 04/22] kvm: mmu: Allocate and free TDP MMU roots Ben Gardon
2020-09-30 6:06 ` Sean Christopherson
2020-09-30 6:26 ` Paolo Bonzini
2020-09-30 15:38 ` Sean Christopherson
2020-10-12 22:59 ` Ben Gardon
2020-10-12 23:59 ` Sean Christopherson
2020-09-25 21:22 ` [PATCH 05/22] kvm: mmu: Add functions to handle changed TDP SPTEs Ben Gardon
2020-09-26 0:39 ` Paolo Bonzini
2020-09-28 17:23 ` Paolo Bonzini
2020-09-25 21:22 ` [PATCH 06/22] kvm: mmu: Make address space ID a property of memslots Ben Gardon
2020-09-30 6:10 ` Sean Christopherson
2020-09-30 23:11 ` Ben Gardon
2020-09-25 21:22 ` [PATCH 07/22] kvm: mmu: Support zapping SPTEs in the TDP MMU Ben Gardon
2020-09-26 0:14 ` Paolo Bonzini
2020-09-30 6:15 ` Sean Christopherson
2020-09-30 6:28 ` Paolo Bonzini
2020-09-25 21:22 ` [PATCH 08/22] kvm: mmu: Separate making non-leaf sptes from link_shadow_page Ben Gardon
2020-09-25 21:22 ` [PATCH 09/22] kvm: mmu: Remove disallowed_hugepage_adjust shadow_walk_iterator arg Ben Gardon
2020-09-30 16:19 ` Sean Christopherson
2020-09-25 21:22 ` [PATCH 10/22] kvm: mmu: Add TDP MMU PF handler Ben Gardon
2020-09-26 0:24 ` Paolo Bonzini
2020-09-30 16:37 ` Sean Christopherson
2020-09-30 16:55 ` Paolo Bonzini
2020-09-30 17:37 ` Paolo Bonzini
2020-10-06 22:35 ` Ben Gardon
2020-10-06 22:33 ` Ben Gardon
2020-10-07 20:55 ` Sean Christopherson
2020-09-25 21:22 ` [PATCH 11/22] kvm: mmu: Factor out allocating a new tdp_mmu_page Ben Gardon
2020-09-26 0:22 ` Paolo Bonzini
2020-09-30 18:53 ` Ben Gardon
2020-09-25 21:22 ` [PATCH 12/22] kvm: mmu: Allocate struct kvm_mmu_pages for all pages in TDP MMU Ben Gardon
2020-09-25 21:22 ` [PATCH 13/22] kvm: mmu: Support invalidate range MMU notifier for " Ben Gardon
2020-09-30 17:03 ` Sean Christopherson
2020-09-30 23:15 ` Ben Gardon
2020-09-30 23:24 ` Sean Christopherson
2020-09-30 23:27 ` Ben Gardon
2020-09-25 21:22 ` [PATCH 14/22] kvm: mmu: Add access tracking for tdp_mmu Ben Gardon
2020-09-26 0:32 ` Paolo Bonzini
2020-09-30 17:48 ` Sean Christopherson
2020-10-06 23:38 ` Ben Gardon
2020-09-25 21:22 ` [PATCH 15/22] kvm: mmu: Support changed pte notifier in tdp MMU Ben Gardon
2020-09-26 0:33 ` Paolo Bonzini
2020-09-28 15:11 ` Paolo Bonzini
2020-10-07 16:53 ` Ben Gardon
2020-10-07 17:18 ` Paolo Bonzini
2020-10-07 17:30 ` Ben Gardon
2020-10-07 17:54 ` Paolo Bonzini
2020-10-09 10:59 ` Dan Carpenter
2020-10-09 10:59 ` Dan Carpenter
2020-09-25 21:22 ` [PATCH 16/22] kvm: mmu: Add dirty logging handler for changed sptes Ben Gardon
2020-09-26 0:45 ` Paolo Bonzini
2020-09-25 21:22 ` [PATCH 17/22] kvm: mmu: Support dirty logging for the TDP MMU Ben Gardon
2020-09-26 1:04 ` Paolo Bonzini
2020-10-08 18:27 ` Ben Gardon
2020-09-29 15:07 ` Paolo Bonzini
2020-09-30 18:04 ` Sean Christopherson
2020-09-30 18:08 ` Paolo Bonzini
2020-09-25 21:22 ` [PATCH 18/22] kvm: mmu: Support disabling dirty logging for the tdp MMU Ben Gardon
2020-09-26 1:09 ` Paolo Bonzini
2020-10-07 16:30 ` Ben Gardon
2020-10-07 17:21 ` Paolo Bonzini
2020-10-07 17:28 ` Ben Gardon
2020-10-07 17:53 ` Paolo Bonzini
2020-09-25 21:22 ` [PATCH 19/22] kvm: mmu: Support write protection for nesting in " Ben Gardon
2020-09-30 18:06 ` Sean Christopherson
2020-09-25 21:23 ` [PATCH 20/22] kvm: mmu: NX largepage recovery for TDP MMU Ben Gardon
2020-09-26 1:14 ` Paolo Bonzini
2020-09-30 22:23 ` Ben Gardon
2020-09-29 18:24 ` Paolo Bonzini
2020-09-30 18:15 ` Sean Christopherson
2020-09-30 19:56 ` Paolo Bonzini
2020-09-30 22:33 ` Ben Gardon
2020-09-30 22:27 ` Ben Gardon
2020-10-09 11:03 ` Dan Carpenter [this message]
2020-10-09 11:03 ` Dan Carpenter
2020-09-25 21:23 ` [PATCH 21/22] kvm: mmu: Support MMIO in the " Ben Gardon
2020-09-30 18:19 ` Sean Christopherson
2020-10-09 11:43 ` Dan Carpenter
2020-10-09 11:43 ` Dan Carpenter
2020-09-25 21:23 ` [PATCH 22/22] kvm: mmu: Don't clear write flooding count for direct roots Ben Gardon
2020-09-26 1:25 ` Paolo Bonzini
2020-10-05 22:48 ` Ben Gardon
2020-10-05 23:44 ` Sean Christopherson
2020-10-06 16:19 ` Ben Gardon
2020-09-26 1:14 ` [PATCH 00/22] Introduce the TDP MMU Paolo Bonzini
2020-09-28 17:31 ` Paolo Bonzini
2020-09-29 17:40 ` Ben Gardon
2020-09-29 18:10 ` Paolo Bonzini
2020-09-30 6:19 ` Sean Christopherson
2020-09-30 6:30 ` Paolo Bonzini
-- strict thread matches above, loose matches on Subject: below --
2020-10-07 23:24 [PATCH 20/22] kvm: mmu: NX largepage recovery for " kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201009110341.GH1042@kadam \
--to=dan.carpenter@oracle.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.