2010-02-26 12:56:06

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] io: remove padding from io_context on 64bit builds

On 64 bit builds when CONFIG_BLK_CGROUP=n (the default) this removes 8
bytes of padding from structure io_context and drops its size from 72 to
64 bytes, so needing one fewer cachelines and allowing more objects per
slab in it's kmem_cache.

Signed-off-by: Richard Kennedy <[email protected]>

----
patch against 2.6.33
compiled & test on x86_64 AMDX2
regards
Richard


diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h
index 78ef023..1195a80 100644
--- a/include/linux/iocontext.h
+++ b/include/linux/iocontext.h
@@ -49,8 +49,8 @@ struct io_context {
/*
* For request batching
*/
- unsigned long last_waited; /* Time last woken after wait for request */
int nr_batch_requests; /* Number of requests left in the batch */
+ unsigned long last_waited; /* Time last woken after wait for request */

struct radix_tree_root radix_root;
struct hlist_head cic_list;


2010-02-26 13:01:08

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] io: remove padding from io_context on 64bit builds

On Fri, Feb 26 2010, Richard Kennedy wrote:
> On 64 bit builds when CONFIG_BLK_CGROUP=n (the default) this removes 8
> bytes of padding from structure io_context and drops its size from 72 to
> 64 bytes, so needing one fewer cachelines and allowing more objects per
> slab in it's kmem_cache.
>
> Signed-off-by: Richard Kennedy <[email protected]>

Thanks Richard, applied.

--
Jens Axboe