Значение по умолчанию PrefetchCopyIntervalInBytes в x86 и aarch64 отличается - PullRequest
1 голос
/ 08 июля 2020

Значение по умолчанию PrefetchCopyIntervalInBytes под x86 - 576 (9 * dcache_line), а под aarch64 - 192 (3 * dcache_line). Это объясняет, почему значение по умолчанию PrefetchCopyIntervalInBytes составляет 576 в src / hotspot / cpu / x86 / vm_version_x86. cpp

// Prefetch settings

  // Prefetch interval for gc copy/scan == 9 dcache lines.  Derived from
  // 50-warehouse specjbb runs on a 2-way 1.8ghz opteron using a 4gb heap.
  // Tested intervals from 128 to 2048 in increments of 64 == one cache line.
  // 256 bytes (4 dcache lines) was the nearest runner-up to 576.

  // gc copy/scan is disabled if prefetchw isn't supported, because
  // Prefetch::write emits an inlined prefetchw on Linux.
  // Do not use the 3dnow prefetchw instruction.  It isn't supported on em64t.
  // The used prefetcht0 instruction works for both amd64 and em64t.

Но почему значение по умолчанию для этой опции для руки не объясняется.

Так как же это значение определяется для aarch64?

...