[lkml]   [2005]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subjectx86_64: 2.6.14-rc4 swiotlb broken
    On x86_64 NUMA boxes, the revert;a=commitdiff;h=6e3254c4e2927c117044a02acf5f5b56e1373053
    meant that swiotlb gets the IOTLB
    memory from pages over 4G (if mem > 4G), which basically renders swiotlb useless, causing
    breakage with devices not capable of DMA beyond 4G. 2.6.13 was (kinda) not
    broken, although the patch titled "Reverse order of bootmem lists" was
    not in 2.6.13, The reason is commit;a=commitdiff;h=6142891a0c0209c91aa4a98f725de0d6e2ed4918
    was not in 2.6.13, PCI_DMA_BUS_IS_PHYS was 1 when no mmu was present, and the block layer did
    the bouncing, never using swiotlb. I guess the right fix is to make sure
    swiotlb gets the right memory. Here is a patch doing that. Tested on IBM
    x460. I hope the patch is ok for ia64s too. I do not have access to ia64


    Signed-off-by: Shai Fultheim <>
    Signed-off-by: Ravikiran Thirumalai <>

    Index: linux-2.6.14-rc4/arch/ia64/lib/swiotlb.c
    --- linux-2.6.14-rc4.orig/arch/ia64/lib/swiotlb.c 2005-10-14 00:06:21.000000000 -0700
    +++ linux-2.6.14-rc4/arch/ia64/lib/swiotlb.c 2005-10-17 00:05:22.000000000 -0700
    @@ -123,7 +123,7 @@
    * Get IO TLB memory from the low pages
    - io_tlb_start = alloc_bootmem_low_pages(io_tlb_nslabs *
    + io_tlb_start = alloc_bootmem_node(NODE_DATA(0), io_tlb_nslabs *
    (1 << IO_TLB_SHIFT));
    if (!io_tlb_start)
    panic("Cannot allocate SWIOTLB buffer");
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at
     \ /
      Last update: 2005-10-17 11:39    [W:0.025 / U:4.596 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site