[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_
From: |
Ilya Leoshkevich |
Subject: |
Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup |
Date: |
Wed, 17 Aug 2022 16:07:03 +0200 |
User-agent: |
Evolution 3.42.4 (3.42.4-2.fc35) |
On Wed, 2022-08-17 at 08:38 -0500, Richard Henderson wrote:
> On 8/17/22 08:27, Ilya Leoshkevich wrote:
> > On Wed, 2022-08-17 at 08:15 -0500, Richard Henderson wrote:
> > > On 8/17/22 06:08, Ilya Leoshkevich wrote:
> > > > @@ -2243,6 +2250,13 @@ void page_set_flags(target_ulong start,
> > > > target_ulong end, int flags)
> > > > (flags & PAGE_WRITE) &&
> > > > p->first_tb) {
> > > > tb_invalidate_phys_page(addr, 0);
> > > > + } else {
> > > > + TranslationBlock *tb;
> > > > + int n;
> > > > +
> > > > + PAGE_FOR_EACH_TB(p, tb, n) {
> > > > + cpu_tb_jmp_cache_remove(tb);
> > > > + }
> > > > }
> > >
> > > Here you would use tb_jmp_cache_clear_page(), which should be
> > > moved
> > > out of cputlb.c.
> >
> > That was actually the first thing I tried.
> >
> > Unfortunately tb_jmp_cache_clear_page() relies on
> > tb_jmp_cache_hash_func() returning the same top bits for addresses
> > on
> > the same page. This is not the case for qemu-user: there this
> > property
> > was traded for better hashing with quite impressive performance
> > improvements (6f1653180f570).
>
> Oh my. Well, we could
>
> (1) revert that patch because the premise is wrong,
> (2) go with your per-tb clearing,
> (3) clear the whole thing with cpu_tb_jmp_cache_clear
>
> Ideally we'd have some benchmark numbers to inform the choice...
FWIW 6f1653180f570 still looks useful.
Reverting it caused 620.omnetpp_s to take ~4% more time.
I ran the benchmark with reduced values in omnetpp.ini so as not to
wait forever, therefore the real figures might be closer to what the
commit message says. In any case this still shows that the patch has
measurable impact.
- [PATCH for-7.2 06/21] accel/tcg: Remove PageDesc code_bitmap, (continued)
- [PATCH for-7.2 06/21] accel/tcg: Remove PageDesc code_bitmap, Richard Henderson, 2022/08/12
- [PATCH for-7.2 09/21] accel/tcg: Move qemu_ram_addr_from_host_nofail to physmem.c, Richard Henderson, 2022/08/12
- [PATCH for-7.2 13/21] accel/tcg: Unlock mmap_lock after longjmp, Richard Henderson, 2022/08/12
- [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Richard Henderson, 2022/08/12
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Ilya Leoshkevich, 2022/08/16
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Richard Henderson, 2022/08/16
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Ilya Leoshkevich, 2022/08/17
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Richard Henderson, 2022/08/17
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Ilya Leoshkevich, 2022/08/17
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Richard Henderson, 2022/08/17
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup,
Ilya Leoshkevich <=
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Richard Henderson, 2022/08/17
- Re: [PATCH for-7.2 14/21] accel/tcg: Hoist get_page_addr_code out of tb_lookup, Richard Henderson, 2022/08/17
[PATCH for-7.2 12/21] accel/tcg: Add nofault parameter to get_page_addr_code_hostp, Richard Henderson, 2022/08/12
[PATCH for-7.2 16/21] accel/tcg: Raise PROT_EXEC exception early, Richard Henderson, 2022/08/12
[PATCH for-7.2 15/21] accel/tcg: Hoist get_page_addr_code out of tb_gen_code, Richard Henderson, 2022/08/12
[PATCH for-7.2 17/21] accel/tcg: Introduce is_same_page(), Richard Henderson, 2022/08/12
[PATCH for-7.2 18/21] accel/tcg: Remove translator_ldsw, Richard Henderson, 2022/08/12
[PATCH for-7.2 20/21] accel/tcg: Add fast path for translator_ld*, Richard Henderson, 2022/08/12
[PATCH for-7.2 19/21] accel/tcg: Add pc and host_pc params to gen_intermediate_code, Richard Henderson, 2022/08/12
[PATCH for-7.2 21/21] accel/tcg: Use DisasContextBase in plugin_gen_tb_start, Richard Henderson, 2022/08/12