public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kvm-userland mm count skew
@ 2008-01-21 12:44 Andrea Arcangeli
       [not found] ` <20080121124455.GI6970-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Andrea Arcangeli @ 2008-01-21 12:44 UTC (permalink / raw)
  To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

I still can't see how it could be possibly make a difference for the
mm_count if the kvm module is compiled inside the kernel or as an
external module, the reference counting there hasn't changed since
ages. The mmdrop fires only in the first overflow so even if I'm right
it probably wasn't much destabilizing to go negative given it happened
at mm destruction time.

Signed-off-by: Andrea Arcangeli <andrea-atKUWr5tajBWk0Htik3J/w@public.gmane.org>

diff --git a/kernel/hack-module.awk b/kernel/hack-module.awk
index 5187c96..884bc50 100644
--- a/kernel/hack-module.awk
+++ b/kernel/hack-module.awk
@@ -33,8 +33,6 @@
     vmx_load_host_state = 0
 }
 
-/atomic_inc\(&kvm->mm->mm_count\);/ { $0 = "//" $0 }
-
 /^\t\.fault = / {
     fcn = gensub(/,/, "", "g", $3)
     $0 = "\t.VMA_OPS_FAULT(fault) = VMA_OPS_FAULT_FUNC(" fcn "),"

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] kvm-userland mm count skew
       [not found] ` <20080121124455.GI6970-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
@ 2008-01-22 13:41   ` Avi Kivity
       [not found]     ` <4795F26E.9090807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Avi Kivity @ 2008-01-22 13:41 UTC (permalink / raw)
  To: Andrea Arcangeli; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Andrea Arcangeli wrote:
> I still can't see how it could be possibly make a difference for the
> mm_count if the kvm module is compiled inside the kernel or as an
> external module, the reference counting there hasn't changed since
> ages. The mmdrop fires only in the first overflow so even if I'm right
> it probably wasn't much destabilizing to go negative given it happened
> at mm destruction time.
>
>   

It's this bit:

> /* __mmdrop() is not exported before 2.6.25 */
> #include <linux/sched.h>
>
> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
>
> #define mmdrop(x) do { (void)(x); } while (0)
>
> #endif


-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] kvm-userland mm count skew
       [not found]     ` <4795F26E.9090807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2008-01-22 14:25       ` Andrea Arcangeli
       [not found]         ` <20080122142525.GB7331-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Andrea Arcangeli @ 2008-01-22 14:25 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Tue, Jan 22, 2008 at 03:41:02PM +0200, Avi Kivity wrote:
> Andrea Arcangeli wrote:
>> I still can't see how it could be possibly make a difference for the
>> mm_count if the kvm module is compiled inside the kernel or as an
>> external module, the reference counting there hasn't changed since
>> ages. The mmdrop fires only in the first overflow so even if I'm right
>> it probably wasn't much destabilizing to go negative given it happened
>> at mm destruction time.
>>
>>   
>
> It's this bit:

Ok. But the atomic_inc removal isn't conditional to < 2.6.25, so it
still doesn't look good to me. it would look better if we would
unconditionally define mmdrop to nop in the external module
compile. The other problem is that I don't see why atomic_inc/mmdrop
are needed at all if the external module is safe, so why don't we drop
them? In ->release->kvm_destroy_vm it seems the kvm->mm is never used
anyway.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] kvm-userland mm count skew
       [not found]         ` <20080122142525.GB7331-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
@ 2008-01-22 14:33           ` Avi Kivity
  0 siblings, 0 replies; 4+ messages in thread
From: Avi Kivity @ 2008-01-22 14:33 UTC (permalink / raw)
  To: Andrea Arcangeli; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Andrea Arcangeli wrote:
> On Tue, Jan 22, 2008 at 03:41:02PM +0200, Avi Kivity wrote:
>   
>> Andrea Arcangeli wrote:
>>     
>>> I still can't see how it could be possibly make a difference for the
>>> mm_count if the kvm module is compiled inside the kernel or as an
>>> external module, the reference counting there hasn't changed since
>>> ages. The mmdrop fires only in the first overflow so even if I'm right
>>> it probably wasn't much destabilizing to go negative given it happened
>>> at mm destruction time.
>>>
>>>   
>>>       
>> It's this bit:
>>     
>
> Ok. But the atomic_inc removal isn't conditional to < 2.6.25, so it
> still doesn't look good to me. 

Right.  Not hurting in practice since 2.6.25 has yet to be released, but 
it needs fixing.

> it would look better if we would
> unconditionally define mmdrop to nop in the external module
> compile. The other problem is that I don't see why atomic_inc/mmdrop
> are needed at all if the external module is safe, so why don't we drop
> them? In ->release->kvm_destroy_vm it seems the kvm->mm is never used
> anyway.
>   

The external module isn't safe, it just works in practice.

The meaning of hvas and ->mmap_sem (and mmu notifiers) is dependent on 
->mm, so we must be sure that kvm doesn't get called with the wrong mm.  
Switching to a syscall based API would also cure this, but it's a lot 
more work.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-01-22 14:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-21 12:44 [PATCH] kvm-userland mm count skew Andrea Arcangeli
     [not found] ` <20080121124455.GI6970-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-22 13:41   ` Avi Kivity
     [not found]     ` <4795F26E.9090807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-22 14:25       ` Andrea Arcangeli
     [not found]         ` <20080122142525.GB7331-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-22 14:33           ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox