From: Igor Mammedov <imammedo@redhat.com>
To: Howard Spoelstra <hsp.cat7@gmail.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"QEMU Developers" <qemu-devel@nongnu.org>,
"Niek Linnenbank" <nieklinnenbank@gmail.com>,
qemu-arm <qemu-arm@nongnu.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: Re: Sudden slowdown of ARM emulation in master
Date: Wed, 26 Feb 2020 11:14:49 +0100 [thread overview]
Message-ID: <20200226111449.27530c6b@redhat.com> (raw)
In-Reply-To: <CABLmASFMv5MziuMKBdi0wydB9bKVZ-uYJ4_B_0a-YUQVk0nHYw@mail.gmail.com>
On Wed, 26 Feb 2020 10:32:38 +0100
Howard Spoelstra <hsp.cat7@gmail.com> wrote:
> On Wed, Feb 26, 2020 at 10:19 AM Igor Mammedov <imammedo@redhat.com> wrote:
>
> > On Wed, 26 Feb 2020 00:07:55 +0100
> > Niek Linnenbank <nieklinnenbank@gmail.com> wrote:
> >
> > > Hello Igor and Paolo,
> >
> > does following hack solves issue?
> >
> > diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> > index a08ab11f65..ab2448c5aa 100644
> > --- a/accel/tcg/translate-all.c
> > +++ b/accel/tcg/translate-all.c
> > @@ -944,7 +944,7 @@ static inline size_t size_code_gen_buffer(size_t
> > tb_size)
> > /* ??? If we relax the requirement that CONFIG_USER_ONLY use the
> > static buffer, we could size this on RESERVED_VA, on the text
> > segment size of the executable, or continue to use the
> > default. */
> > - tb_size = (unsigned long)(ram_size / 4);
> > + tb_size = MAX_CODE_GEN_BUFFER_SIZE;
> > #endif
> > }
> > if (tb_size < MIN_CODE_GEN_BUFFER_SIZE) {
> >
> >
>
> Nice, for me, that brings qemu-system-ppc back up to speed. (applied to
> ppc-for-5.0)
thanks for confirming.
My patch a1b18df9a4 'vl.c: move -m parsing after memory backends has been processed'
moved ram_size parsing after accelerator init, but tcg allocates
buffer based on global ram_size and since ram_size is still 0 it
falls back to MIN_CODE_GEN_BUFFER_SIZE (see size_code_gen_buffer)
and if ram_size were too large it would cap buffet at
MAX_CODE_GEN_BUFFER_SIZE.
*-user doesn't use ram_size, it uses DEFAULT_CODE_GEN_BUFFER_SIZE
and static buffer so it's no affected.
For softmmu it should be possible to postpone buffer allocation
till accel_setup_post(current_machine) time and fetch ram_size
from current machine dropping random access to global variable.
That would put buffer allocation after ram_size is parsed.
Does it look like a feasible approach?
>
> Best,
> Howard
next prev parent reply other threads:[~2020-02-26 10:15 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-25 23:07 Sudden slowdown of ARM emulation in master Niek Linnenbank
2020-02-26 8:41 ` Peter Maydell
2020-02-26 8:44 ` Philippe Mathieu-Daudé
2020-02-26 8:48 ` Peter Maydell
2020-02-26 8:51 ` Philippe Mathieu-Daudé
2020-02-26 8:45 ` Howard Spoelstra
2020-02-26 9:11 ` Igor Mammedov
2020-02-26 9:19 ` Igor Mammedov
2020-02-26 9:32 ` Howard Spoelstra
2020-02-26 10:14 ` Igor Mammedov [this message]
2020-02-26 10:03 ` Peter Maydell
2020-02-26 10:36 ` Mark Cave-Ayland
2020-02-26 14:13 ` Alex Bennée
2020-02-26 14:13 ` Alex Bennée
2020-02-26 14:45 ` Igor Mammedov
2020-02-26 14:45 ` Igor Mammedov
2020-02-26 15:29 ` Alex Bennée
2020-02-26 15:29 ` Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200226111449.27530c6b@redhat.com \
--to=imammedo@redhat.com \
--cc=hsp.cat7@gmail.com \
--cc=nieklinnenbank@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.