Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 143492
b: refs/heads/master
c: 94ca8e4
h: refs/heads/master
v: v3
  • Loading branch information
Cliff Wickman authored and Ingo Molnar committed Apr 14, 2009
1 parent 79a9f45 commit b084152
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 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: 54c28d294c658abb6d6430a49fda230fdfd601c8
refs/heads/master: 94ca8e4852807fc42d2f64fcaf248aafc4f2e6a7
19 changes: 16 additions & 3 deletions trunk/arch/x86/kernel/tlb_uv.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ static int uv_bau_retry_limit __read_mostly;

/* position of pnode (which is nasid>>1): */
static int uv_nshift __read_mostly;
/* base pnode in this partition */
static int uv_partition_base_pnode __read_mostly;

static unsigned long uv_mmask __read_mostly;

Expand All @@ -43,7 +45,7 @@ static int __init blade_to_first_node(int blade)
if (blade == b)
return node;
}
BUG();
return -1; /* shouldn't happen */
}

/*
Expand Down Expand Up @@ -359,7 +361,8 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
locals++;
continue;
}
bau_node_set(pnode, &bau_desc->distribution);
bau_node_set(pnode - uv_partition_base_pnode,
&bau_desc->distribution);
i++;
}
if (i == 0) {
Expand Down Expand Up @@ -728,7 +731,12 @@ uv_activation_descriptor_init(int node, int pnode)
for (i = 0, ad2 = adp; i < UV_ACTIVATION_DESCRIPTOR_SIZE; i++, ad2++) {
memset(ad2, 0, sizeof(struct bau_desc));
ad2->header.sw_ack_flag = 1;
ad2->header.base_dest_nodeid = uv_cpu_to_pnode(0);
/*
* base_dest_nodeid is the first node in the partition, so
* the bit map will indicate partition-relative node numbers.
* note that base_dest_nodeid is actually a nasid.
*/
ad2->header.base_dest_nodeid = uv_partition_base_pnode << 1;
ad2->header.command = UV_NET_ENDPOINT_INTD;
ad2->header.int_both = 1;
/*
Expand Down Expand Up @@ -825,6 +833,11 @@ static int __init uv_bau_init(void)
kmalloc(nblades * sizeof(struct bau_control *), GFP_KERNEL);
BUG_ON(!uv_bau_table_bases);

uv_partition_base_pnode = 0x7fffffff;
for (blade = 0; blade < nblades; blade++)
if (uv_blade_nr_possible_cpus(blade) &&
(uv_blade_to_pnode(blade) < uv_partition_base_pnode))
uv_partition_base_pnode = uv_blade_to_pnode(blade);
for (blade = 0; blade < nblades; blade++)
if (uv_blade_nr_possible_cpus(blade))
uv_init_blade(blade);
Expand Down

0 comments on commit b084152

Please sign in to comment.