Re: [PATCH] Mantaining turnstile aligned to 128 bytes in i386 CPUs

From: Suleiman Souhlal <ssouhlal_at_FreeBSD.org>
Date: Wed, 17 Jan 2007 23:38:06 -0800
Bruce Evans wrote:
> On Wed, 17 Jan 2007, Matthew Dillon wrote:
>>    * No extranious memory writes, no uncached extranious memory reads.
>>      If you do any writes to memory other then to the copy destination
>>      in your copy loop you screw up the cpu's write fifo and destroy
>>      performance.
>>
>>      Systems are so sensitive to this that it is even better to spend the
>>      time linearly mapping large copy spaces into KVM and do a single
>>      block copy then to have an inner per-PAGE loop.
> 
> 
> I haven't tried this, but have seen and partly worked sensitivity to
> linear KVA maps not being physically (non)linear enough.  Some CPUs
> and/or memory systems are remarkably sensitive to bank interleave.
> FreeBSD's page coloring doesn't know anything about banks, and
> accidentally starts up with perfect miscoloring for banks.  This can
> make a difference of 30% for bzero bandwidth in benchmarks (not so
> much for bcopy bandwidth, and an insignificant amount for normal use).
> After the system warms up, the coloring becomes random with respect
> to banks, and random coloring works much better than perfect miscoloring.

About page coloring: Don't amd64 CPUs have virtually indexed, physically
tagged caches? If so, wouldn't it make sense to turn off page coloring,
since it's useless for virtually indexed caches (and probably hurts things
a bit)?

-- Suleiman
Received on Thu Jan 18 2007 - 07:04:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:04 UTC