[rds-devel] [RESEND PATCH] mm: Use spin_lock_irqsave in __set_page_dirty_nobuffers
Andy Grover
andy.grover at oracle.com
Fri Jan 21 11:25:26 PST 2011
On 01/21/2011 12:18 AM, Andrew Morton wrote:
> On Mon, 10 Jan 2011 22:15:34 -0800 Andy Grover<andy.grover at oracle.com> wrote:
>
>> RDS is calling set_page_dirty from interrupt context,
>
> yikes. Whatever possessed you to try that?
When doing an RDMA read into pinned pages, we get notified the operation
is complete in a tasklet, and would like to mark the pages dirty and
unpin in the same context.
The issue was __set_page_dirty_buffers (via calling set_page_dirty) was
unconditionally re-enabling irqs as a side-effect because it was using
*_irq instead of *_irqsave/restore.
How would you recommend we proceed? My understanding was calling
set_page_dirty prior to issuing the operation isn't an option since it
might get cleaned too early.
Thanks -- Regards -- Andy
More information about the rds-devel
mailing list