Memory Performance Issue with Fedora Core 2 Kernels

James Wilkinson james at westexe.demon.co.uk
Thu Jul 29 16:18:26 UTC 2004


James Foris wrote:
> I have run into an issue with memory bandwidth using the Fedora Core
> 2 kernels and I need help.  I don't know what is wrong, but something
> killed performance of my custom driver when I ported it from RedHat 7.3
> to Fedora Core 2.  I believe I have narrowed it down to the kernel.
>
> My driver requires a large amount of contiguous physical memory for
> DMA from a PCI device.  I use the 'mem=YYY' command line parameter to
> reserve the top of physical RAM for my driver.  Then I allow mapping
> via mmap() calls to user space.  The user space app then uses this
> pointer to save the data to disk.
>
> <snip> 
>
> I have tried this on several platforms and kernels and the results vary,
> but the common denominator seems to be:
> 
>    Fedora kernel + 32-bit Intel = poor performance (see below)

I suggested:
> Wild guess: have you tried turning off the 4G+4G support in the kernel
> (requires a recompile)?

James replied
> I have rebuilt now w/o several patches; 4Kstacks, netdump, and 4g/4g.
> 
> The problem has gone away.  I suspect that 4G/4G is broken.

It sounds more "broken as designed", to be honest. It sounds as though
your setup is doing a *lot* of context switches between user mode and
kernel mode. The basic trade-off that 4G/4G flushes the TLB each
context switch, so that kernel and user both get nearly 4 GB, and TLB
flushes are expensive.

See
http://lwn.net/Articles/39283/
and
http://kerneltrap.org/node/view/2891

May I recommend fedora-devel-list at redhat.com or the LKML? You might not
have much done about it, but they might be able to recommend
workarounds.

At the very least, it would be good if real-life problems with 4G/4G are
reported.

James.

-- 
E-mail address: james@ | Q. "Why can't I print?"
westexe.demon.co.uk    | A. "Because you're not a printer."
                       |     -- Stephen Judd





More information about the fedora-list mailing list