qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Dario Faggioli <dfaggioli@suse.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"eduardo@habkost.net" <eduardo@habkost.net>,
	"mst@redhat.com" <mst@redhat.com>,
	"marcel.apfelbaum@gmail.com" <marcel.apfelbaum@gmail.com>,
	"richard.henderson@linaro.org" <richard.henderson@linaro.org>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>
Subject: Re: How about increasing max_cpus for q35 ?
Date: Fri, 11 Nov 2022 10:47:20 +0000	[thread overview]
Message-ID: <Y24oOMgmf9QYQkXm@redhat.com> (raw)
In-Reply-To: <c705d0d8d6ed1a520b1ff92cb2f83fef19522d30.camel@suse.com>

On Wed, Nov 09, 2022 at 01:36:07PM +0000, Dario Faggioli wrote:
> Hello,
> 
> Sorry for the potentially naive question, but I'm not clear what the
> process would be if, say, I'd like to raise the number of maximum CPUs
> a q35 VM can have.
> 
> So, right now we have:
> 
> void pc_q35_2_7_machine_options(MachineClass *m) {
>   ...
>   m->max_cpus = 255;
> }
> 
> And:
> 
> void pc_q35_machine_options(MachineClass *m)
> {
>   ...
>   m->max_cpus = 288;
> }
> 
> Focusing on the latter, it comes from this commit:
> 
> https://gitlab.com/qemu-project/qemu/-/commit/00d0f9fd6602a27b204f672ef5bc8e69736c7ff1
>   
>   pc: q35: Bump max_cpus to 288
> 
>   Along with it for machine versions 2.7 and older keep
>   it at 255.
> 
> So, it was 255 and is now 288. This seems to me to be there since QEMU
> 2.8.0.
> 
> Now, as far as I understand, KVM can handle 1024, at least since this
> commit (and a couple of other related ones):
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=074c82c8f7cf8a46c3b81965f122599e3a133450
> "kvm: x86: Increase MAX_VCPUS to 1024"
> 
> Which basically does:
> 
> -#define KVM_MAX_VCPUS 288
> +#define KVM_MAX_VCPUS 1024
> 
> And it's included in kernels >= 5.15.
> 
> So, what's the correct way of bumping up the limit again? Just changing
> that assignment in pc_q35_machine_options() ? Or do we want a new
> version of the machine type or something like that?

Too late for this release, so we need to wait until the new release
cycle opens, with thue addition of the 8.0.0 machine types. Then
just set 'max_cpus' in the new machine type.

In RHEL downstream we've set max_cpus = 710 for x86_64, because this
is the largest that was possible without hitting SMBIOS limits. The
problem was the use of the 32-bit entry point on PC machine types.

If we switch Q35 to use the 64-bit entry point, we should be able
to go straight to 1024 IIUC.  We were blocked changing the entry
point previously by need to have support in both SeaBIOS and UEFI
builds. I'm not sure what the status of this is, for the ROMS we
currently have in QEMU git. If both SeaBIOS and UEFI ROMs now
support 64-bit SMBIOS, then we can switch Q35 to it.

With 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 :|



  parent reply	other threads:[~2022-11-11 10:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-09 13:36 How about increasing max_cpus for q35 ? Dario Faggioli
2022-11-11 10:33 ` Igor Mammedov
2022-11-11 10:47 ` Daniel P. Berrangé [this message]
2022-11-11 13:40   ` Igor Mammedov

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=Y24oOMgmf9QYQkXm@redhat.com \
    --to=berrange@redhat.com \
    --cc=dfaggioli@suse.com \
    --cc=eduardo@habkost.net \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.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 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).