lkml.org 
[lkml]   [2009]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [KVM-RFC PATCH 1/2] eventfd: add an explicit srcu based notifier interface
Michael S. Tsirkin wrote:
> On Wed, Jun 17, 2009 at 11:02:06AM -0400, Gregory Haskins wrote:
>
>> Michael S. Tsirkin wrote:
>>
>>> On Tue, Jun 16, 2009 at 02:09:38PM -0400, Gregory Haskins wrote:
>>>
>>>
>>>>> What do you mean by copy_to_user(other->mm) here? If you are going to switch
>>>>> to another mm, then I think current->mm must be valid (I think it's not enough
>>>>> that you can sleep). So preemptible() might not be enough.
>>>>>
>>>>>
>>>>>
>>>> I dont currently use switch_mm, if that is what you mean. I save the
>>>> task_struct into the appropriate context so current->mm doesn't matter
>>>> to me. I never use it. All I need (afaik) is to acquire the proper
>>>> mutex first. I am not an MM expert, so perhaps I have this wrong but it
>>>> does appear to work properly even from kthread context.
>>>>
>>>> -Greg
>>>>
>>>>
>>>>
>>>>
>>> I think I saw get_user_pages + memcpy in your patch. Yes, that works
>>> without switching contexts but it's slower than copy to user if you are
>>> in the right context, and AFAIK it's slower than get_user_pages_fast.
>>>
>>>
>>>
>> Yeah, understood. It will definitely be interesting to try that
>> optimization with switch_mm that you suggested.
>>
>
> BTW, I'm kind of confused - in your patch you do get_task_struct: does this
> guarantee that mm is not going aways?
>

Well, again, I am not an expert on MM, but I would think so. If p holds
a reference to p->mm (which I would think it would have to), and we hold
a reference to p, p->mm should be indirectly stable coincident with the
lifetime of our p reference. OTOH, I have not actually looked at
whether p actually takes a p->mm reference or not via inspection, so
this is just an educated guess at this point. ;)

I guess if this is broken, the solution is simple: Modify the code to
take an mm reference as well.

-Greg

[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2009-06-17 18:45    [W:0.096 / U:0.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site