Re: some questions about translation lookaside buffer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi ralf:
Thanks for your reply :)
2011/10/17 Ralf Baechle <ralf@xxxxxxxxxxxxxx>:
> 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,



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux