[Top] [All Lists]

Re: some questions about translation lookaside buffer

To: Ralf Baechle <>
Subject: Re: some questions about translation lookaside buffer
From: loody <>
Date: Tue, 18 Oct 2011 00:17:21 +0800
Cc: Linux MIPS Mailing List <>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=ARUvrYy8mqH88BXTyHdjc57zKx2D6716ZbxyKEUk8S4=; b=Pd71hz5g9Iu02CcT0pchFmMyQVVgMDxaMxgbfLhE61SxxqyvC6rQEHgJpqZHnRF4x3 A0xImZb5pFt+BC0D4HPMgDOg6b8tI4BZVQPusmTWCLpsmIrcau6XpWfnbMUgbaQakvV1 R/CQdqpm/c9rTWJ5504qkX8gggD40FxXzDKSA=
In-reply-to: <>
References: <> <>
hi ralf:
Thanks for your reply :)
2011/10/17 Ralf Baechle <>:
> 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.
but how about the case of c0_index >= 0, I found the code tried to
write the index with entry_lo0 and entry_lo1 as 0.
it seems clear the PFN part of the index. So it is the flush action?

> 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.
why tlb flush functions don't need to take care cache handling?
if tlb flush don't need to care cache, what is tlb flush used for,
since tlb is nothing but a place to do the address translation, right?

Appreciate your help,

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