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