x86, UV: Rename hubmask to pnmask
Rename 'bau_targ_hubmask' to 'pnmask' for clarity. The BAU distribution bit mask is indexed by pnode number, not hub or blade number. This important fact is not clear while the mask is called a 'hubmask'. Signed-off-by: Cliff Wickman <cpw@sgi.com> Link: http://lkml.kernel.org/r/20110621122242.630995969@sgi.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
485f07d349
commit
a456eaab87
|
@ -183,7 +183,7 @@
|
||||||
* 'base_dest_nasid' field of the header corresponds to the
|
* 'base_dest_nasid' field of the header corresponds to the
|
||||||
* destination nodeID associated with that specified bit.
|
* destination nodeID associated with that specified bit.
|
||||||
*/
|
*/
|
||||||
struct bau_targ_hubmask {
|
struct pnmask {
|
||||||
unsigned long bits[BITS_TO_LONGS(UV_DISTRIBUTION_SIZE)];
|
unsigned long bits[BITS_TO_LONGS(UV_DISTRIBUTION_SIZE)];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ struct bau_msg_header {
|
||||||
* Should be 64 bytes
|
* Should be 64 bytes
|
||||||
*/
|
*/
|
||||||
struct bau_desc {
|
struct bau_desc {
|
||||||
struct bau_targ_hubmask distribution;
|
struct pnmask distribution;
|
||||||
/*
|
/*
|
||||||
* message template, consisting of header and payload:
|
* message template, consisting of header and payload:
|
||||||
*/
|
*/
|
||||||
|
@ -596,20 +596,20 @@ static inline void write_mmr_data_config(int pnode, unsigned long mr)
|
||||||
uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG, mr);
|
uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG, mr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int bau_uvhub_isset(int uvhub, struct bau_targ_hubmask *dstp)
|
static inline int bau_uvhub_isset(int uvhub, struct pnmask *dstp)
|
||||||
{
|
{
|
||||||
return constant_test_bit(uvhub, &dstp->bits[0]);
|
return constant_test_bit(uvhub, &dstp->bits[0]);
|
||||||
}
|
}
|
||||||
static inline void bau_uvhub_set(int pnode, struct bau_targ_hubmask *dstp)
|
static inline void bau_uvhub_set(int pnode, struct pnmask *dstp)
|
||||||
{
|
{
|
||||||
__set_bit(pnode, &dstp->bits[0]);
|
__set_bit(pnode, &dstp->bits[0]);
|
||||||
}
|
}
|
||||||
static inline void bau_uvhubs_clear(struct bau_targ_hubmask *dstp,
|
static inline void bau_uvhubs_clear(struct pnmask *dstp,
|
||||||
int nbits)
|
int nbits)
|
||||||
{
|
{
|
||||||
bitmap_zero(&dstp->bits[0], nbits);
|
bitmap_zero(&dstp->bits[0], nbits);
|
||||||
}
|
}
|
||||||
static inline int bau_uvhub_weight(struct bau_targ_hubmask *dstp)
|
static inline int bau_uvhub_weight(struct pnmask *dstp)
|
||||||
{
|
{
|
||||||
return bitmap_weight((unsigned long *)&dstp->bits[0],
|
return bitmap_weight((unsigned long *)&dstp->bits[0],
|
||||||
UV_DISTRIBUTION_SIZE);
|
UV_DISTRIBUTION_SIZE);
|
||||||
|
|
|
@ -370,8 +370,7 @@ static void do_reset(void *ptr)
|
||||||
* Use IPI to get all target uvhubs to release resources held by
|
* Use IPI to get all target uvhubs to release resources held by
|
||||||
* a given sending cpu number.
|
* a given sending cpu number.
|
||||||
*/
|
*/
|
||||||
static void reset_with_ipi(struct bau_targ_hubmask *distribution,
|
static void reset_with_ipi(struct pnmask *distribution, struct bau_control *bcp)
|
||||||
struct bau_control *bcp)
|
|
||||||
{
|
{
|
||||||
int pnode;
|
int pnode;
|
||||||
int apnode;
|
int apnode;
|
||||||
|
@ -384,7 +383,7 @@ static void reset_with_ipi(struct bau_targ_hubmask *distribution,
|
||||||
reset_args.sender = sender;
|
reset_args.sender = sender;
|
||||||
cpus_clear(mask);
|
cpus_clear(mask);
|
||||||
/* find a single cpu for each uvhub in this distribution mask */
|
/* find a single cpu for each uvhub in this distribution mask */
|
||||||
maskbits = sizeof(struct bau_targ_hubmask) * BITSPERBYTE;
|
maskbits = sizeof(struct pnmask) * BITSPERBYTE;
|
||||||
/* each bit is a pnode relative to the partition base pnode */
|
/* each bit is a pnode relative to the partition base pnode */
|
||||||
for (pnode = 0; pnode < maskbits; pnode++) {
|
for (pnode = 0; pnode < maskbits; pnode++) {
|
||||||
int cpu;
|
int cpu;
|
||||||
|
|
Loading…
Reference in New Issue