[parisc-linux] traps.c 2.4 alignement [was: 2.6.0-test6-pa6 on b2k finaly crash]

Joel Soete soete.joel@tiscali.be
Sun, 12 Oct 2003 13:28:15 +0000


Hi Grant,

Grant Grundler wrote:
> On Sun, Oct 05, 2003 at 05:07:21PM +0000, Joel Soete wrote:
> 
>>hmm don't think if it's related but just in case:
>>I was just copying my kernel tree with 'tar cslpf - 
>>linux-2.6.0-test6-pa6 | ( cd Work ; tar xslpf -)' when
>>
>>Kernel panic: drivers/parisc/ccio-dma.c: ccio_alloc_range() I/O M.
> 
> 
> You ran out of mapping resources.
>         panic(__FILE__ ": %s() I/O MMU is out of mapping resources.\n",
> 	              __FUNCTION__);
> 
> 
>>I just retry same operation on the same system with same kernel but 
>>doesn't occurs a second time?
> 
> 
> Not surprising. The bitmap search will fail if everything gets
> mapped "sparsely" or we try to search for a large mapping (>32K, ie more
> than 8 pages) but can't find it. If this is repeatible problem, change
> 
> 	/* Ratio of Host MEM to IOV Space size */
> 	static unsigned long ccio_mem_ratio = 4;
> 
> in drivers/parisc/ccio-dma.c (2.6 kernel) to 2.
> 

Well the pb re-occurs but, as mentioned previously, it is difficult to 
reproduce the exact circumstance of this occurence?
So test this change of ccio_mem_ratio = 4 to 2 and seems to works better :)

> One patch would be welcome here: figure out a threshold when
> allocations for single pages should share an 8-page "chunk"
> (effectively one TLB entry).  E.g. differentiate between LAN
> and SCSI requests.  LAN typically wants 1 entry (1500 byte MTU)
> unless someone starts testing "Large Send" and is very "linear"
> in it's DMA behavior (one DMA stream at a time).  SCSI typically
> wants 64k/128k (16 or 32 entries), has lots of those, and any one
> of those could be the "next" DMA stream. ie thrashing the IO TLB
> is much more likely with SCSI than LAN and we should allocate
> entries differently based on that.
> 
> The patch might be something like:
> 	if ((pci_dev->class & MASK) == PCI_BASE_CLASS_NETWORK) {
> 	...
> 
> in the right places to use a different (and new?) search loop.
> 

Will try to understand and see what can i do.

Thanks again,
	Joel