Daniel P. Berrangé <berra...@redhat.com> writes:
> On Wed, Jul 22, 2020 at 12:02:59PM -0700, Richard Henderson wrote: >> On 7/22/20 9:44 AM, Daniel P. Berrangé wrote: >> > OpenStack uses TCG in alot of their CI infrastructure for example >> > and runs multiple VMs. If there's 4 VMs, that's another 4 GB of >> > RAM usage just silently added on top of the explicit -m value. >> > >> > I wouldn't be surprised if this pushes CI into OOM, even without >> > containers or cgroups being involved, as they have plenty of other >> > services consuming RAM in the CI VMs. >> >> I would hope that CI would also supply a -tb_size to go along with that -m >> value. Because we really can't guess on their behalf. > > I've never even seen mention of -tb_size argument before myself, nor > seen anyone else using it and libvirt doesn't set it, so I think > this is not a valid assumption. > > >> > The commit 600e17b261555c56a048781b8dd5ba3985650013 talks about this >> > minimizing codegen cache flushes, but doesn't mention the real world >> > performance impact of eliminating those flushes ? >> >> Somewhere on the mailing list was this info. It was so dreadfully slow it >> was >> *really* noticable. Timeouts everywhere. >> >> > Presumably this makes the guest OS boot faster, but what's the before >> > and after time ? And what's the time like for values in between the >> > original 32mb and the new 1 GB ? >> >> But it wasn't "the original 32MB". >> It was the original "ram_size / 4", until that broke due to argument parsing >> ordering. > > Hmm, 600e17b261555c56a048781b8dd5ba3985650013 says it was 32 MB as the > default in its commit message, which seems to match the code doing > > #define DEFAULT_CODE_GEN_BUFFER_SIZE_1 (32 * MiB) You need to look earlier in the sequence (see the tag pull-tcg-20200228): 47a2def4533a2807e48954abd50b32ecb1aaf29a so when the argument ordering broke the guest ram_size heuristic we started getting reports of performance regressions because we fell back to that size. Before then it was always based on guest ram size within the min/max bounds set by those defines. >> I don't know what CI usually uses, but I usually use at least -m 4G, >> sometimes >> more. What's the libvirt default? > > There's no default memory size - its up to whomever/whatever creates the > VMs to choose how much RAM is given. > > Regards, > Daniel -- Alex Bennée