Skip to contentSkip to conversation

IO-TLB buffers & aic7xxx - new results

Linux-ia64 Martin Wilck 1 participant 1 message Jun 12, 2001

lore
Share & tools
lore
#0 lore raw

Hi,

I have made a small kernel patch that allows me to follow the allocation and deallocation of IO-TLB buffers in the kernel.

First of all, by using a kernel command line parameter "swiotlb24", I have not been able to crash my machine anymore (however, this is for 1 controller and using only 1 disk).

On average, the amount of used IO-TLB buffers on my system is between 60 and 70, each only 1 slot wide (i.e. #buffers = #occupied slots).

If I do my usual "make install" test for parted, I see the a few allocations, but not many. Then after a few seconds when the dirty buffers are flashed (I can make this happen immediately by doing "make install; sync"), the IO-TLB usage peaks at 450 buffers occupying 1470 slots, i.e. the driver allocates ~400 buffers without intermediate deallocation, and most of them are 4 slots wide. It is interesting that more than 253 buffers seem to be requested at the same time.

What I'll do next is to try a heavier load on more than a single disk, and perhaps several controllers at once.

At least this way I can at least give recommendations for how large to set the swiotlb parameter with a given number of controllers.

If there's interest, I'll happily send my patch tomorrow.

I cannot see how the heuristic for allocating IO-TLB space could be improved, given that at the moment when the memory is allocated the kernel has no way to know how many 32-bit controllers populate its PCI slots.

Cheers,
Martin

-- Martin Wilck <[email protected]> FSC EP PS DS1, Paderborn Tel. +49 5251 8 15113