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@xxxxxxxxxx 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