Re: [PATCH v2] consolidate WARN_...ONCE() static variables

From: Jan Beulich
Date: Tue Feb 28 2012 - 03:16:03 EST


>>> On 28.02.12 at 09:12, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, 28 Feb 2012 08:02:40 +0000 "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
>
>> >>> On 28.02.12 at 08:44, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>> > On Tue, 28 Feb 2012 07:41:54 +0000 "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
>> >
>> >> >>> On 28.02.12 at 01:03, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>> >> > On Mon, 27 Feb 2012 15:10:34 +0000
>> >> > "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
>> >> >
>> >> >> Due to the alignment of following variables, these typically consume
>> >> >> more than just the single byte that 'bool' requires, and as there are
>> >> >> a few hundred instances, the cache pollution (not so much the waste of
>> >> >> memory) sums up. Put these variables into their own section, outside
>> >> >> of any half way frequently used memory range.
>> >> >>
>> >> >> v2: Do the same also to the __warned variable of rcu_lockdep_assert().
>> >> >> (Don't, however, include the ones used by printk_once() and alike, as
>> >> >> they can potentially be hot.)
>> >> >
>> >> > I have a bad feeling that I still don't understand this patch. Ho hum.
>> >> >
>> >> > What are the rules for the new .data.unlikely section? When should
>> >> > people put variables into this section? Perhaps we can document this
>> >> > somewhere?
>> >>
>> >> If I knew the "where" part of this, I could put together a few sentences.
>> >> I just grep-ed through Documentation/, without finding e.g. any rules
>> >> or guidelines for using {,un}likely()...
>> >>
>> >
>> > At the definition site in vmlinux.lds?
>>
>> Sorry, Andrew, but this makes no sense to me.
>
> I really don't care - anywhere you like. Just the darn changelog, if
> nowhere else.
>
> I still don't have an answer to my question :( Some statement
> describing what the new section is *for*. Seems a pretty important
> thing?

Oh, sorry - to carry static data the accesses to which are unlikely
(i.e., as in the case given, fully contained in code sections inside
conditionals which themselves use unlikely() on their primary/only
clause - in other words, something that the compiler really could
do on its own).

Jan

--
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/