From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: fam@euphon.net, richard.henderson@linaro.org,
qemu-devel@nongnu.org,
Christian Ehrhardt <christian.ehrhardt@canonical.com>,
f4bug@amsat.org, cota@braap.org,
Paolo Bonzini <pbonzini@redhat.com>,
aurelien@aurel32.net, Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH v1 5/5] accel/tcg: better handle memory constrained systems
Date: Fri, 17 Jul 2020 15:39:08 +0100 [thread overview]
Message-ID: <20200717143908.GI244185@redhat.com> (raw)
In-Reply-To: <20200717105139.25293-6-alex.bennee@linaro.org>
On Fri, Jul 17, 2020 at 11:51:39AM +0100, Alex Bennée wrote:
> It turns out there are some 64 bit systems that have relatively low
> amounts of physical memory available to them (typically CI system).
> Even with swapping available a 1GB translation buffer that fills up
> can put the machine under increased memory pressure. Detect these low
> memory situations and reduce tb_size appropriately.
>
> Fixes: 600e17b261
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: BALATON Zoltan <balaton@eik.bme.hu>
> Cc: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
> accel/tcg/translate-all.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> index 2afa46bd2b1..2ff0ba6d19b 100644
> --- a/accel/tcg/translate-all.c
> +++ b/accel/tcg/translate-all.c
> @@ -976,7 +976,12 @@ static inline size_t size_code_gen_buffer(size_t tb_size)
> {
> /* Size the buffer. */
> if (tb_size == 0) {
> - tb_size = DEFAULT_CODE_GEN_BUFFER_SIZE;
> + size_t phys_mem = qemu_get_host_physmem();
> + if (phys_mem > 0 && phys_mem < (2 * DEFAULT_CODE_GEN_BUFFER_SIZE)) {
> + tb_size = phys_mem / 4;
> + } else {
> + tb_size = DEFAULT_CODE_GEN_BUFFER_SIZE;
> + }
I'm not convinced this is going to work when running QEMU inside a
container environment with RAM cap, because the physmem level is
completely unrelated to the RAM the container is permitted to actually
use in practice. ie host has 32 GB of RAM, but the container QEMU is
in only has 1 GB permitted.
I don't have much of a better suggestion, as I don't think we want
to get into reading the cgroups memory limits. It does feel like the
assumption we can blindly use a 1GB cache though is invalid even
with this patch applied.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2020-07-17 14:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-17 10:51 [PATCH v1 0/5] candidate fixes for 5.1-rc1 (shippable, semihosting, OOM tcg) Alex Bennée
2020-07-17 10:51 ` [PATCH v1 1/5] shippable: add one more qemu to registry url Alex Bennée
2020-07-17 19:41 ` Philippe Mathieu-Daudé
2020-07-17 10:51 ` [PATCH v1 2/5] semihosting: defer connect_chardevs a little more to use serialx Alex Bennée
2020-07-17 17:41 ` Richard Henderson
2020-07-17 10:51 ` [PATCH v1 3/5] semihosting: don't send the trailing '\0' Alex Bennée
2020-07-17 17:47 ` Richard Henderson
2020-07-17 10:51 ` [PATCH v1 4/5] util: add qemu_get_host_physmem utility function Alex Bennée
2020-07-17 13:32 ` BALATON Zoltan
2020-07-17 14:24 ` Christian Ehrhardt
2020-07-17 18:00 ` Richard Henderson
2020-07-21 13:50 ` Alex Bennée
2020-07-17 18:05 ` Richard Henderson
2020-07-21 15:58 ` Alex Bennée
2020-07-17 10:51 ` [PATCH v1 5/5] accel/tcg: better handle memory constrained systems Alex Bennée
2020-07-17 14:23 ` Christian Ehrhardt
2020-07-17 14:39 ` Daniel P. Berrangé [this message]
2020-07-17 14:55 ` Alex Bennée
2020-07-17 15:00 ` Daniel P. Berrangé
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=20200717143908.GI244185@redhat.com \
--to=berrange@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=aurelien@aurel32.net \
--cc=christian.ehrhardt@canonical.com \
--cc=cota@braap.org \
--cc=f4bug@amsat.org \
--cc=fam@euphon.net \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=rth@twiddle.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).