[PATCH] Mantaining turnstile aligned to 128 bytes in i386 CPUs
Suleiman Souhlal
ssouhlal at FreeBSD.org
Thu Jan 18 08:04:29 UTC 2007
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
More information about the freebsd-arch
mailing list