16 Feb, 2011
1 commit
-
The functions used during NUMA initialization - *_numa_init() and
*_scan_nodes() - have different arguments and return values. Unify
them such that they all take no argument and return 0 on success and
-errno on failure. This is in preparation for further NUMA init
cleanups.Signed-off-by: Tejun Heo
Cc: Yinghai Lu
Cc: Brian Gerst
Cc: Cyrill Gorcunov
Cc: Shaohui Zheng
Cc: David Rientjes
Cc: Ingo Molnar
Cc: H. Peter Anvin
12 Jan, 2011
1 commit
-
As pointed out by Linus CONFIG_X86 in drivers/acpi/numa.c is
ugly.Builds and boots on ia64 (both normally and with maxcpus=8 to limit
the number of cpus).Signed-off-by: Tony Luck
Acked-by: Yinghai Lu
Cc: Linus Torvalds
Cc: Wu Fengguang
Cc: Bjorn Helgaas
Cc: Len Brown
LKML-Reference:
Signed-off-by: Ingo Molnar
24 Dec, 2010
1 commit
-
Recent Intel new system have different order in MADT, aka will list all thread0
at first, then all thread1.
But SRAT table still old order, it will list cpus in one socket all together.If the user have compiled limited NR_CPUS or boot with nr_cpus=, could have missed
to put some cpus apic id to node mapping into apicid_to_node[].for example for 4 sockets system with 64 cpus with nr_cpus=32 will get crash...
[ 9.106288] Total of 32 processors activated (136190.88 BogoMIPS).
[ 9.235021] divide error: 0000 [#1] SMP
[ 9.235315] last sysfs file:
[ 9.235481] CPU 1
[ 9.235592] Modules linked in:
[ 9.245398]
[ 9.245478] Pid: 2, comm: kthreadd Not tainted 2.6.37-rc1-tip-yh-01782-ge92ef79-dirty #274 /Sun Fire x4800
[ 9.265415] RIP: 0010:[] [] select_task_rq_fair+0x4f0/0x623
...
[ 9.645938] RIP [] select_task_rq_fair+0x4f0/0x623
[ 9.665356] RSP
[ 9.665568] ---[ end trace 2296156d35fdfc87 ]---So let just parse all cpu entries in SRAT.
Also add apicid checking with MAX_LOCAL_APIC, in case We could out of boundaries of
apicid_to_node[].it fixes following bug too.
https://bugzilla.kernel.org/show_bug.cgi?id=22662-v2: expand to 32bit according to hpa
need to add MAX_LOCAL_APIC for 32bitReported-and-Tested-by: Wu Fengguang
Reported-by: Bjorn Helgaas
Tested-by: Myron Stowe
Signed-off-by: Yinghai Lu
LKML-Reference:
Signed-off-by: H. Peter Anvin
15 Aug, 2010
1 commit
-
Some minor improvements in error handling, but overall it was mostly dead
code.Signed-off-by: Andi Kleen
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
04 Apr, 2010
1 commit
-
pxms are mapped to low node ids to maintain generic kernel use of
functions such as pxm_to_node() that are used to determine device
affinity. Otherwise, there is no pxm-to-node and node-to-pxm matching
rule for x86_64 users of NUMA emulation where a single pxm may be bound
to multiple NUMA nodes.Signed-off-by: David Rientjes
Signed-off-by: Len Brown
18 Feb, 2010
1 commit
-
On x86, before prefill_possible_map(), nr_cpu_ids will be NR_CPUS aka
CONFIG_NR_CPUS.Add nr_cpus= to set nr_cpu_ids. so we can simulate cpus
LKML-Reference:
Acked-by: Linus Torvalds
Signed-off-by: H. Peter Anvin
Cc: Tony Luck
17 Dec, 2009
1 commit
16 Dec, 2009
1 commit
-
NUMA_NO_NODE has been exported globally and thus it can replace NID_INVAL
in the acpi code.Also removes the unused acpi_unmap_pxm_to_node() function.
[akpm@linux-foundation.org: coding-style fixes]
Cc: Cyrill Gorcunov
Cc: Lee Schermerhorn
Reviewed-by: Christoph Lameter
Signed-off-by: David Rientjes
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
13 Oct, 2009
1 commit
-
This is the counterpart to "x86: export k8 physical topology" for
SRAT. It is not as invasive because the acpi code already seperates
node setup into detection and registration steps, with the
exception of registering e820 active regions in
acpi_numa_memory_affinity_init(). This is now moved to
acpi_scan_nodes() if NUMA emulation is disabled or deferred.acpi_numa_init() now returns a value which specifies whether an
underlying SRAT was located. If so, that topology can be used by
the emulation code to interleave emulated nodes over physical nodes
or to register the nodes for ACPI.acpi_get_nodes() may now be used to export the srat physical
topology of the machine for NUMA emulation.Signed-off-by: David Rientjes
Cc: Andreas Herrmann
Cc: Yinghai Lu
Cc: Balbir Singh
Cc: Ankita Garg
Cc: Len Brown
LKML-Reference:
Signed-off-by: Ingo Molnar
29 Aug, 2009
1 commit
-
Linux/ACPI core files using internal.h all PREFIX "ACPI: ",
however, not all ACPI drivers use/want it -- and they
should not have to #undef PREFIX to define their own.Add GPL commment to internal.h while we are there.
This does not change any actual console output,
asside from a whitespace fix.Signed-off-by: Len Brown
04 Apr, 2009
1 commit
-
All logical processors with APIC ID values of 255 and greater will have their
APIC reported through Processor X2APIC structure (type-9 entry type) and all
logical processors with APIC ID less than 255 will have their APIC reported
through legacy Processor Local APIC (type-0 entry type) only. This is the
same case even for NMI structure reporting.The Processor X2APIC Affinity structure provides the association between the
X2APIC ID of a logical processor and the proximity domain to which the logical
processor belongs.For OSPM, Procssor IDs outside the 0-254 range are to be declared as Device()
objects in the ACPI namespace.Signed-off-by: Suresh Siddha
Signed-off-by: Len Brown
16 Mar, 2009
1 commit
-
It is hardly (if ever) possible but in case of broken _PXM entry we could
reach out of pxm_to_node_map array bounds in acpi_map_pxm_to_node() call.Signed-off-by: Cyrill Gorcunov
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
31 Dec, 2008
1 commit
-
External driver files should not include any private acpica headers.
Signed-off-by: Lin Ming
Signed-off-by: Len Brown
11 Oct, 2008
1 commit
-
As of version 2.0, ACPI can return 64-bit integers. The current
acpi_evaluate_integer only supports 64-bit integers on 64-bit platforms.
Change the argument to take a pointer to an acpi_integer so we support
64-bit integers on all platforms.lenb: replaced use of "acpi_integer" with "unsigned long long"
lenb: fixed bug in acpi_thermal_trips_update()Signed-off-by: Matthew Wilcox
Signed-off-by: Len Brown
17 Jul, 2008
1 commit
-
Synchronized tables with current specifications.
Signed-off-by: Bob Moore
Signed-off-by: Lin Ming
Signed-off-by: Len Brown
Signed-off-by: Andi Kleen
12 Jun, 2008
1 commit
-
This is a SLIT sanity checking patch. It moves slit_valid() function to
generic ACPI code and does sanity checking for both x86 and ia64. It sets up
node_distance with LOCAL_DISTANCE and REMOTE_DISTANCE when hitting invalid
SLIT table on ia64. It also cleans up unused variable localities in
acpi_parse_slit() on x86.Signed-off-by: Fenghua Yu
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
07 Feb, 2008
1 commit
-
This patch contains the following possible cleanups:
- make the following needlessly global code static:
- drivers/acpi/bay.c:dev_attr_eject
- drivers/acpi/bay.c:dev_attr_present
- drivers/acpi/dock.c:dev_attr_docked
- drivers/acpi/dock.c:dev_attr_flags
- drivers/acpi/dock.c:dev_attr_uid
- drivers/acpi/dock.c:dev_attr_undock
- drivers/acpi/pci_bind.c:acpi_pci_unbind()
- drivers/acpi/pci_link.c:acpi_link_lock
- drivers/acpi/sbs.c:acpi_sbs_callback()
- drivers/acpi/sbshc.c:acpi_smbus_transaction()
- drivers/acpi/sleep/main.c:acpi_sleep_prepare()
- #if 0 the following unused global functions:
- drivers/acpi/numa.c:acpi_unmap_pxm_to_node()
- remove the following unused EXPORT_SYMBOL's:
- acpi_register_gsi
- acpi_unregister_gsi
- acpi_strict
- acpi_bus_receive_event
- register_acpi_bus_type
- unregister_acpi_bus_type
- acpi_os_printf
- acpi_os_sleep
- acpi_os_stall
- acpi_os_read_pci_configuration
- acpi_os_create_semaphore
- acpi_os_delete_semaphore
- acpi_os_wait_semaphore
- acpi_os_signal_semaphore
- acpi_os_signal
- acpi_pci_irq_enable
- acpi_get_pxmSigned-off-by: Adrian Bunk
Acked-by: Alexey Starikovskiy
Signed-off-by: Len Brown
14 Dec, 2007
1 commit
-
for sn2_defconfig:
WARNING: vmlinux.o(.text+0x4b8601): Section mismatch: reference to .init.data:node_to_pxm_map (between '__acpi_map_pxm_to_node' and 'acpi_get_pxm')
WARNING: vmlinux.o(.text+0x4b8741): Section mismatch: reference to .init.data:pxm_to_node_map (between 'acpi_map_pxm_to_node' and 'acpi_get_node')Signed-off-by: Jan Beulich
Signed-off-by: Len Brown
22 Jul, 2007
2 commits
-
For NUMA emulation, our SLIT should represent the true NUMA topology of the
system but our proximity domain to node ID mapping needs to reflect the
emulated state.When NUMA emulation has successfully setup fake nodes on the system, a new
function, acpi_fake_nodes() is called. This function determines the proximity
domain (_PXM) for each true node found on the system. It then finds which
emulated nodes have been allocated on this true node as determined by its
starting address. The node ID to PXM mapping is changed so that each fake
node ID points to the PXM of the true node that it is located on.If the machine failed to register a SLIT, then we assume there is no special
requirement for emulated node affinity so we use the default LOCAL_DISTANCE,
which is newly exported to this code, as our measurement if the emulated nodes
appear in the same PXM. Otherwise, we use REMOTE_DISTANCE.PXM_INVAL and NID_INVAL are also exported to the ACPI header file so that we
can compare node_to_pxm() results in generic code (in this case, the SRAT
code).Cc: Len Brown
Signed-off-by: David Rientjes
Signed-off-by: Andrew Morton
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
In acpi_scan_nodes(), we immediately return -1 if acpi_numa
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds
02 Jun, 2007
1 commit
-
Last of the "Section mismatch" errors from ia64 builds! acpi_map_pxm_to_node()
is defined with attribute __cpuinit, but is called by "normal" kernel functions
acpi_getnode() and acpi_map_cpu2node().Commit f363d16fbb9374c0bd7f2757d412c287169094c9 moved the data structures on
which this routine operates from __cpuinitdata to regular memory, so this
routine can also move out of init space.Signed-off-by: Tony Luck
Signed-off-by: Len Brown
17 May, 2007
1 commit
-
Strip __cpuinit[data] from Node PXM routines and supporting data
structures. Also make pxm_to_node_map and node_to_pxm_map local to the
numa acpi module.This fixes a bug triggered by the following conditions:
- boot on a machine with a SLIT table defined
- kernel is configured w/ CONFIG_HOTPLUG_CPU=n
- cat /sys/devices/system/node/node*/distance
This will cause an oops by calling into a freed memory section.In particular, on x86_64, __node_distance calls node_to_pxm().
Signed-off-by: Aaron Durbin
Cc: Len Brown
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
09 May, 2007
2 commits
-
This is to fix unnecessary __meminit definition. These are exported for
kernel modules.I compiled on ia64/x86-64 with memory hotplug on/off.
Signed-off-by: Yasunori Goto
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This is to fix many section mismatches of code related to memory hotplug.
I checked compile with memory hotplug on/off on ia64 and x86-64 box.Signed-off-by: Yasunori Goto
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
13 Feb, 2007
4 commits
-
acpi_table_parse_madt_family() is also used to parse SRAT entries.
So re-name it to acpi_table_parse_entries(), and re-name the
madt-specific variables within it accordingly.cosmetic only.
Signed-off-by: Len Brown
-
acpi_madt_entry_handler() is also used for the SRAT,
so re-name it acpi_table_entry_handler().cosmetic only.
Signed-off-by: Len Brown
-
Returning count for tables that are supposed to be unique
was useless and confusing.Signed-off-by: Len Brown
-
cosmetic only
Make "module name" actually match the file name.
Invoke with ';' as leaving it off confuses Lindent and gcc doesn't care.
Fix indentation where Lindent did get confused.Signed-off-by: Len Brown
03 Feb, 2007
1 commit
-
Signed-off-by: Len Brown
14 Oct, 2006
1 commit
-
Signed-off-by: Jan Engelhardt
Signed-off-by: Len Brown
02 Jul, 2006
1 commit
-
a few invocations appeared due to the SBS and other patches.
Signed-off-by: Len Brown
01 Jul, 2006
1 commit
-
Signed-off-by: Jörn Engel
Signed-off-by: Adrian Bunk
28 Jun, 2006
1 commit
-
This is to find node id from acpi's handle of memory_device in DSDT. _PXM for
the new node can be found by acpi_get_pxm() by using new memory's handle. So,
node id can be found by pxm_to_nid_map[].This patch becomes simpler than v2 of node hot-add patch.
Because old add_memory() function doesn't have node id parameter.
So, kernel must find its handle by physical address via DSDT again.
But, v3 just give node id to add_memory() now.Signed-off-by: Yasunori Goto
Cc: Dave Hansen
Cc: "Brown, Len"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
23 Jun, 2006
1 commit
-
Consolidate the various arch-specific implementations of pxm_to_node() and
node_to_pxm() into a single generic version.Signed-off-by: Yasunori Goto
Cc: "Luck, Tony"
Cc: Andi Kleen
Cc: Dave Hansen
Cc: "Brown, Len"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 Aug, 2005
1 commit
-
Signed-off-by: Len Brown
17 Apr, 2005
1 commit
-
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.Let it rip!