| To: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 2/5] xfs: defer AIO/DIO completions |
| From: | Dave Chinner <david@xxxxxxxxxxxxx> |
| Date: | Mon, 22 Aug 2011 16:40:28 +1000 |
| Cc: | xfs@xxxxxxxxxxx |
| In-reply-to: | <20110814222517.807217901@xxxxxxxxxxxxxxxxxxxxxx> |
| References: | <20110814222412.359079843@xxxxxxxxxxxxxxxxxxxxxx> <20110814222517.807217901@xxxxxxxxxxxxxxxxxxxxxx> |
| User-agent: | Mutt/1.5.21 (2010-09-15) |
On Sun, Aug 14, 2011 at 06:24:14PM -0400, Christoph Hellwig wrote:
> We really shouldn't complete AIO or DIO requests until we have finished
> the unwritten extent conversion and size update. This means fsync never
> has to pick up any ioends as all work has been completed when signalling
> I/O completion.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
I don't really like the field abuse. pahole tells me:
struct xfs_ioend {
struct xfs_ioend * io_list; /* 0 8 */
unsigned int io_type; /* 8 4 */
int io_error; /* 12 4 */
atomic_t io_remaining; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
struct inode * io_inode; /* 24 8 */
struct buffer_head * io_buffer_head; /* 32 8 */
struct buffer_head * io_buffer_tail; /* 40 8 */
size_t io_size; /* 48 8 */
xfs_off_t io_offset; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
struct work_struct io_work; /* 64 32 */
struct kiocb * io_iocb; /* 96 8 */
int io_result; /* 104 4 */
There's a 4 byte hole in the xfs_ioend structure where you could put
a flags field to communicate this and not grow the structure....
Cheers,
Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH 1/5] xfs: remove dead ENODEV handling in xfs_destroy_ioend, Dave Chinner |
|---|---|
| Next by Date: | Re: [PATCH 3/5] xfs: reduce ioend latency, Dave Chinner |
| Previous by Thread: | [PATCH 2/5] xfs: defer AIO/DIO completions, Christoph Hellwig |
| Next by Thread: | Re: [PATCH 2/5] xfs: defer AIO/DIO completions, Christoph Hellwig |
| Indexes: | [Date] [Thread] [Top] [All Lists] |