Date: Fri, 22 Dec 2006 15:31:35 +1300 From: Mark Kirkwood <markir@paradise.net.nz> To: David Xu <davidxu@freebsd.org> Cc: freebsd-performance@freebsd.org Subject: Re: Cached file read performance Message-ID: <458B4387.9090409@paradise.net.nz> In-Reply-To: <458B3E0C.6090104@freebsd.org> References: <458B3651.8090601@paradise.net.nz> <458B3E0C.6090104@freebsd.org>
index | next in thread | previous in thread | raw e-mail
David Xu wrote:
> Mark Kirkwood wrote:
>> I recently did some testing on the performance of cached reads using
>> two (almost identical) systems, one running FreeBSD 6.2PRE and the
>> other running Gentoo Linux - the latter acting as a control. I
>> initially started a thread of the same name on -stable, but it was
>> suggested I submit a mail here.
>>
>> My background for wanting to examine this is that I work with
>> developing database software (postgres internals related) and cached
>> read performance is pretty important - since we typically try hard to
>> encourage cached access whenever possible.
>>
>> Anyway on to the results: I used the attached program to read a cached
>> 781MB file sequentially and randomly with a specified block size (see
>> below). The conclusion I came to was that our (i.e FreeBSD) cached
>> read performance (particularly for smaller block sizes) could perhaps
>> be improved... now I'm happy to help in any way - the machine I've got
>> running STABLE can be upgraded to CURRENT in order to try out patches
>> (or in fact to see if CURRENT is faster at this already!)...
>>
>> Best wishes
>>
>> Mark
>>
>
> I suspect in such a test, memory copying speed will be a key factor,
> I don't have number to back up my idea, but I think Linux has lots
> of tweaks, such as using MMX instruction to copy data.
>
> Regards,
> David Xu
>
David - very interesting - checking 2.6.18 sources I see:
arch/i386/lib/memcpy.c:7->
void *memcpy(void *to, const void *from, size_t n)
{
#ifdef CONFIG_X86_USE_3DNOW
return __memcpy3d(to, from, n);
#else
return __memcpy(to, from, n);
#endif
}
If I understand this correctly, I need CONFIG_X86_USE_3DNOW (or perhaps
CONFIG_M586MMX) set in my Linux kernel config to be using these....
which I don't appear to have (I'll do some more digging and see if maybe
profiling tells us anything useful).
Cheers
Mark
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?458B4387.9090409>
