Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Oct 2014 18:37:03 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   [rfc] enumerating device / bus domain information
Message-ID:  <CAJ-VmokF7Ey0fxaQ7EMBJpCbgFnyOteiL2497Z4AFovc%2BQRkTA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi,

Right now we're not enumerating any NUMA domain information about devices.

The more recent intel NUMA stuff has some extra affinity information
for devices that (eventually) will allow us to bind kernel/user
threads and/or memory allocation to devices to keep access local.
There's a penalty for DMAing in/out of remote memory, so we'll want to
figure out what counts as "Local" for memory allocation and perhaps
constrain the CPU set that worker threads for a device run on.

This patch adds a few things:

* it adds a bus_if.m method for fetching the VM domain ID of a given
device; or ENOENT if it's not in a VM domain;
* it adds some hooks to print the numa-domain out of a device if it exists;
* it adds hooks in srat.c to store the original proximity-id values
and uses them to map PXM to FreeBSD VM domain IDs;
* the ACPI code now has bus methods to enumerate which PXM (and thus
which VM domain) a device is on.

The review for it is here:

https://reviews.freebsd.org/D906

Please ignore the vm_phys.c patch; it's purely for experimenting on my
side and won't be committed part of this work.

Thanks,


-a



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokF7Ey0fxaQ7EMBJpCbgFnyOteiL2497Z4AFovc%2BQRkTA>