All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Avi Kivity <avi@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>, kvm <kvm@vger.kernel.org>,
	Zachary Amsden <zamsden@redhat.com>
Subject: Re: [PATCH 2/2] KVM: Convert read-only users of vm_list to RCU
Date: Thu, 10 Feb 2011 15:34:24 +0100	[thread overview]
Message-ID: <4D53F770.6040908@siemens.com> (raw)
In-Reply-To: <4D53F5A4.8050403@redhat.com>

On 2011-02-10 15:26, Avi Kivity wrote:
> On 02/10/2011 03:47 PM, Jan Kiszka wrote:
>>>>
>>>>  Accept for mmu_shrink, which is write but not delete, thus works without
>>>>  that slow synchronize_rcu.
>>>
>>>  I don't really see how you can implement list_move_rcu(), it has to be
>>>  atomic or other users will see a partial vm_list.
>>
>> Right, even if we synchronized that step cleanly, rcu-protected users
>> could miss the moving vm during concurrent list walks.
>>
>> What about using a separate mutex for protecting vm_list instead?
>> Unless I missed some detail, mmu_shrink should allow blocking.
> 
> What else does kvm_lock protect?

Someone tried to write a locking.txt and stated that it's also
protecting enabling/disabling hardware virtualization. But that guy may
have overlooked something.

> 
> I think we could simply reduce the amount of time we hold kvm_lock.  
> Pick a vm, ref it, list_move_tail(), unlock, then do the actual 
> shrinking.  Of course taking a ref must be done carefully, we might 
> already be in kvm_destroy_vm() at that time.
> 

Plain mutex held across the whole mmu_shrink loop is still simpler and
should be sufficient - unless we also have to deal with scalability
issues if that handler is able to run concurrently. But based on how we
were using kvm_lock so far...

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

  reply	other threads:[~2011-02-10 14:34 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4D512EF7.8040409@siemens.com>
2011-02-08 11:55 ` [PATCH 2/2] KVM: Convert read-only users of vm_list to RCU Jan Kiszka
2011-02-10 10:16   ` Avi Kivity
2011-02-10 11:31     ` Jan Kiszka
2011-02-10 12:34       ` Avi Kivity
2011-02-10 12:45         ` Jan Kiszka
2011-02-10 12:56           ` Avi Kivity
2011-02-10 12:57             ` Avi Kivity
2011-02-10 13:14               ` Jan Kiszka
2011-02-10 13:19                 ` Avi Kivity
2011-02-10 13:47                   ` Jan Kiszka
2011-02-10 14:26                     ` Avi Kivity
2011-02-10 14:34                       ` Jan Kiszka [this message]
2011-02-10 14:47                         ` Avi Kivity
2011-02-10 14:55                           ` Jan Kiszka
2011-02-15 12:32   ` Marcelo Tosatti
2011-02-15 14:08     ` Jan Kiszka

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=4D53F770.6040908@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=zamsden@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.