Re: [RFC/PATCH] No get_user/put_user while holding mmap_sem in do_pages_stat?

Peter Zijlstra
2008-12-09T16:36:05Z

On Sun, 2008-12-07 at 15:21 +0100, Brice Goglin wrote:
> Andrew Morton wrote:
> > Was lockdep able to tell you about this in any way?
> >
>
> With CONFIG_PROVE_LOCKING (assuming that it's enough), it doesn't detect
> the problem for real. It just says "possible recursive locking detected"
> between do_page_fault and sys_move_pages.

That is real - how much more real do you need a description of a
recursive deadlock to be?

> I actually understood the
> problem after hitting sysrq-t and always getting the following backtraces:
> * thread 1
> [<ffffffff80430cb8>] __down_write_nested+0x9c/0xb4
> [<ffffffff8028c2c4>] sys_mprotect+0xcc/0x230
> * thread 2
> [<ffffffff80430d73>] __down_read+0x9c/0xb4
> [<ffffffff80223f5c>] do_page_fault+0x551/0x9d9
> [...]
> [<ffffffff8043111a>] error_exit+0x0/0x70
> [<ffffffff802f5bec>] cap_task_movememory+0x0/0x3
> [<ffffffff8032b99d>] __put_user_4+0x1d/0x30
> [<ffffffff802a091f>] sys_move_pages+0x453/0x4c0