Re: [discuss] Re: x86_64: 2.6.14-rc4 swiotlb broken

From: Yasunori Goto
Date: Mon Oct 17 2005 - 23:36:31 EST


> > So, just "use NODE(0)" is not enough hack for our machine.
> > If "use NODE(0)" is selected, kernel must sort pgdat link and
> > node id by memory address. I think that hot add code will be a
> > bit messy instead.
>
> Yasunori-san,
> Does this patch work on your boxes instead? (For 2.6.14)
> http://marc.theaimsgroup.com/?l=linux-kernel&m=112959469914681&w=2

Not yet. But could you change this line at least?

+
+ for_each_node(node) {
+ io_tlb_start = alloc_bootmem_node(NODE_DATA(node), iotlbsz);

for_each_node() loop walks around node_possible_map which includes
"offlined" node.
Please use for_each_online_node() instead. Then, I'll check it. :-)



And I understand why my patch doesn't work on your box by
your patch. (Thanks!)
x86-64's DMA zone is smaller area than 16MB.
But swiotlb requires the area which is smaller than 4GB.
There is no interface to describe its difference.

I think your patch looks reasonable for 2.6.14 to be produced ASAP.
This is less impact than mine.

However, kernel should have new interface like alloc_bootmmem_low32().
This problem will occur not only by swiotlb.

I'll rewrite my patch to make it. If it is applied at 2.6.15,
I'll be glad.

Thanks.

--
Yasunori Goto

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/