linux-mips
[Top] [All Lists]

Re: some questions about translation lookaside buffer

To: loody <miloody@gmail.com>
Subject: Re: some questions about translation lookaside buffer
From: Ralf Baechle <ralf@linux-mips.org>
Date: Mon, 17 Oct 2011 15:57:03 +0100
Cc: Linux MIPS Mailing List <linux-mips@linux-mips.org>
In-reply-to: <CANudz+sswjeOP-JZfJnp5c+J0HAmY2OgCVJkdq9WK51ackb8vw@mail.gmail.com>
References: <CANudz+sswjeOP-JZfJnp5c+J0HAmY2OgCVJkdq9WK51ackb8vw@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, Oct 17, 2011 at 07:36:11PM +0800, loody wrote:

> Dear all:
> I have some questions about local_flush_tlb_one.
> 1. what will happen if I use local_flush_tlb_one to flush a page that
> doesn't exist in translation lookaside buffer entries.
> 
> The index return by read_c0_index(), should be negative.
> but this function seems not handle the case that idx < 0.
> 
> 2. as I know, translation lookaside buffer is a place to keep record
> the memory mapping, it doesn't like cache have place to store the
> data.
>     a. If the entry is cacheable, what we only to do is flush the cache?
>     b. if the entry is uncached, there is nothing to do?
> if above b is correct, what will happen if we have an entry that is
> uncached and dirty?

If c0_index contains a value < 0 (or rather one with bit 31 set) then
there is nothing that needs to be flushed.

Note that MIPS D-cache (I-caches don't get written back so are not of
concern) are tagged with a physical address so cache handling is no
consideration for local_flush_tlb_one or any of the other TLB flush
functions.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>