Incorrect comment in leave_mm()?

From: Keir Fraser (Keir.Fraser_at_cl.cam.ac.uk)
Date: 03/31/05

  • Next message: Alan Stern: "Re: klists and struct device semaphores"
    To: linux-kernel@vger.kernel.org
    Date:	Thu, 31 Mar 2005 17:14:30 +0100
    
    

    Hi,

    I have a question regarding the per-cpu tlbstate logic that is used to
    lazily switch to the swapper_pgdir when running a process with no
    mm_struct of its own.

    There is a comment in arch/i386/kernel/smp.c:leave_mm() that
    states 'We need to reload %cr3 since the page tables may be going away
    from under us'. AFAICT this is not true -- the currently-running task
    holds a reference on the active_mm until it is context-switched off
    the CPU, at which point the reference is dropped in
    sched.c:finish_task_switch(). Until that point the pgd cannot be
    freed and so kernel mappings should remain valid to use.

    Although the corresponding function in arch/x86_64 doesn't include
    this comment, Andi Kleen recently modified it to switch to the
    swapper_pg_dir, instead of doing a simple __flush_tlb. Does this mean
    that I am missing something, and the comment in arch/i386 is in fact
    correct?

     Thanks,
     Keir
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Alan Stern: "Re: klists and struct device semaphores"