2010-07-28 09:32:08

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] random: reorder struct entropy_store to remove padding on 64bits

Re-order structure entropy_store to remove 8 bytes of padding on
64 bit builds, so shrinking this structure from 72 to 64 bytes
and allowing it to fit into one cache line.

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

---
patch against v2.6.35-rc6
built & tested on x86_64

regards
Richard



diff --git a/drivers/char/random.c b/drivers/char/random.c
index 8d85587..caef35a 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -407,8 +407,8 @@ struct entropy_store {
struct poolinfo *poolinfo;
__u32 *pool;
const char *name;
- int limit;
struct entropy_store *pull;
+ int limit;

/* read-write data: */
spinlock_t lock;


2010-07-28 16:02:32

by Matt Mackall

[permalink] [raw]
Subject: Re: [PATCH] random: reorder struct entropy_store to remove padding on 64bits

On Wed, 2010-07-28 at 10:32 +0100, Richard Kennedy wrote:
> Re-order structure entropy_store to remove 8 bytes of padding on
> 64 bit builds, so shrinking this structure from 72 to 64 bytes
> and allowing it to fit into one cache line.

I have a vague memory that we reordered things so that the r/w bits
would be on a separate cache line than the r/o bits. But as we never
added the alignment primitives to actually enforce that, I guess it
doesn't matter much.

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

Signed-off-by: Matt Mackall <[email protected]>

--
Mathematics is the supreme nostalgia of our time.

2010-07-31 11:58:34

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] random: reorder struct entropy_store to remove padding on 64bits

On Wed, Jul 28, 2010 at 11:02:28AM -0500, Matt Mackall wrote:
> On Wed, 2010-07-28 at 10:32 +0100, Richard Kennedy wrote:
> > Re-order structure entropy_store to remove 8 bytes of padding on
> > 64 bit builds, so shrinking this structure from 72 to 64 bytes
> > and allowing it to fit into one cache line.
>
> I have a vague memory that we reordered things so that the r/w bits
> would be on a separate cache line than the r/o bits. But as we never
> added the alignment primitives to actually enforce that, I guess it
> doesn't matter much.
>
> > Signed-off-by: Richard Kennedy <[email protected]>
>
> Signed-off-by: Matt Mackall <[email protected]>

Patch applied. Thanks!
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2010-07-31 13:36:37

by Matt Mackall

[permalink] [raw]
Subject: Re: [PATCH] random: reorder struct entropy_store to remove padding on 64bits

On Sat, 2010-07-31 at 19:58 +0800, Herbert Xu wrote:
> On Wed, Jul 28, 2010 at 11:02:28AM -0500, Matt Mackall wrote:
> > On Wed, 2010-07-28 at 10:32 +0100, Richard Kennedy wrote:
> > > Re-order structure entropy_store to remove 8 bytes of padding on
> > > 64 bit builds, so shrinking this structure from 72 to 64 bytes
> > > and allowing it to fit into one cache line.
> >
> > I have a vague memory that we reordered things so that the r/w bits
> > would be on a separate cache line than the r/o bits. But as we never
> > added the alignment primitives to actually enforce that, I guess it
> > doesn't matter much.
> >
> > > Signed-off-by: Richard Kennedy <[email protected]>
> >
> > Signed-off-by: Matt Mackall <[email protected]>
>
> Patch applied. Thanks!

Oops, I forgot to cc: you on this and Andrew queued it. Andrew, I've
been queueing the RNG bits through Herbert's crypto tree lately.

--
Mathematics is the supreme nostalgia of our time.

2010-07-31 15:14:38

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] random: reorder struct entropy_store to remove padding on 64bits

On Sat, Jul 31, 2010 at 08:36:32AM -0500, Matt Mackall wrote:
>
> Oops, I forgot to cc: you on this and Andrew queued it. Andrew, I've
> been queueing the RNG bits through Herbert's crypto tree lately.

I think Andrew's scripts are clever enough to remove patches
once they show up in another tree.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt