Re: [PATCH] libceph: ceph_pagelist_append might sleep while atomic

2013-05-14 Thread Jim Schutt
On 05/14/2013 10:44 AM, Alex Elder wrote: > On 05/09/2013 09:42 AM, Jim Schutt wrote: >> Ceph's encode_caps_cb() worked hard to not call __page_cache_alloc while >> holding a lock, but it's spoiled because ceph_pagelist_addpage() always >> calls kmap(), which might sleep. Here's the result: > > I

Re: [PATCH] libceph: ceph_pagelist_append might sleep while atomic

2013-05-14 Thread Alex Elder
On 05/09/2013 09:42 AM, Jim Schutt wrote: > Ceph's encode_caps_cb() worked hard to not call __page_cache_alloc while > holding a lock, but it's spoiled because ceph_pagelist_addpage() always > calls kmap(), which might sleep. Here's the result: I finally took a close look at this today, Jim. Sor

[PATCH] libceph: ceph_pagelist_append might sleep while atomic

2013-05-09 Thread Jim Schutt
Ceph's encode_caps_cb() worked hard to not call __page_cache_alloc while holding a lock, but it's spoiled because ceph_pagelist_addpage() always calls kmap(), which might sleep. Here's the result: [13439.295457] ceph: mds0 reconnect start [13439.300572] BUG: sleeping function called from invalid