Messages in this thread Patch in this message | | | Date | Mon, 14 Jan 2002 08:23:41 +0100 | From | Jens Axboe <> | Subject | Re: BIO Usage Error or Conflicting Designs |
| |
On Sun, Jan 13 2002, Manfred Spraul wrote: > > > > Is this with the highmem debug stuff enabled? That's the only way I can > > see this BUG triggering, otherwise q->bounce_pfn _cannot_ be smaller > > than the max_pfn. > > > Have you tested that? > > Unless I misread arch/i386/kernel/setup.c, line 740 to 760, max_pfn is > the upper end of the highmem area, if highmem is configured. > For non-highmem setup, it's set to min(system_memory, 4 GB). > It was a local variable within setup_arch, and someone made it a global > variable. > > I.e. max_pfn is 1 GB with Andre's setup. > > His patch doesn't touch the bounce limit, the default limit from > blk_queue_make_request() is used: BLK_BOUNCE_HIGH, which is max_low_pfn. > > max_low_pfn is 896 MB. > > --> BUG in create_bounce(), because a request comes in with a bounce > limit less than the total system memory, and no highmem configured.
Indeed, I misread the max_pfn stuff when I added that.
--- /opt/kernel/linux-2.5.2-pre11/drivers/block/ll_rw_blk.c Thu Jan 10 09:56:52 2002 +++ drivers/block/ll_rw_blk.c Mon Jan 14 02:21:50 2002 @@ -1711,7 +1705,11 @@ printk("block: %d slots per queue, batch=%d\n", queue_nr_requests, batch_requests); blk_max_low_pfn = max_low_pfn; +#ifdef CONFIG_HIGHMEM blk_max_pfn = max_pfn; +#else + blk_max_pfn = max_low_pfn; +#endif #if defined(CONFIG_IDE) && defined(CONFIG_BLK_DEV_IDE) ide_init(); /* this MUST precede hd_init */ --- /opt/kernel/linux-2.5.2-pre11/mm/highmem.c Thu Jan 10 09:56:53 2002 +++ mm/highmem.c Mon Jan 14 02:20:53 2002 @@ -367,12 +367,6 @@ if (pfn >= blk_max_pfn) return; -#ifndef CONFIG_HIGHMEM - /* - * should not hit for non-highmem case - */ - BUG(); -#endif bio_gfp = GFP_NOHIGHIO; pool = page_pool; } else { -- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |