On 25 July 2018 at 09:04, Sai Pavan Boddu <saip...@xilinx.com> wrote:
> We are seeing issue when fetching tb cache, any suggestions for debug would 
> be helpful.
>
> Issue: Post soft reset of the core, bootloader(running over different cpu) 
> reloads the program memory and releases the reset. At that point CPU crashes 
> after first tb cache fetch.
>
> Note: cpu's have mmu disabled. So no tlb_flush_pages are called.
>
> Question: Is tb_flush called when bootloader has written to program memory of 
> the target cpu ?

(NB: TB flush and TLB flush are different things.)

When anything writes to memory it should result in the relevant
TB entries being flushed -- this happens via code in exec.c
which calls tb_invalidate_phys_page_fast() for writes to
notdirty memory.

Personally I would try debugging this by running QEMU under
rr (rr-project.org), and looking at where the stray tb cache
entry has come from and tracking it backwards to where it
went in, and looking at what happened for the memory writes
that should in theory have resulted in it being flushed.

thanks
-- PMM

Reply via email to