qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org
Cc: "Maxim Levitsky" <mlevitsk@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	"Chuang Xu" <xuchuangxclwt@bytedance.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: Re: [PATCH RFC 0/4] memory: Fix (/ Discuss) a few rcu issues
Date: Thu, 2 Mar 2023 10:46:56 +0100	[thread overview]
Message-ID: <6c75e2e2-5ba9-bc52-2c6c-a0bfb5f5b56f@redhat.com> (raw)
In-Reply-To: <20230225163141.1209368-1-peterx@redhat.com>

On 25.02.23 17:31, Peter Xu wrote:
> [not for merging, but for discussion; this is something I found when
>   looking at another issue on Chuang's optimization for migration downtime]
> 
> Summary: we tried to access memory_listeners, address_spaces, etc. in RCU
> way.  However we didn't implement them with RCU-safety. This patchset is
> trying to do that; at least making it closer.
> 
> NOTE!  It's doing it wrongly for now, so please feel free to see this as a
> thread to start discussing this problem, as in subject.
> 
> The core problem here is how to make sure memory listeners will be freed in
> RCU ways, per when unlinking them from the global memory_listeners list.

Can you elaborate why we would want to do that? Is there a real reason 
we cannot hold the BQL when unregistering a listener?

Or could we use any other, more fine-grained, lock to protect the memory 
listeners?

Naive me would think that any interactions between someone updating the 
memory listeners, and a listener getting removed, would require some 
careful synchronization (to not rip a notifier out while someone else 
notifies -- what is the still registered notifier supposed to do with 
notifications while it is already going away?), instead of doing it via RCU.

I'm all for using RCU if it improves performance and keeps things 
simple. If RCU is neither required for performance reason and 
overcomplicates the implementation, maybe using locking is the better 
choice.

TBH, so far I thought that any memory_listeners register/unregistering 
*requires* the BQL, and everything else is a BUG.

-- 
Thanks,

David / dhildenb



  parent reply	other threads:[~2023-03-02  9:47 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-25 16:31 [PATCH RFC 0/4] memory: Fix (/ Discuss) a few rcu issues Peter Xu
2023-02-25 16:31 ` [PATCH RFC 1/4] memory: Make memory_listeners RCU-safe for real Peter Xu
2023-02-25 16:31 ` [PATCH RFC 2/4] memory: Use rcu list variance for address_spaces modifications Peter Xu
2023-02-25 16:31 ` [PATCH RFC 3/4] memory: Protect memory_region_clear_dirty_bitmap with RCU Peter Xu
2023-02-25 16:31 ` [PATCH RFC 4/4] memory: Use rcu traversal in memory_region_to_address_space Peter Xu
2023-03-01  0:09 ` [PATCH RFC 0/4] memory: Fix (/ Discuss) a few rcu issues Stefan Hajnoczi
2023-03-01 16:08   ` Peter Xu
2023-03-02  9:46 ` David Hildenbrand [this message]
2023-03-02 14:45   ` Peter Xu
2023-03-02 14:56     ` Peter Xu
2023-03-02 15:11     ` David Hildenbrand
2023-03-02 21:50       ` Peter Xu
2023-03-03  9:10         ` David Hildenbrand
2023-03-03 16:20           ` Peter Xu
2023-03-03 16:58             ` David Hildenbrand

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=6c75e2e2-5ba9-bc52-2c6c-a0bfb5f5b56f@redhat.com \
    --to=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=mlevitsk@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=xuchuangxclwt@bytedance.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).