qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] TLB collision


From: Andreas Färber
Subject: Re: [Qemu-devel] TLB collision
Date: Thu, 24 Nov 2011 11:10:41 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111105 Thunderbird/8.0

Hi,

Am 24.11.2011 10:53, schrieb Michael Rolnik:
> I have a question regarding MMU.
> I've built a SPARC based small embedded system.

You've already sent this two times. What you keep forgetting is to cc
the sparc maintainer and to tell us whether this is sparc32 or sparc64.
The latter was rather incomplete, so you might be hitting a corner case.

Also when building new machines you are generally well advised to use an
up-to-date git version.

Regards,
Andreas

> at this system addresses 0x00000000-0x00008000  (32KB) belong to ROM and
> 0x80000000 - 0x80010000 to RAM. 
> the problem is that when a code from first ROM page accesses a memory at
> the address 0x80000000 there is an infinite loop.
> 
>    - cpu_sparc_handle_mmu_fault is called to bring addres 0x00000000
>    - cpu_sparc_handle_mmu_fault is called to bring 0x80000000 and
> flushes 0x00000000
>    - cpu_sparc_handle_mmu_fault is called to bring 0x00000000 and
> flushes 0x80000000
>  ...
> 
> this can be fixed if I set CPU_TLB_BITS to be 20 bits (assuming page
> size of 4KB).
> 
> is there a better solution?
> 
> 
> I was thinking about 2-way TLB so two virtual addresses sharing same TLB
> entry will be resident. 
> in order not to degrade performance 
>     1. *tcg_out_qemu_ld* and *tcg_out_qemu_st* should remain as it,
> which mean they will always look into way0.
>     2. *tlb_set_page* should copy way0 to way1 and program way0 with new
> values
>     3. all other routines dealing with TLB should search both ways.
> 
> what do you think?
> 
> -- 
> Best Regards,
> Michael Rolnik


-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]