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.

On that front, would "if (p == current)" still work even if we don't
have the "signal_task()" hint?

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to