izard: (Default)
[personal profile] izard
struct sk_buff is quite big (for a reason), 4 cache lines.

The way it's being accessed in a fast path (in reverse order), when system is running a network throughput benchmark fools h/w prefetcher on x86, makes it prefetching random data. This becomes quite noticeable on 10G, I've checked with Vtune.

There may be a way to re-arrange the layout of the struct so the prefetcher would stop issuing unnecessary memory reads, saving cache capacity and memory traffic. But I would not bother doing it because it is I think too x86 specific to be accepted to the kernel. And yes, I have not tested on AMD either.

Profile

izard: (Default)
izard

July 2025

S M T W T F S
  12345
67 89101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 9th, 2025 03:33 pm
Powered by Dreamwidth Studios