Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 23755
b: refs/heads/master
c: 3ad5ef8
h: refs/heads/master
i:
  23753: 0bba2b7
  23751: c0298b6
v: v3
  • Loading branch information
Jack Steiner authored and Tony Luck committed Mar 24, 2006
1 parent 748e9c1 commit 7d8aecb
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b354a8388891adc5dc5e5fb0130f000152f3fb94
refs/heads/master: 3ad5ef8b9d0d0cc2d4b2c63e766ef903d482dfc7
32 changes: 28 additions & 4 deletions trunk/arch/ia64/kernel/acpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,26 @@ int __devinitdata pxm_to_nid_map[MAX_PXM_DOMAINS];
int __initdata nid_to_pxm_map[MAX_NUMNODES];
static struct acpi_table_slit __initdata *slit_table;

static int get_processor_proximity_domain(struct acpi_table_processor_affinity *pa)
{
int pxm;

pxm = pa->proximity_domain;
if (ia64_platform_is("sn2"))
pxm += pa->reserved[0] << 8;
return pxm;
}

static int get_memory_proximity_domain(struct acpi_table_memory_affinity *ma)
{
int pxm;

pxm = ma->proximity_domain;
if (ia64_platform_is("sn2"))
pxm += ma->reserved1[0] << 8;
return pxm;
}

/*
* ACPI 2.0 SLIT (System Locality Information Table)
* http://devresource.hp.com/devresource/Docs/TechPapers/IA64/slit.pdf
Expand All @@ -443,27 +463,31 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
void __init
acpi_numa_processor_affinity_init(struct acpi_table_processor_affinity *pa)
{
int pxm;

if (!pa->flags.enabled)
return;

pxm = get_processor_proximity_domain(pa);

/* record this node in proximity bitmap */
pxm_bit_set(pa->proximity_domain);
pxm_bit_set(pxm);

node_cpuid[srat_num_cpus].phys_id =
(pa->apic_id << 8) | (pa->lsapic_eid);
/* nid should be overridden as logical node id later */
node_cpuid[srat_num_cpus].nid = pa->proximity_domain;
node_cpuid[srat_num_cpus].nid = pxm;
srat_num_cpus++;
}

void __init
acpi_numa_memory_affinity_init(struct acpi_table_memory_affinity *ma)
{
unsigned long paddr, size;
u8 pxm;
int pxm;
struct node_memblk_s *p, *q, *pend;

pxm = ma->proximity_domain;
pxm = get_memory_proximity_domain(ma);

/* fill node memory chunk structure */
paddr = ma->base_addr_hi;
Expand Down
4 changes: 4 additions & 0 deletions trunk/include/asm-ia64/acpi.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,11 @@ extern int additional_cpus;

#ifdef CONFIG_ACPI_NUMA
/* Proximity bitmap length; _PXM is at most 255 (8 bit)*/
#ifdef CONFIG_IA64_NR_NODES
#define MAX_PXM_DOMAINS CONFIG_IA64_NR_NODES
#else
#define MAX_PXM_DOMAINS (256)
#endif
extern int __devinitdata pxm_to_nid_map[MAX_PXM_DOMAINS];
extern int __initdata nid_to_pxm_map[MAX_NUMNODES];
#endif
Expand Down

0 comments on commit 7d8aecb

Please sign in to comment.