Messages in this thread | | | Date | Wed, 27 Feb 2008 15:34:07 -0800 (PST) | From | Christoph Lameter <> | Subject | Re: Linux 2.6.25-rc2 |
| |
On Tue, 19 Feb 2008, Mathieu Desnoyers wrote:
> I think you are right. A way to fix this would use the fact that the > freelist is only useful to point to the first free object in a page. We > could change it to an offset rather than an address. > > The freelist would become a counter of type "long" which increments > until it wraps at 2^32 or 2^64. A PAGE_MASK bitmask could then be used > to get low order bits which would get the page offset of the first free > object, while the high order bits would insure we can detect this type > of object reuse when doing a cmpxchg. Upon free, the freelist counter > should always be incremented; this would be provided by adding PAGE_SIZE > to the counter and setting the LSBs to the correct offset.
Urgh.... That sounds way too complicated. Do you have an experimental patch that would allow us to see the impact?
| |