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

Re: [Xen-devel] USB virt status --- Help please!!!



Hi,

On Mon, 2005-11-14 at 18:42 +0000, Keir Fraser wrote:

> > That got fixed that by adding an arch-specific __alloc_skb which 
> > avoided
> > crossing page boundaries by disabling CONFIG_DEBUG_SLAB for the skb
> > caches.  But that fix is also something that I doubt maintainers will
> > allow to go upstream.  I wonder if we'll find enough such special cases
> > that we really want to have a swiotlb available, just in case, at all
> > times?
> 
> swiotlb performance is pretty poor since it involves memcpy. The 
> alloc_skb fix was pretty clean, if we're allowed an arch hook for 
> alloc_skb. We didn;t need to hack the slab allocator itself.

There are two different questions --- whether we should rely on swiotlb
in the general case, and whether we should have it available
just-in-case for edge cases.

I'm not suggesting that we fix the networking problem via swiotlb.  But
that problem does make me wonder what other edge-cases remain lurking
that may bite users later; and if they exist, panicing the kernel when
we get an IO we can't translate directly is a lot worse than falling
back to a slow swiotlb path.

The fact is, on 2.6 the slab allocator can hand out objects (even
sub-pagesized ones) that cross page boundaries.  If some driver happens
to allocate its own objects from a slab cache and run pci_map_single()
on them, it works fine on 2.6 mainline but breaks on Xen w/o swiotlb.

The alloc_skb is just avoiding one special case of this.  It's an
important special case, sure, but to be robust, might we not want to
have a minimal swiotlb cache available at all times as fallback?

--Stephen



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.