public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Q: blk_queue_bounce_limit
@ 2002-01-13 10:22 Manfred Spraul
  2002-01-14  7:24 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Manfred Spraul @ 2002-01-13 10:22 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

I think the selection of the ISA pool in blk_queue_bounce_limit is
wrong:
it switches to the ISA pool if the requested DMA address is equal to
16 MB. I think it must switch if the requested bounce limit is smaller
than max_low_pfn.

<<<<<<<
-	if (dma_addr == BLK_BOUNCE_ISA) {
+	if (bounce_pfn < blk_max_low_pfn) {
+		BUG_ON(dma_addr < BLK_BOUNCE_ISA);
                init_emergency_isa_pool();
                q->bounce_gfp = GFP_NOIO | GFP_DMA;
        } else
                q->bounce_gfp = GFP_NOHIGHIO;
<<<

Usually both lines are identical, except:
- If only 16 MB are installed, then bouncing to ISA is never needed.
- There could be broken devices that only support DMA to < 512 MB.
For such a device no bounce it needed if less than 512 MB is installed,
and if more is installed we must bounce to ISA. (since we don't have
a 512MB zone).
- Bouncing to less that 16 MB is not supported.

--
	Manfred

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Q: blk_queue_bounce_limit
  2002-01-13 10:22 Q: blk_queue_bounce_limit Manfred Spraul
@ 2002-01-14  7:24 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2002-01-14  7:24 UTC (permalink / raw)
  To: Manfred Spraul; +Cc: linux-kernel

On Sun, Jan 13 2002, Manfred Spraul wrote:
> I think the selection of the ISA pool in blk_queue_bounce_limit is
> wrong:
> it switches to the ISA pool if the requested DMA address is equal to
> 16 MB. I think it must switch if the requested bounce limit is smaller
> than max_low_pfn.
> 
> <<<<<<<
> -	if (dma_addr == BLK_BOUNCE_ISA) {
> +	if (bounce_pfn < blk_max_low_pfn) {
> +		BUG_ON(dma_addr < BLK_BOUNCE_ISA);
>                 init_emergency_isa_pool();
>                 q->bounce_gfp = GFP_NOIO | GFP_DMA;
>         } else
>                 q->bounce_gfp = GFP_NOHIGHIO;
> <<<
> 
> Usually both lines are identical, except:
> - If only 16 MB are installed, then bouncing to ISA is never needed.
> - There could be broken devices that only support DMA to < 512 MB.
> For such a device no bounce it needed if less than 512 MB is installed,
> and if more is installed we must bounce to ISA. (since we don't have
> a 512MB zone).
> - Bouncing to less that 16 MB is not supported.

Yes it's a grey area, I'll add your patch.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-01-14  7:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-13 10:22 Q: blk_queue_bounce_limit Manfred Spraul
2002-01-14  7:24 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox