[IA64] Use bitmaps for efficient context allocation/free
Corrects the very inefficent method of finding free context_ids in get_mmu_context(). Instead of walking the task_list of all processes, 2 bitmaps are used to efficently store and lookup state, inuse and needs flushing. The entire rid address space is now used before calling wrap_mmu_context and global tlb flushing. Special thanks to Ken and Rohit for their review and modifications in using a bit flushmap. Signed-off-by: Peter Keilty <peter.keilty@hp.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
f2c84c0e84
commit
dcc17d1bae
4 changed files with 44 additions and 33 deletions
|
@ -51,6 +51,7 @@ flush_tlb_mm (struct mm_struct *mm)
|
|||
if (!mm)
|
||||
return;
|
||||
|
||||
set_bit(mm->context, ia64_ctx.flushmap);
|
||||
mm->context = 0;
|
||||
|
||||
if (atomic_read(&mm->mm_users) == 0)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue