diff options
author | Jack Steiner <steiner@sgi.com> | 2006-04-22 09:37:19 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-04-27 14:29:05 -0700 |
commit | dd4cb9f8ac9717c9db2b2afc5a82cb95a3d5dec3 (patch) | |
tree | 94725efb2f8c1fc9272d1599bd7764bab9023228 /arch/ia64/sn | |
parent | f0fe253c4719faf76d40f581cdc0e8aef77273bb (diff) | |
download | kernel_samsung_smdk4412-dd4cb9f8ac9717c9db2b2afc5a82cb95a3d5dec3.zip kernel_samsung_smdk4412-dd4cb9f8ac9717c9db2b2afc5a82cb95a3d5dec3.tar.gz kernel_samsung_smdk4412-dd4cb9f8ac9717c9db2b2afc5a82cb95a3d5dec3.tar.bz2 |
[IA64-SGI] - Reduce overhead of reading sn_topology
MPI programs using certain debug options have a long
startup time. This was traced to a "vmalloc/vfree" in
the code that reads /proc/sgi_sn/sn_topology. On large
systems, vfree requires an IPI to all cpus to do TLB
purging.
Replace the vmalloc/vfree with kmalloc/kfree. Although
the size of the structure being allocated is unknown, it
will not not exceed 96 bytes.
Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/sn')
-rw-r--r-- | arch/ia64/sn/kernel/sn2/sn_hwperf.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index 7ec65bc..739c948 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c @@ -493,7 +493,7 @@ static int sn_topology_show(struct seq_file *s, void *d) * numalink ports */ sz = obj->ports * sizeof(struct sn_hwperf_port_info); - if ((ptdata = vmalloc(sz)) == NULL) + if ((ptdata = kmalloc(sz, GFP_KERNEL)) == NULL) return -ENOMEM; e = ia64_sn_hwperf_op(sn_hwperf_master_nasid, SN_HWPERF_ENUM_PORTS, obj->id, sz, @@ -541,7 +541,7 @@ static int sn_topology_show(struct seq_file *s, void *d) (SN_HWPERF_IS_NL3ROUTER(obj) || SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4"); } - vfree(ptdata); + kfree(ptdata); } return 0; |