[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index |
Date: |
Tue, 26 Jun 2018 15:26:01 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
On 06/26/2018 03:07 PM, Stafford Horne wrote:
> Hello,
>
> I think I found out something.
>
> in: target/openrisc/sys_helper.c:92
>
> When we write to `env->tlb.dtlb[idx].tr` in helper_mtspr():
> 93 case TO_SPR(1, 640) ... TO_SPR(1, 640 + TLB_SIZE - 1):
> /* DTLBW0TR 0-127 */
> 94 idx = spr - TO_SPR(1, 640);
> 95 env->tlb.dtlb[idx].tr = rb;
>
>
> Somehow we are overlapping with `cpu->tb_jmp_cache`, these are both
> pointing to the same spot in memory.
>
> (gdb) p &cs->tb_jmp_cache[3014]
> $9 = (struct TranslationBlock **) 0x55555608b300
> (gdb) p &env->tlb.dtlb[idx].tr
> $10 = (uint32_t *) 0x55555608b304
That is definitely weird. How about
(gdb) p openrisc_env_get_cpu(env)
$1 = xxxx
(gdb) p &$1->parent_obj
(gdb) p &$1->env
(gdb) p cs->env_ptr
There should be 4096 entries in tb_jmp_cache, so there should
be no way that overlaps. I can only imagine either CS or ENV
is incorrect somehow. How that would be, I don't know...
r~
- [Qemu-devel] [PATCH v2 05/22] target/openrisc: Split out is_user, (continued)
- [Qemu-devel] [PATCH v2 05/22] target/openrisc: Split out is_user, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 06/22] target/openrisc: Exit the TB after l.mtspr, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 04/22] target/openrisc: Link more translation blocks, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 07/22] target/openrisc: Form the spr index from tcg, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 08/22] target/openrisc: Merge tlb allocation into CPUOpenRISCState, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 09/22] target/openrisc: Remove indirect function calls for mmu, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 10/22] target/openrisc: Merge mmu_helper.c into mmu.c, Richard Henderson, 2018/06/18
- [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Richard Henderson, 2018/06/18
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Stafford Horne, 2018/06/23
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Stafford Horne, 2018/06/26
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index,
Richard Henderson <=
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Stafford Horne, 2018/06/27
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Richard Henderson, 2018/06/27
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Stafford Horne, 2018/06/27
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Richard Henderson, 2018/06/27
- Re: [Qemu-devel] [PATCH v2 13/22] target/openrisc: Fix cpu_mmu_index, Stafford Horne, 2018/06/28
[Qemu-devel] [PATCH v2 12/22] target/openrisc: Fix tlb flushing in mtspr, Richard Henderson, 2018/06/18
[Qemu-devel] [PATCH v2 17/22] target/openrisc: Increase the TLB size, Richard Henderson, 2018/06/18
[Qemu-devel] [PATCH v2 16/22] target/openrisc: Log interrupts, Richard Henderson, 2018/06/18