On Fri, Dec 23, 2005 at 01:42:52PM +0100, Manfred Spraul wrote:
> Hi,
> 
> Andi Kleen wrote:
> 
> >It shouldn't make any difference on !SLAB_DEBUG kernels because kmalloc
> >will pad typical mtus (1.5k, 9k) to 2k or 16k.  But at least the 
> >network driver is usable now again with slab debugging enabled.
> >
> > 
> >
> Very odd. slab debugging doesn't affect the padding. Even with slab 
> debugging enabled, kmalloc pads allocations to 2k.

Hmm good point. But it definitely helps here. 

> 1) Ayaz - are there any known problems that might explain the behavior?
> The driver allocates 1564+64 bytes memory for each rx buffer, and sets 
> the FlagLen field to 1564. Is it possible that the nic writes 80 bytes 
> beyond the end of the rx buffer?

It's more than 82 bytes but less than 86. I didn't run the binary
search further.

> 2) Andi - does your system have more than 4 GB memory? As I noticed 
> yesterday, all pci_map_single() calls from the rx codepath actually 
> called pci_map_single() with size==0.

Yes, it has and I'm also running with iommu=force which forces
all IO through the IOMMU. But the x86-64 AGP IOMMU code
always rounds up to a page, so even with 0 size it should 
be ok as long as the MTU+overhead is <4K. It might make a difference
with swiotlb, but I didn't use that.


-Andi
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to