Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
a1e78db3
Commit
a1e78db3
authored
Oct 28, 2005
by
Tony Luck
Browse files
Options
Browse Files
Download
Plain Diff
Pull define-node-cleanup into release branch
parents
fbbb0bd1
59c42235
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
94 additions
and
178 deletions
+94
-178
arch/ia64/sn/kernel/io_init.c
arch/ia64/sn/kernel/io_init.c
+1
-3
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/setup.c
+51
-109
arch/ia64/sn/kernel/sn2/sn_hwperf.c
arch/ia64/sn/kernel/sn2/sn_hwperf.c
+2
-2
arch/ia64/sn/kernel/tiocx.c
arch/ia64/sn/kernel/tiocx.c
+2
-3
arch/ia64/sn/kernel/xpc_partition.c
arch/ia64/sn/kernel/xpc_partition.c
+1
-1
drivers/char/mmtimer.c
drivers/char/mmtimer.c
+2
-2
drivers/char/snsc.c
drivers/char/snsc.c
+2
-2
include/asm-ia64/sn/arch.h
include/asm-ia64/sn/arch.h
+26
-10
include/asm-ia64/sn/io.h
include/asm-ia64/sn/io.h
+1
-1
include/asm-ia64/sn/klconfig.h
include/asm-ia64/sn/klconfig.h
+4
-30
include/asm-ia64/sn/sn_cpuid.h
include/asm-ia64/sn/sn_cpuid.h
+0
-3
include/asm-ia64/sn/sn_sal.h
include/asm-ia64/sn/sn_sal.h
+1
-11
include/asm-ia64/sn/xp.h
include/asm-ia64/sn/xp.h
+1
-1
No files found.
arch/ia64/sn/kernel/io_init.c
View file @
a1e78db3
...
...
@@ -22,8 +22,6 @@
#include "xtalk/hubdev.h"
#include "xtalk/xwidgetdev.h"
nasid_t
master_nasid
=
INVALID_NASID
;
/* Partition Master */
static
struct
list_head
sn_sysdata_list
;
/* sysdata list struct */
...
...
@@ -165,7 +163,7 @@ static void sn_fixup_ionodes(void)
* Get SGI Specific HUB chipset information.
* Inform Prom that this kernel can support domain bus numbering.
*/
for
(
i
=
0
;
i
<
num
io
nodes
;
i
++
)
{
for
(
i
=
0
;
i
<
num
_c
nodes
;
i
++
)
{
hubdev
=
(
struct
hubdev_info
*
)(
NODEPDA
(
i
)
->
pdinfo
);
nasid
=
cnodeid_to_nasid
(
i
);
hubdev
->
max_segment_number
=
0xffffffff
;
...
...
arch/ia64/sn/kernel/setup.c
View file @
a1e78db3
...
...
@@ -59,8 +59,6 @@ DEFINE_PER_CPU(struct pda_s, pda_percpu);
#define MAX_PHYS_MEMORY (1UL << IA64_MAX_PHYS_BITS)
/* Max physical address supported */
lboard_t
*
root_lboard
[
MAX_COMPACT_NODES
];
extern
void
bte_init_node
(
nodepda_t
*
,
cnodeid_t
);
extern
void
sn_timer_init
(
void
);
...
...
@@ -97,15 +95,15 @@ u8 sn_region_size;
EXPORT_SYMBOL
(
sn_region_size
);
int
sn_prom_type
;
/* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */
short
physical_node_map
[
MAX_
PHYSNODE_ID
];
short
physical_node_map
[
MAX_
NUMALINK_NODES
];
static
unsigned
long
sn_prom_features
[
MAX_PROM_FEATURE_SETS
];
EXPORT_SYMBOL
(
physical_node_map
);
int
num
io
nodes
;
int
num
_c
nodes
;
static
void
sn_init_pdas
(
char
**
);
static
void
scan_for_ionod
es
(
void
);
static
void
build_cnode_tabl
es
(
void
);
static
nodepda_t
*
nodepdaindr
[
MAX_COMPACT_NODES
];
...
...
@@ -139,19 +137,6 @@ extern char drive_info[4 * 16];
char
drive_info
[
4
*
16
];
#endif
/*
* Get nasid of current cpu early in boot before nodepda is initialized
*/
static
int
boot_get_nasid
(
void
)
{
int
nasid
;
if
(
ia64_sn_get_sapic_info
(
get_sapicid
(),
&
nasid
,
NULL
,
NULL
))
BUG
();
return
nasid
;
}
/*
* This routine can only be used during init, since
* smp_boot_data is an init data structure.
...
...
@@ -223,7 +208,6 @@ void __init early_sn_setup(void)
}
extern
int
platform_intr_list
[];
extern
nasid_t
master_nasid
;
static
int
__initdata
shub_1_1_found
=
0
;
/*
...
...
@@ -269,7 +253,6 @@ static void __init sn_check_for_wars(void)
void
__init
sn_setup
(
char
**
cmdline_p
)
{
long
status
,
ticks_per_sec
,
drift
;
int
pxm
;
u32
version
=
sn_sal_rev
();
extern
void
sn_cpu_init
(
void
);
...
...
@@ -300,11 +283,10 @@ void __init sn_setup(char **cmdline_p)
MAX_DMA_ADDRESS
=
PAGE_OFFSET
+
MAX_PHYS_MEMORY
;
memset
(
physical_node_map
,
-
1
,
sizeof
(
physical_node_map
));
for
(
pxm
=
0
;
pxm
<
MAX_PXM_DOMAINS
;
pxm
++
)
if
(
pxm_to_nid_map
[
pxm
]
!=
-
1
)
physical_node_map
[
pxm_to_nasid
(
pxm
)]
=
pxm_to_nid_map
[
pxm
];
/*
* Build the tables for managing cnodes.
*/
build_cnode_tables
();
/*
* Old PROMs do not provide an ACPI FADT. Disable legacy keyboard
...
...
@@ -319,8 +301,6 @@ void __init sn_setup(char **cmdline_p)
printk
(
"SGI SAL version %x.%02x
\n
"
,
version
>>
8
,
version
&
0x00FF
);
master_nasid
=
boot_get_nasid
();
status
=
ia64_sal_freq_base
(
SAL_FREQ_BASE_REALTIME_CLOCK
,
&
ticks_per_sec
,
&
drift
);
...
...
@@ -378,15 +358,6 @@ static void __init sn_init_pdas(char **cmdline_p)
{
cnodeid_t
cnode
;
memset
(
sn_cnodeid_to_nasid
,
-
1
,
sizeof
(
__ia64_per_cpu_var
(
__sn_cnodeid_to_nasid
)));
for_each_online_node
(
cnode
)
sn_cnodeid_to_nasid
[
cnode
]
=
pxm_to_nasid
(
nid_to_pxm_map
[
cnode
]);
numionodes
=
num_online_nodes
();
scan_for_ionodes
();
/*
* Allocate & initalize the nodepda for each node.
*/
...
...
@@ -402,7 +373,7 @@ static void __init sn_init_pdas(char **cmdline_p)
/*
* Allocate & initialize nodepda for TIOs. For now, put them on node 0.
*/
for
(
cnode
=
num_online_nodes
();
cnode
<
num
io
nodes
;
cnode
++
)
{
for
(
cnode
=
num_online_nodes
();
cnode
<
num
_c
nodes
;
cnode
++
)
{
nodepdaindr
[
cnode
]
=
alloc_bootmem_node
(
NODE_DATA
(
0
),
sizeof
(
nodepda_t
));
memset
(
nodepdaindr
[
cnode
],
0
,
sizeof
(
nodepda_t
));
...
...
@@ -411,7 +382,7 @@ static void __init sn_init_pdas(char **cmdline_p)
/*
* Now copy the array of nodepda pointers to each nodepda.
*/
for
(
cnode
=
0
;
cnode
<
num
io
nodes
;
cnode
++
)
for
(
cnode
=
0
;
cnode
<
num
_c
nodes
;
cnode
++
)
memcpy
(
nodepdaindr
[
cnode
]
->
pernode_pdaindr
,
nodepdaindr
,
sizeof
(
nodepdaindr
));
...
...
@@ -428,7 +399,7 @@ static void __init sn_init_pdas(char **cmdline_p)
* Initialize the per node hubdev. This includes IO Nodes and
* headless/memless nodes.
*/
for
(
cnode
=
0
;
cnode
<
num
io
nodes
;
cnode
++
)
{
for
(
cnode
=
0
;
cnode
<
num
_c
nodes
;
cnode
++
)
{
hubdev_init_node
(
nodepdaindr
[
cnode
],
cnode
);
}
}
...
...
@@ -553,87 +524,58 @@ void __init sn_cpu_init(void)
}
/*
* Scan klconfig for ionodes. Add the nasids to the
* physical_node_map and the pda and increment numionodes.
* Build tables for converting between NASIDs and cnodes.
*/
static
inline
int
__init
board_needs_cnode
(
int
type
)
{
return
(
type
==
KLTYPE_SNIA
||
type
==
KLTYPE_TIO
);
}
static
void
__init
scan_for_ionod
es
(
void
)
void
__init
build_cnode_tabl
es
(
void
)
{
int
nasid
=
0
;
int
nasid
;
int
node
;
lboard_t
*
brd
;
/* fakeprom does not support klgraph */
if
(
IS_RUNNING_ON_FAKE_PROM
())
return
;
/* Setup ionodes with memory */
for
(
nasid
=
0
;
nasid
<
MAX_PHYSNODE_ID
;
nasid
+=
2
)
{
char
*
klgraph_header
;
cnodeid_t
cnodeid
;
if
(
physical_node_map
[
nasid
]
==
-
1
)
continue
;
memset
(
physical_node_map
,
-
1
,
sizeof
(
physical_node_map
));
memset
(
sn_cnodeid_to_nasid
,
-
1
,
sizeof
(
__ia64_per_cpu_var
(
__sn_cnodeid_to_nasid
)));
cnodeid
=
-
1
;
klgraph_header
=
__va
(
ia64_sn_get_klconfig_addr
(
nasid
));
if
(
!
klgraph_header
)
{
BUG
();
/* All nodes must have klconfig tables! */
}
cnodeid
=
nasid_to_cnodeid
(
nasid
);
root_lboard
[
cnodeid
]
=
(
lboard_t
*
)
NODE_OFFSET_TO_LBOARD
((
nasid
),
((
kl_config_hdr_t
*
)
(
klgraph_header
))
->
ch_board_info
);
/*
* First populate the tables with C/M bricks. This ensures that
* cnode == node for all C & M bricks.
*/
for_each_online_node
(
node
)
{
nasid
=
pxm_to_nasid
(
nid_to_pxm_map
[
node
]);
sn_cnodeid_to_nasid
[
node
]
=
nasid
;
physical_node_map
[
nasid
]
=
node
;
}
/* Scan headless/memless IO Nodes. */
for
(
nasid
=
0
;
nasid
<
MAX_PHYSNODE_ID
;
nasid
+=
2
)
{
/* if there's no nasid, don't try to read the klconfig on the node */
if
(
physical_node_map
[
nasid
]
==
-
1
)
continue
;
brd
=
find_lboard_any
((
lboard_t
*
)
root_lboard
[
nasid_to_cnodeid
(
nasid
)],
KLTYPE_SNIA
);
if
(
brd
)
{
brd
=
KLCF_NEXT_ANY
(
brd
);
/* Skip this node's lboard */
if
(
!
brd
)
continue
;
}
/*
* num_cnodes is total number of C/M/TIO bricks. Because of the 256 node
* limit on the number of nodes, we can't use the generic node numbers
* for this. Note that num_cnodes is incremented below as TIOs or
* headless/memoryless nodes are discovered.
*/
num_cnodes
=
num_online_nodes
();
brd
=
find_lboard_any
(
brd
,
KLTYPE_SNIA
);
/* fakeprom does not support klgraph */
if
(
IS_RUNNING_ON_FAKE_PROM
())
return
;
/* Find TIOs & headless/memoryless nodes and add them to the tables */
for_each_online_node
(
node
)
{
kl_config_hdr_t
*
klgraph_header
;
nasid
=
cnodeid_to_nasid
(
node
);
if
((
klgraph_header
=
ia64_sn_get_klconfig_addr
(
nasid
))
==
NULL
)
BUG
();
brd
=
NODE_OFFSET_TO_LBOARD
(
nasid
,
klgraph_header
->
ch_board_info
);
while
(
brd
)
{
sn_cnodeid_to_nasid
[
numionodes
]
=
brd
->
brd_nasid
;
physical_node_map
[
brd
->
brd_nasid
]
=
numionodes
;
root_lboard
[
numionodes
]
=
brd
;
numionodes
++
;
brd
=
KLCF_NEXT_ANY
(
brd
);
if
(
!
brd
)
break
;
brd
=
find_lboard_any
(
brd
,
KLTYPE_SNIA
);
if
(
board_needs_cnode
(
brd
->
brd_type
)
&&
physical_node_map
[
brd
->
brd_nasid
]
<
0
)
{
sn_cnodeid_to_nasid
[
num_cnodes
]
=
brd
->
brd_nasid
;
physical_node_map
[
brd
->
brd_nasid
]
=
num_cnodes
++
;
}
}
/* Scan for TIO nodes. */
for
(
nasid
=
0
;
nasid
<
MAX_PHYSNODE_ID
;
nasid
+=
2
)
{
/* if there's no nasid, don't try to read the klconfig on the node */
if
(
physical_node_map
[
nasid
]
==
-
1
)
continue
;
brd
=
find_lboard_any
((
lboard_t
*
)
root_lboard
[
nasid_to_cnodeid
(
nasid
)],
KLTYPE_TIO
);
while
(
brd
)
{
sn_cnodeid_to_nasid
[
numionodes
]
=
brd
->
brd_nasid
;
physical_node_map
[
brd
->
brd_nasid
]
=
numionodes
;
root_lboard
[
numionodes
]
=
brd
;
numionodes
++
;
brd
=
KLCF_NEXT_ANY
(
brd
);
if
(
!
brd
)
break
;
brd
=
find_lboard_any
(
brd
,
KLTYPE_TIO
);
brd
=
find_lboard_next
(
brd
);
}
}
}
...
...
arch/ia64/sn/kernel/sn2/sn_hwperf.c
View file @
a1e78db3
...
...
@@ -476,8 +476,8 @@ static int sn_topology_show(struct seq_file *s, void *d)
for_each_online_cpu
(
j
)
{
seq_printf
(
s
,
j
?
":%d"
:
", dist %d"
,
node_distance
(
cpu
id_to_cnodeid
(
i
),
cpu
id_to_cnodeid
(
j
)));
cpu
_to_node
(
i
),
cpu
_to_node
(
j
)));
}
seq_putc
(
s
,
'\n'
);
}
...
...
arch/ia64/sn/kernel/tiocx.c
View file @
a1e78db3
...
...
@@ -489,12 +489,11 @@ static int __init tiocx_init(void)
bus_register
(
&
tiocx_bus_type
);
for
(
cnodeid
=
0
;
cnodeid
<
MAX_COMPACT_NODES
;
cnodeid
++
)
{
for
(
cnodeid
=
0
;
cnodeid
<
num_cnodes
;
cnodeid
++
)
{
nasid_t
nasid
;
int
bt
;
if
((
nasid
=
cnodeid_to_nasid
(
cnodeid
))
<
0
)
break
;
/* No more nasids .. bail out of loop */
nasid
=
cnodeid_to_nasid
(
cnodeid
);
if
((
nasid
&
0x1
)
&&
is_fpga_tio
(
nasid
,
&
bt
))
{
struct
hubdev_info
*
hubdev
;
...
...
arch/ia64/sn/kernel/xpc_partition.c
View file @
a1e78db3
...
...
@@ -44,7 +44,7 @@ static u64 xpc_sh2_IPI_access3;
/* original protection values for each node */
u64
xpc_prot_vec
[
MAX_
COMPACT_
NODES
];
u64
xpc_prot_vec
[
MAX_
NUM
NODES
];
/* this partition's reserved page */
...
...
drivers/char/mmtimer.c
View file @
a1e78db3
...
...
@@ -441,7 +441,7 @@ static irqreturn_t
mmtimer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
int
i
;
mmtimer_t
*
base
=
timers
+
cpu
id_to_cnodeid
(
smp_processor_id
())
*
mmtimer_t
*
base
=
timers
+
cpu
_to_node
(
smp_processor_id
())
*
NUM_COMPARATORS
;
unsigned
long
expires
=
0
;
int
result
=
IRQ_NONE
;
...
...
@@ -608,7 +608,7 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
*/
preempt_disable
();
nodeid
=
cpu
id_to_cnodeid
(
smp_processor_id
());
nodeid
=
cpu
_to_node
(
smp_processor_id
());
base
=
timers
+
nodeid
*
NUM_COMPARATORS
;
retry:
/* Don't use an allocated timer, or a deleted one that's pending */
...
...
drivers/char/snsc.c
View file @
a1e78db3
...
...
@@ -377,7 +377,7 @@ scdrv_init(void)
dev_t
first_dev
,
dev
;
nasid_t
event_nasid
=
ia64_sn_get_console_nasid
();
if
(
alloc_chrdev_region
(
&
first_dev
,
0
,
num
io
nodes
,
if
(
alloc_chrdev_region
(
&
first_dev
,
0
,
num
_c
nodes
,
SYSCTL_BASENAME
)
<
0
)
{
printk
(
"%s: failed to register SN system controller device
\n
"
,
__FUNCTION__
);
...
...
@@ -385,7 +385,7 @@ scdrv_init(void)
}
snsc_class
=
class_create
(
THIS_MODULE
,
SYSCTL_BASENAME
);
for
(
cnode
=
0
;
cnode
<
num
io
nodes
;
cnode
++
)
{
for
(
cnode
=
0
;
cnode
<
num
_c
nodes
;
cnode
++
)
{
geoid
=
cnodeid_get_geoid
(
cnode
);
devnamep
=
devname
;
format_module_id
(
devnamep
,
geo_module
(
geoid
),
...
...
include/asm-ia64/sn/arch.h
View file @
a1e78db3
...
...
@@ -17,6 +17,32 @@
#include <asm/sn/types.h>
#include <asm/sn/sn_cpuid.h>
/*
* This is the maximum number of NUMALINK nodes that can be part of a single
* SSI kernel. This number includes C-brick, M-bricks, and TIOs. Nodes in
* remote partitions are NOT included in this number.
* The number of compact nodes cannot exceed size of a coherency domain.
* The purpose of this define is to specify a node count that includes
* all C/M/TIO nodes in an SSI system.
*
* SGI system can currently support up to 256 C/M nodes plus additional TIO nodes.
*
* Note: ACPI20 has an architectural limit of 256 nodes. When we upgrade
* to ACPI3.0, this limit will be removed. The notion of "compact nodes"
* should be deleted and TIOs should be included in MAX_NUMNODES.
*/
#define MAX_COMPACT_NODES 512
/*
* Maximum number of nodes in all partitions and in all coherency domains.
* This is the total number of nodes accessible in the numalink fabric. It
* includes all C & M bricks, plus all TIOs.
*
* This value is also the value of the maximum number of NASIDs in the numalink
* fabric.
*/
#define MAX_NUMALINK_NODES 16384
/*
* The following defines attributes of the HUB chip. These attributes are
* frequently referenced. They are kept in the per-cpu data areas of each cpu.
...
...
@@ -40,15 +66,6 @@ DECLARE_PER_CPU(struct sn_hub_info_s, __sn_hub_info);
#define enable_shub_wars_1_1() (sn_hub_info->shub_1_1_found)
/*
* This is the maximum number of nodes that can be part of a kernel.
* Effectively, it's the maximum number of compact node ids (cnodeid_t).
* This is not necessarily the same as MAX_NASIDS.
*/
#define MAX_COMPACT_NODES 2048
#define CPUS_PER_NODE 4
/*
* Compact node ID to nasid mappings kept in the per-cpu data areas of each
* cpu.
...
...
@@ -57,7 +74,6 @@ DECLARE_PER_CPU(short, __sn_cnodeid_to_nasid[MAX_NUMNODES]);
#define sn_cnodeid_to_nasid (&__get_cpu_var(__sn_cnodeid_to_nasid[0]))
extern
u8
sn_partition_id
;
extern
u8
sn_system_size
;
extern
u8
sn_sharing_domain_size
;
...
...
include/asm-ia64/sn/io.h
View file @
a1e78db3
...
...
@@ -14,7 +14,7 @@
extern
void
*
sn_io_addr
(
unsigned
long
port
)
__attribute_const__
;
/* Forward definition */
extern
void
__sn_mmiowb
(
void
);
/* Forward definition */
extern
int
num
io
nodes
;
extern
int
num
_c
nodes
;
#define __sn_mf_a() ia64_mfa()
...
...
include/asm-ia64/sn/klconfig.h
View file @
a1e78db3
...
...
@@ -208,19 +208,6 @@ typedef struct lboard_s {
klconf_off_t
brd_next_same
;
/* Next BOARD with same nasid */
}
lboard_t
;
#define KLCF_NUM_COMPS(_brd) ((_brd)->brd_numcompts)
#define NODE_OFFSET_TO_KLINFO(n,off) ((klinfo_t*) TO_NODE_CAC(n,off))
#define KLCF_NEXT(_brd) \
((_brd)->brd_next_same ? \
(NODE_OFFSET_TO_LBOARD((_brd)->brd_next_same_host, (_brd)->brd_next_same)): NULL)
#define KLCF_NEXT_ANY(_brd) \
((_brd)->brd_next_any ? \
(NODE_OFFSET_TO_LBOARD(NASID_GET(_brd), (_brd)->brd_next_any)): NULL)
#define KLCF_COMP(_brd, _ndx) \
((((_brd)->brd_compts[(_ndx)]) == 0) ? 0 : \
(NODE_OFFSET_TO_KLINFO(NASID_GET(_brd), (_brd)->brd_compts[(_ndx)])))
/*
* Generic info structure. This stores common info about a
* component.
...
...
@@ -249,24 +236,11 @@ typedef struct klinfo_s { /* Generic info */
}
klinfo_t
;
static
inline
lboard_t
*
find_lboard_
any
(
lboard_t
*
start
,
unsigned
char
brd_type
)
static
inline
lboard_t
*
find_lboard_
next
(
lboard_t
*
brd
)
{
/* Search all boards stored on this node. */
while
(
start
)
{
if
(
start
->
brd_type
==
brd_type
)
return
start
;
start
=
KLCF_NEXT_ANY
(
start
);
}
/* Didn't find it. */
return
(
lboard_t
*
)
NULL
;
if
(
brd
&&
brd
->
brd_next_any
)
return
NODE_OFFSET_TO_LBOARD
(
NASID_GET
(
brd
),
brd
->
brd_next_any
);
return
NULL
;
}
/* external declarations of Linux kernel functions. */
extern
lboard_t
*
root_lboard
[];
extern
klinfo_t
*
find_component
(
lboard_t
*
brd
,
klinfo_t
*
kli
,
unsigned
char
type
);
extern
klinfo_t
*
find_first_component
(
lboard_t
*
brd
,
unsigned
char
type
);
#endif
/* _ASM_IA64_SN_KLCONFIG_H */
include/asm-ia64/sn/sn_cpuid.h
View file @
a1e78db3
...
...
@@ -105,7 +105,6 @@ extern short physical_node_map[]; /* indexed by nasid to get cnode */
#define cpuid_to_nasid(cpuid) (sn_nodepda->phys_cpuid[cpuid].nasid)
#define cpuid_to_subnode(cpuid) (sn_nodepda->phys_cpuid[cpuid].subnode)
#define cpuid_to_slice(cpuid) (sn_nodepda->phys_cpuid[cpuid].slice)
#define cpuid_to_cnodeid(cpuid) (physical_node_map[cpuid_to_nasid(cpuid)])
/*
...
...
@@ -113,8 +112,6 @@ extern short physical_node_map[]; /* indexed by nasid to get cnode */
* of potentially large tables.
*/
extern
int
nasid_slice_to_cpuid
(
int
,
int
);
#define nasid_slice_to_cpu_physical_id(nasid, slice) \
cpu_physical_id(nasid_slice_to_cpuid(nasid, slice))
/*
* cnodeid_to_nasid - convert a cnodeid to a NASID
...
...
include/asm-ia64/sn/sn_sal.h
View file @
a1e78db3
...
...
@@ -206,26 +206,16 @@ ia64_sn_get_master_baseio_nasid(void)
return
ret_stuff
.
v0
;
}
static
inline
char
*
static
inline
void
*
ia64_sn_get_klconfig_addr
(
nasid_t
nasid
)
{
struct
ia64_sal_retval
ret_stuff
;
int
cnodeid
;
cnodeid
=
nasid_to_cnodeid
(
nasid
);
ret_stuff
.
status
=
0
;
ret_stuff
.
v0
=
0
;
ret_stuff
.
v1
=
0
;
ret_stuff
.
v2
=
0
;
SAL_CALL
(
ret_stuff
,
SN_SAL_GET_KLCONFIG_ADDR
,
(
u64
)
nasid
,
0
,
0
,
0
,
0
,
0
,
0
);
/*
* We should panic if a valid cnode nasid does not produce
* a klconfig address.
*/
if
(
ret_stuff
.
status
!=
0
)
{
panic
(
"ia64_sn_get_klconfig_addr: Returned error %lx
\n
"
,
ret_stuff
.
status
);
}
return
ret_stuff
.
v0
?
__va
(
ret_stuff
.
v0
)
:
NULL
;
}
...
...
include/asm-ia64/sn/xp.h
View file @
a1e78db3
...
...
@@ -49,7 +49,7 @@
* C-brick nasids, thus the need for bitmaps which don't account for
* odd-numbered (non C-brick) nasids.
*/
#define XP_MAX_PHYSNODE_ID (MAX_
PHYSNODE_ID
/ 2)
#define XP_MAX_PHYSNODE_ID (MAX_
NUMALINK_NODES
/ 2)
#define XP_NASID_MASK_BYTES ((XP_MAX_PHYSNODE_ID + 7) / 8)
#define XP_NASID_MASK_WORDS ((XP_MAX_PHYSNODE_ID + 63) / 64)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment