Re: remove __read_mostly?

From: Christoph Lameter
Date: Mon Jun 26 2006 - 00:16:41 EST


On Sun, 25 Jun 2006, Andrew Morton wrote:

> I'm thinking we should remove __read_mostly.
>
> Because if we use this everywhere where it's supposed to be used, we end up
> with .bss and .data 100% populated with write-often variables, packed
> closely together. The cachelines will really flying around.

What we really want is a write-often variable in a cacheline combined with
infrequently read and write data. However, data that is frequently read
(that is __read_mostly) would still need to be in a separate section.

> IOW: __read_mostly optimises read-mostly variables and pessimises
> write-often variables.
>
> We want something which optimises both read-mostly and write-often storage.
> We do that by marking the write-often variables with
> __cacheline_aligned_in_smp.
>
> OK?

I think we would want to group write-often variables with infrequently
used variable. But how does one convince the linker to doing that?

I agree that there is a problem with shift frequently written variables
together which may in itself cause ill effects. So __read_mostly should
only be used when we have identified real cacheline sharing problems and
real cache hot variables may have to be put in a separate cacheline for
itself. I think we already do that and that is at least the way I have
handled it. Too many __read_mostly kill the whole point of the exercise.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/