From: Andi Kleen on
Eric Dumazet <eric.dumazet(a)gmail.com> writes:

> David Miller a �crit :
>> From: Eric Dumazet <eric.dumazet(a)gmail.com>
>> Date: Tue, 24 Nov 2009 19:26:15 +0100
>>
>>> It seems complex to me, maybe optimal thing would be to use a NUMA policy to
>>> spread vmalloc() allocations to all nodes to get a good bandwidth...
>>
>> vmalloc() and sk_buff's don't currently mix and I really don't see us
>> every allowing them to :-)
>
> I think Peter was referring to tx/rx rings buffers, not sk_buffs.
>
> They (ring buffers) are allocated with vmalloc() at driver init time.

They are typically allocated with dma_alloc_coherent(), which does
allocate a continuous area. In theory you could do interleaving
with IOMMus, but just putting it on the same node as the device
is probably better.

-Andi
--
ak(a)linux.intel.com -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Andi Kleen on
Works here
>
> dmesg | grep -i node
> [ 0.000000] SRAT: PXM 0 -> APIC 0 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 1 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 2 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 3 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 4 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 5 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 6 -> Node 0
> [ 0.000000] SRAT: PXM 0 -> APIC 7 -> Node 0

You seem to only have 8 CPUs (one socket) Normally a dual socket nehalem
should have 16 with HyperThreading enabled.

For some reason the BIOS is not reporting the other CPU.

You could double check with acpidmp / iasl -d if that's
what the BIOS really reports, but normally it should work.

> [ 0.000000] SRAT: Node 0 PXM 0 0-e0000000
> [ 0.000000] SRAT: Node 0 PXM 0 100000000-220000000
> [ 0.000000] SRAT: Node 1 PXM 1 220000000-420000000

-Andi

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Andi Kleen on
On Wed, Nov 25, 2009 at 12:35:03PM +0100, Eric Dumazet wrote:
> > You seem to only have 8 CPUs (one socket) Normally a dual socket nehalem
> > should have 16 with HyperThreading enabled.
> >
> > For some reason the BIOS is not reporting the other CPU.
> >
> > You could double check with acpidmp / iasl -d if that's
> > what the BIOS really reports, but normally it should work.
> >
>
> Good Lord, I had a CONFIG_NR_CPUS=16 in my .config.

That should be enough for a two socket (2S x 4C x 2T) today,
but of course that will eventually change too.

> Changing to to 32 or 64 seems better :)

That looks weird. It should have worked with CONFIG_NR_CPUS==16 too,
because you only have 16 CPUs and the NR_CPUS should affect APIC
ranges etc.

Something still fishy. I would properly report it.

BTW kernel should give some error message in any case when
there are not enough CPUs I guess.

-Andi

--
ak(a)linux.intel.com -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/