[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