2006-12-30 02:45:58

by Dave Jones

[permalink] [raw]
Subject: potential for buffer_head shrinkage.

Looking at struct buffer_head, it seems that b_state
uses at most 15 bits, where it's defined as a 64bit entity
due to it being used by bit_spin_lock and friends.

Given it's not uncommon for a few hundred thousand of these
to be present, I wonder if it's worth the effort of folding
b_count into the upper bits of b_state, thus shrinking
buffer_head by 16 bits? This would still leave 32 bits
'wasted' for further bh_state_bits expansion if necessary.

Opinions?

Dave

--
http://www.codemonkey.org.uk


2006-12-30 02:50:43

by Dave Jones

[permalink] [raw]
Subject: Re: potential for buffer_head shrinkage.

On Fri, Dec 29, 2006 at 09:45:54PM -0500, Dave Jones wrote:
> Looking at struct buffer_head, it seems that b_state
> uses at most 15 bits, where it's defined as a 64bit entity
> due to it being used by bit_spin_lock and friends.
>
> Given it's not uncommon for a few hundred thousand of these
> to be present, I wonder if it's worth the effort of folding
> b_count into the upper bits of b_state, thus shrinking
> buffer_head by 16 bits? This would still leave 32 bits
> 'wasted' for further bh_state_bits expansion if necessary.

My math here based on a 64 bit compile btw in case that wasn't obvious.
32 bit wouldn't leave room for expansion.

Dave

--
http://www.codemonkey.org.uk