03 May, 2007

1 commit

  • Add hooks to allow a paravirt implementation to track the lifetime of
    an mm. Paravirtualization requires three hooks, but only two are
    needed in common code. They are:

    arch_dup_mmap, which is called when a new mmap is created at fork

    arch_exit_mmap, which is called when the last process reference to an
    mm is dropped, which typically happens on exit and exec.

    The third hook is activate_mm, which is called from the arch-specific
    activate_mm() macro/function, and so doesn't need stub versions for
    other architectures. It's called when an mm is first used.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Andi Kleen
    Cc: linux-arch@vger.kernel.org
    Cc: James Bottomley
    Acked-by: Ingo Molnar

    Jeremy Fitzhardinge
     

04 Nov, 2005

1 commit

  • wrap_mmu_context(), delayed_tlb_flush(), get_mmu_context() all
    have an extra { } block which cause one extra indentation.
    get_mmu_context() is particularly bad with 5 indentations to
    the most inner "if". It finally gets on my nerve that I can't
    keep the code within 80 columns. Remove the extra { } block
    and while I'm at it, reformat all the comments to 80-column
    friendly. No functional change at all with this patch.

    Signed-off-by: Ken Chen
    Signed-off-by: Tony Luck

    Chen, Kenneth W
     

01 Nov, 2005

1 commit

  • 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
    Signed-off-by: Tony Luck

    Peter Keilty
     

30 Aug, 2005

1 commit


25 Aug, 2005

1 commit

  • Currently, region numbers are defined in several files, with several
    names. For example, we have REGION_KERNEL in asm/page.h and
    RGN_KERNEL in pgtable.h

    We also have address definitions that should depend on the
    RGN_XXX macros, but are currently just long constants.

    The following patch reorganises all the definitions so that they have
    the same form (RGN_XXX), are in one place, and that addresses that
    depend on RGN_XXX are derived from them.

    (This is a necessary but not sufficient patch to allow UML-like
    operation on IA64).

    Thanks to David Mosberger for catching the change I missed in mmu_context.h.

    Signed-off-by: Peter Chubb
    Signed-off-by: Tony Luck

    Peter Chubb
     

13 Aug, 2005

1 commit

  • The patch below should fix a race which could cause stale TLB entries.
    Specifically, when 2 CPUs ended up racing for entrance to
    wrap_mmu_context(). The losing CPU would find that by the time it
    acquired ctx.lock, mm->context already had a valid value, but then it
    failed to (re-)check the delayed TLB flushing logic and hence could
    end up using a context number when there were still stale entries in
    its TLB. The fix is to check for delayed TLB flushes only after
    mm->context is valid (non-zero). The patch also makes GCC v4.x
    happier by defining a non-volatile variant of mm_context_t called
    nv_mm_context_t.

    Signed-off-by: David Mosberger-Tang
    Signed-off-by: Tony Luck

    David Mosberger-Tang
     

29 Jun, 2005

1 commit

  • There's another problem shown up by Ingo's recent patch to make
    smp_processor_id() complain if it's called with preemption enabled.
    local_finish_flush_tlb_mm() calls activate_context() in a situation
    where it could be rescheduled to another processor. This patch
    disables preemption around the call.

    Signed-off-by: Peter Chubb
    Signed-off-by: Tony Luck

    Peter Chubb
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds