Hi Simon, On Wed, Dec 19, 2012 at 5:56 PM, Simon Jeons <simon.jeons@xxxxxxxxx> wrote: > One question. > > I found that mainly callsite of expand_stack() is #PF, but it holds > mmap_sem each time before call expand_stack(), how can hold a *shared* > mmap_sem happen? the #PF handler calls down_read(&mm->mmap_sem) before calling expand_stack. I think I'm just confusing you with my terminology; shared lock == read lock == several readers might hold it at once (I'd say they share it) -- Michel "Walken" Lespinasse A program is never fully debugged until the last user dies. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>