Re: [RFC] vmalloc with the ability to specify a node

From: Christoph Lameter <clameter_at_engr.sgi.com>
Date: 2005-06-02 11:56:37
On Wed, 1 Jun 2005, Grant Grundler wrote:

> grundler@gsyprf3:/usr/src/linux-2.6$ fgrep vmalloc drivers/net/*/*c
> drivers/net/e1000/e1000.mod.c:  { 0xd6ee688f, "vmalloc" },
> drivers/net/e1000/e1000_main.c: txdr->buffer_info = vmalloc(size);
> drivers/net/e1000/e1000_main.c: rxdr->buffer_info = vmalloc(size);
> drivers/net/ixgb/ixgb.mod.c:    { 0xd6ee688f, "vmalloc" },
> drivers/net/ixgb/ixgb_main.c:   txdr->buffer_info = vmalloc(size);
> drivers/net/ixgb/ixgb_main.c:   rxdr->buffer_info = vmalloc(size);
> grundler@gsyprf3:/usr/src/linux-2.6$ fgrep vmalloc drivers/scsi/*/*c
> drivers/scsi/qla2xxx/qla2xxx.mod.c:     { 0xd6ee688f, "vmalloc" },
> drivers/scsi/qla2xxx/qla_os.c:#include <linux/vmalloc.h>
> drivers/scsi/qla2xxx/qla_os.c:                  ha->fw_dump_buffer = (char *)vmalloc(dump_size);

Thanks. We use the qla2xxx so it would also help us.
 
> Could someone explain to me why this is a bad thing on NUMA machines?

Because the vmalloc now allocated memory from the node of the cpu that 
is executing the initialization code and not memory on the node where the 
device is located. Its best to service the device on the node of the device 
accessing device local memory. vmalloc_node would allow to specify where 
to place device control structures.

> I assume it has something to do with mem locality and how the memory
> is used.

Correct.
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Wed Jun 1 21:57:52 2005

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:39 EST