From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Hao Peng <flyingpenghao@gmail.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] KVM: use unified srcu interface function
Date: Wed, 4 Jan 2023 01:19:59 +0000 [thread overview]
Message-ID: <Y7TUPw5i5BejllCB@google.com> (raw)
In-Reply-To: <365fe273-ba11-eb12-4d80-a2e6a17bf0fa@redhat.com>
On Fri, Dec 23, 2022, Paolo Bonzini wrote:
> On 12/20/22 08:47, Hao Peng wrote:
> > > > + old = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu,
> > > > + lockdep_is_held(&kvm->irq_lock));
> > > Readers of irq_routing are protected via kvm->irq_srcu, but this writer is never
> > > called with kvm->irq_srcu held. I do like the of replacing '1' with
> > > lockdep_is_held(&kvm->irq_lock) to document the protection, so what about just
> > > doing that? I.e.
> > >
> > Sorry for the long delay in replying. Although kvm->irq_srcu is not required
> > to protect irq_routing here, this interface function srcu_dereference_check
> > indicates that irq_routing is protected by kvm->irq_srcu in the kvm subsystem.
> > Thanks.
> >
>
> I agree, the last two arguments basically are alternative conditions to
> satisfy the check:
>
> #define srcu_dereference_check(p, ssp, c) \
> __rcu_dereference_check((p), __UNIQUE_ID(rcu), \
> (c) || srcu_read_lock_held(ssp), __rcu)
>
> The idea is to share the code between readers and writers,
But readers and writers naturally don't share code, and the subsequent
synchronize_srcu_expedited() is what really documents the interaction between
readers and writers.
It's definitely not a sticking point though, and this one does seems to be the
outlier in KVM.
> so what do you think of adding a
>
> #define kvm_get_irq_routing(kvm) srcu_dereference_check(...)
>
> macro at the top of virt/kvm/irqchip.c?
I'm fine with any approach, though a macro seems like overkill.
prev parent reply other threads:[~2023-01-04 1:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-08 1:19 [PATCH] KVM: use unified srcu interface function Hao Peng
2022-12-09 1:22 ` Sean Christopherson
2022-12-20 7:47 ` Hao Peng
2022-12-23 15:32 ` Paolo Bonzini
2023-01-04 1:19 ` Sean Christopherson [this message]
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=Y7TUPw5i5BejllCB@google.com \
--to=seanjc@google.com \
--cc=flyingpenghao@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
/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.