Re: NFS root with cache on

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




>> Is anyone else having trouble with NFS root on
>> the 2.4.0 kernel?  It won't come up with the
>> KSEG0 cache on unless I pepper the network driver
>> with flush calls.
> 
> 
> That's expected for most old network drivers that don't yet use the
> new PCI DMA API documented in Documentation/DMA-mapping.txt.
> 
> What driver is this?

Both the stock 2.4.0 tulip and eepro100 drivers.  The
problem doesn't happen when I go back to 2.3.99pre8.

In the tulip driver, both the rx and tx ring descriptors
are adjusted with pci_alloc_consistent() and are only
touched through KSEG1.

But I must be totally clueless because in both kernels
tulip_rx() calls pci_unmap_single() which does nothing.
But the skb data pointers all point to KSEG0.  With
cache on, how in the world will the kernel be able to
see what just got DMA'd into the skb?

Another thing that has been haunting me is that
in 2.3.99pre8, kmalloc() has and #ifdef __mips__ that
flushes the cache and bumps the address up to KSEG1.
This is gone in 2.4.0, but from what I can tell, this
case didn't happen for skb allocations (i.e. dev_alloc_skb)
because they only set GFP_ATOMIC, and not GFP_DMA.

Quinn





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux