[rds-devel] BUG_ON fired in rds
Andy Grover
andy.grover at oracle.com
Mon Sep 20 14:38:51 PDT 2010
On 09/19/2010 12:15 AM, Or Gerlitz wrote:
> Andy Grover wrote:
>> I think the solution was to mark the pages dirty when pinning them,
>> not when freeing them. What does everyone think about the attached
>> patch?
>
> I'll be happy to learn more on the problem&& its solution, the patch
> isn't documented...
Sure. set_page_dirty() calls __set_page_dirty_nobuffers, which
unconditionally re-enables interrupts. It's meant to be called from
process context. A while back we fixed one code path where we called it
from interrupt context, and also put the BUG_ON in to make sure no other
path reintroduced the bug later.
It appears the recent big changes have done so. I don't see any way to
avoid the call in the trace Eli posted. The patch I posted marks pages
that will be the recipients of RDMA ops as dirty beforehand (from
process context), instead of right before the pages are unpinned.
Regards -- Andy
More information about the rds-devel
mailing list