diff options
author | Rusty Russell <[email protected]> | 2008-12-30 09:05:16 +1030 |
---|---|---|
committer | Rusty Russell <[email protected]> | 2008-12-30 09:05:16 +1030 |
commit | 54b11e6d57a10aa9d0009efd93873e17bffd5d30 (patch) | |
tree | ac09296e7b0726aa6143913526f8983fae1cb497 /fs/xfs/xfs_ialloc.c | |
parent | 3fa41520696fec2815e2d88fbcccdda77ba4d693 (diff) |
cpumask: smp_call_function_many()
Impact: Implementation change to remove cpumask_t from stack.
Actually change smp_call_function_mask() to smp_call_function_many().
We avoid cpumasks on the stack in this version.
(S390 has its own version, but that's going away apparently).
We have to do some dancing to figure out if 0 or 1 other cpus are in
the mask supplied and the online mask without allocating a tmp
cpumask. It's still fairly cheap.
We allocate the cpumask at the end of the call_function_data
structure: if allocation fails we fallback to smp_call_function_single
rather than using the baroque quiescing code (which needs a cpumask on
stack).
(Thanks to Hiroshi Shimamoto for spotting several bugs in previous versions!)
Signed-off-by: Rusty Russell <[email protected]>
Signed-off-by: Mike Travis <[email protected]>
Cc: Hiroshi Shimamoto <[email protected]>
Cc: [email protected]
Cc: [email protected]
Diffstat (limited to 'fs/xfs/xfs_ialloc.c')
0 files changed, 0 insertions, 0 deletions