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>