From: compudj@krystal.dyndns.org (Mathieu Desnoyers)
Subject: [ltt-dev] liburcu cache line size
Date: Tue, 17 Aug 2010 16:53:44 -0400 [thread overview]
Message-ID: <20100817205344.GB25723@Krystal> (raw)
In-Reply-To: <4C6AF2CE.4040000@polymtl.ca>
* Alexandre Montplaisir (alexandre.montplaisir at polymtl.ca) wrote:
> On 10-08-17 04:27 PM, Mathieu Desnoyers wrote:
>> * Alexandre Montplaisir (alexandre.montplaisir at polymtl.ca) wrote:
>>
>>> On 10-08-17 03:54 PM, Mathieu Desnoyers wrote:
>>>
>> [...]
>>
>>>> Oh, and by the way, given that these are arrays made of one variable per
>>>> cpu, the extra space allocated will not consume extra cache lines in any
>>>> of the CPU. We're just wasting a bit a memory here, not adding to cache
>>>> pressure.
>>>>
>>>> Mathieu
>>>>
>>> Sorry to chime in, but wouldn't padding to 128 bytes on architectures
>>> with 64-byte cache lines "waste" an extra line every time, thus
>>> indirectly adding to cache pressure?
>>>
>> A cache line is only used if the data located in that cache line is
>> touched. If we only have padding in the second half of the 128 bytes,
>> then the associated 64 bytes cache line is never fetched by the cpu.
>>
>> But reality can be a bit different when we speak of sequential accesses
>> with prefetching. However, this apply well to randomly-accessed memory.
>>
>> Does that make sense ?
>>
>>
> Yes, thanks for the explanation!
>
> I see now why we *clearly* don't want the align attribute to be smaller
> than the actual cache-line size.
>
> Me and David's concerns were more about the other architectures (core2,
> atom, "generic", etc., which do seem to be more common than P4 & NUMA)
> where the lib is still defining 128-byte cache line sizes even though
> they use 64-byte ones. Would it be worth it to have a per-architecture
> definition?
It becomes a mess trying to have defines for each sub-architecture when
not clearly needed. In this case, we just waste a few bytes of memory
here and there, nothing to call home about, really.
We always have to think that these are usually packaged by distros,
which have to use defaults that will work well on a wide set of
machines.
Thanks,
Mathieu
>
> Alexandre
>
>> Thanks,
>>
>> Mathieu
>>
>>
>>> (relatively newbie here, please be gentle :) )
>>>
>>> Alexandre
>>>
>>
>>
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2010-08-17 20:53 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-17 18:30 David Goulet
2010-08-17 18:51 ` Mathieu Desnoyers
2010-08-17 19:06 ` David Goulet
2010-08-17 19:45 ` Mathieu Desnoyers
2010-08-17 19:54 ` Mathieu Desnoyers
2010-08-17 20:04 ` Alexandre Montplaisir
2010-08-17 20:27 ` Mathieu Desnoyers
2010-08-17 20:36 ` Alexandre Montplaisir
2010-08-17 20:53 ` Mathieu Desnoyers [this message]
2010-08-17 19:58 ` David Goulet
2010-08-17 20:24 ` Mathieu Desnoyers
2010-08-17 20:40 ` David Goulet
2010-08-17 20:51 ` Mathieu Desnoyers
2010-08-17 20:53 ` David Goulet
2010-08-17 20:55 ` Mathieu Desnoyers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100817205344.GB25723@Krystal \
--to=compudj@krystal.dyndns.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox