Switching topics slightly, prefetch extending the effective cache line size was causing us some consternation, since we were never able to find where it was documented. Do you have a reference to it? When did it start happening?

It seems like it invalidates all software that was carefully written to honor 64 byte cache lines.


IIRC Pentium 4 had 128 byte "sectors", but it was never fully explained what these were, and the word died with the P4.


On 05/29/2017 05:26 PM, 'Nitsan Wakart' via mechanical-sympathy wrote:
In particular for Aeron LogBuffer false sharing on length writes can only happen (on systems with cache line length 64b) for 0 length messages as the data header size is 32b:
https://github.com/real-logic/Aeron/blob/e0bb87c4538125c577a653f20f5865a6d6d8dc95/aeron-client/src/main/java/io/aeron/protocol/DataHeaderFlyweight.java#L34-L34

and messages are aligned to 32b:
https://github.com/real-logic/Aeron/blob/ae85cb4d00e5f8c7eed3dd18d9ba737a4885393a/aeron-client/src/main/java/io/aeron/logbuffer/FrameDescriptor.java#L58-L58

This is ignoring prefetch induced false sharing which increases the boundaries of this issue to 128b, but which is also less severe.




--
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to