All of lore.kernel.org
 help / color / mirror / Atom feed
From: Isaku Yamahata <isaku.yamahata@gmail.com>
To: Chao Gao <chao.gao@intel.com>
Cc: isaku.yamahata@intel.com, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org, isaku.yamahata@gmail.com,
	Paolo Bonzini <pbonzini@redhat.com>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>, Will Deacon <will@kernel.org>
Subject: Re: [RFC PATCH 03/18] KVM: Drop kvm_count_lock and instead protect kvm_usage_count with kvm_lock
Date: Tue, 23 Aug 2022 01:40:03 -0700	[thread overview]
Message-ID: <20220823084003.GF2147148@ls.amr.corp.intel.com> (raw)
In-Reply-To: <YwQ6wTmbja4h2TYZ@gao-cwp>

On Tue, Aug 23, 2022 at 10:26:09AM +0800,
Chao Gao <chao.gao@intel.com> wrote:

> On Fri, Aug 19, 2022 at 11:00:09PM -0700, isaku.yamahata@intel.com wrote:
> >From: Isaku Yamahata <isaku.yamahata@intel.com>
> >
> >Because kvm_count_lock unnecessarily complicates the KVM locking convention
> >Drop kvm_count_lock and instead protect kvm_usage_count with kvm_lock for
> >simplicity.
> >
> >Opportunistically add some comments on locking.
> >
> >Suggested-by: Sean Christopherson <seanjc@google.com>
> >Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
> >---
> > static cpumask_var_t cpus_hardware_enabled;
> >@@ -4999,6 +4998,8 @@ static void hardware_enable_nolock(void *junk)
> > 	int cpu = raw_smp_processor_id();
> > 	int r;
> > 
> >+	WARN_ON_ONCE(preemptible());
> >+
> > 	if (cpumask_test_cpu(cpu, cpus_hardware_enabled))
> > 		return;
> > 
> >@@ -5015,10 +5016,10 @@ static void hardware_enable_nolock(void *junk)
> > 
> > static int kvm_starting_cpu(unsigned int cpu)
> > {
> >-	raw_spin_lock(&kvm_count_lock);
> >+	mutex_lock(&kvm_lock);
> 
> kvm_starting_cpu() is called with interrupt disabled. So we cannot use
> sleeping locks (e.g., mutex) here.


So your patch to move it to online section [1] is needed.
I thought I can pullin only some of your patches.  But whole your patches are
needed.

[1] https://lore.kernel.org/lkml/20220317091539.GA7257@gao-cwp/T/#mcc0fd81e7a19601e7c3ce451582c516d38f977f6
-- 
Isaku Yamahata <isaku.yamahata@gmail.com>

  reply	other threads:[~2022-08-23  9:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-20  6:00 [RFC PATCH 00/18] KVM hardware enable/disable reorganize isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 01/18] KVM: x86: Drop kvm_user_return_msr_cpu_online() isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 02/18] KVM: x86: Use this_cpu_ptr() instead of per_cpu_ptr(smp_processor_id()) isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 03/18] KVM: Drop kvm_count_lock and instead protect kvm_usage_count with kvm_lock isaku.yamahata
2022-08-23  2:26   ` Chao Gao
2022-08-23  8:40     ` Isaku Yamahata [this message]
2022-08-20  6:00 ` [RFC PATCH 04/18] KVM: Add arch hooks for PM events with empty stub isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 05/18] KVM: x86: Move TSC fixup logic to KVM arch resume callback isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 06/18] KVM: Add arch hook when VM is added/deleted isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 07/18] KVM: Move out KVM arch PM hooks and hardware enable/disable logic isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 08/18] KVM: kvm_arch.c: Remove _nolock post fix isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 09/18] KVM: kvm_arch.c: Remove a global variable, hardware_enable_failed isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 10/18] KVM: x86: Move check_processor_compatibility from init ops to runtime ops isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 11/18] Partially revert "KVM: Pass kvm_init()'s opaque param to additional arch funcs" isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 12/18] KVM: Do processor compatibility check on cpu online and resume isaku.yamahata
2022-08-23  7:50   ` Chao Gao
2022-08-23  8:08     ` Isaku Yamahata
2022-08-20  6:00 ` [RFC PATCH 13/18] KVM: x86: Duplicate arch callbacks related to pm events isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 14/18] KVM: Eliminate kvm_arch_post_init_vm() isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 15/18] KVM: x86: Delete kvm_arch_hardware_enable/disable() isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 16/18] KVM: Add config to not compile kvm_arch.c isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 17/18] KVM: x86: Remove cpus_hardware_enabled and related sanity check isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 18/18] KVM: " isaku.yamahata

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=20220823084003.GF2147148@ls.amr.corp.intel.com \
    --to=isaku.yamahata@gmail.com \
    --cc=chao.gao@intel.com \
    --cc=isaku.yamahata@intel.com \
    --cc=kai.huang@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=will@kernel.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.