Messages in this thread | | | From | Jeff Moyer <> | Subject | Re: [patch] aio: invalidate async directio writes | Date | Wed, 18 Jun 2008 15:45:28 -0400 |
| |
Christoph Hellwig <hch@infradead.org> writes:
> On Wed, Jun 18, 2008 at 02:09:51PM -0400, Jeff Moyer wrote: >> + /* For async O_DIRECT writes, we need to invalidate the >> + * page cache after the write completes. Kick off a >> + * workqueue to do this and issue the completion in process >> + * context. >> + */ >> + if (dio->rw == READ) { >> + int ret = dio_complete(dio, dio->iocb->ki_pos, 0); >> + aio_complete(dio->iocb, ret, 0); >> + kfree(dio); >> + } else { >> + unsigned long flags; >> + spin_lock_irqsave(&iocb_completion_list_lock, flags); >> + list_add(&dio->done_list, &iocb_completion_list); >> + spin_unlock_irqrestore(&iocb_completion_list_lock, flags); >> + schedule_work(&aio_complete_work); >> + } > > Can we please move all these aio_complete calls to user context? Having > AIO contexts completing from irq context is a major pain for complex > filesystems like XFS.
Can you help me understand why this is a pain? I'm having trouble making the connection.
Thanks!
Jeff
| |