mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Sean Christopherson <seanjc@google.com>
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
	linuxppc-dev@lists.ozlabs.org,
	Michael Ellerman <mpe@ellerman.id.au>,
	Christophe Leroy <chleroy@kernel.org>,
	Anushree Mathur <anushree.mathur@linux.ibm.com>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Shrikanth Hegde <sshegde@linux.ibm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 5/9] KVM: selftests: Make kvm_create_max_vcpus tolerate ENOMEM
Date: Sat, 03 Oct 2026 11:15:20 +0530	[thread overview]
Message-ID: <jynzjq1b.ritesh.list@gmail.com> (raw)
In-Reply-To: <asAtNhSQHDy_k0d_@google.com>

Sean Christopherson <seanjc@google.com> writes:

> On Tue, Sep 22, 2026, Ritesh Harjani (IBM) wrote:
>> diff --git a/tools/testing/selftests/kvm/kvm_create_max_vcpus.c b/tools/testing/selftests/kvm/kvm_create_max_vcpus.c
>> index 59ddc3757943..45a9d8b369b5 100644
>> --- a/tools/testing/selftests/kvm/kvm_create_max_vcpus.c
>> +++ b/tools/testing/selftests/kvm/kvm_create_max_vcpus.c
>> @@ -20,16 +20,29 @@
>>  void test_vcpu_creation(int first_vcpu_id, int num_vcpus)
>>  {
>>  	struct kvm_vm *vm;
>> -	int i;
>> +	struct kvm_vcpu *vcpu;
>> +	int i, created = 0;
>>  
>>  	pr_info("Testing creating %d vCPUs, with IDs %d...%d.\n",
>>  		num_vcpus, first_vcpu_id, first_vcpu_id + num_vcpus - 1);
>>  
>>  	vm = vm_create_barebones();
>>  
>> -	for (i = first_vcpu_id; i < first_vcpu_id + num_vcpus; i++)
>> -		/* This asserts that the vCPU was created. */
>> -		__vm_vcpu_add(vm, i);
>> +	for (i = first_vcpu_id; i < first_vcpu_id + num_vcpus; i++) {
>> +		vcpu = __vm_vcpu_try_add(vm, i);
>> +		if (vcpu) {
>> +			created++;
>> +			continue;
>> +		}
>
> Oof.  I dislike this, to put it very mildly.  Is this the KVM_CAP_PPC_SMT thing
> again, or something else?
>

No, this is not the SMT issue, where PowerPC encodes topology in the id,
so we cannot use the full MAX_VCPU_ID range without a valid SMT layout.
That problem we have fixed in Patch-2.

This is resource limitation on L0 Hypervisor for KVM-on-PowerVM
(nestedv2) case. On nestedv2, KVM_CREATE_VCPU is an hcall to the PowerVM
hypervisor (H_GUEST_CREATE_VCPU). Now MAX_VCPUS or the MAX_VCPU_ID are
the max vcpuid range limits, but that is not a promise. L0 can still run
out of guest management space, i.e. the hcall can fail with
H_Not_Enough_Resources error as per platform HCALL specification.
KVM maps this hcall's out of resource error to -ENOMEM.

> Assuming it's KVM_CAP_PPC_SMT, is there really no way userspace can pre-probe the
> "real" limit?  Or modify the test to enable KVM_CAP_PPC_SMT and do the proper
> striding?  Eating -ENOMEM is all kinds of gross, and I really don't want to add
> __vm_vcpu_try_add().

We already probed for max vcpu id range limit. I don't think userspace
can probe for anything else here. But let me think about this a bit and
get back. Maybe I can see if I can drop the helper.

-ritesh

  reply	other threads:[~2026-10-03  6:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22 18:28 [PATCH v5 0/9] KVM: selftests: add powerpc support Ritesh Harjani (IBM)
2026-09-22 18:28 ` [PATCH v5 1/9] KVM: PPC: selftests: add support for powerpc Ritesh Harjani (IBM)
2026-10-02 22:12   ` Sean Christopherson
2026-09-22 18:28 ` [PATCH v5 2/9] KVM: selftests: Enable kvm_create_max_vcpus test " Ritesh Harjani (IBM)
2026-09-22 18:28 ` [PATCH v5 3/9] KVM: selftests: Don't limit LE dirty-bitmap bitops to s390x Ritesh Harjani (IBM)
2026-09-22 18:28 ` [PATCH v5 4/9] KVM: selftests: Split out a KVM_CREATE_VCPU helper that can fail Ritesh Harjani (IBM)
2026-09-22 18:28 ` [PATCH v5 5/9] KVM: selftests: Make kvm_create_max_vcpus tolerate ENOMEM Ritesh Harjani (IBM)
2026-10-02 22:16   ` Sean Christopherson
2026-10-03  5:45     ` Ritesh Harjani [this message]
2026-09-22 18:28 ` [PATCH v5 6/9] KVM: selftests: Limit the number of VM creates in hardware_disable_test Ritesh Harjani (IBM)
2026-10-02 22:19   ` Sean Christopherson
2026-10-03  6:01     ` Ritesh Harjani
2026-09-22 18:28 ` [PATCH v5 7/9] KVM: PPC: selftests: Make nested case on pseries LPARs as resource constrained Ritesh Harjani (IBM)
2026-09-22 18:28 ` [PATCH v5 8/9] KVM: PPC: selftests: Skip idle-page check when running nested on pseries LPAR Ritesh Harjani (IBM)
2026-09-22 18:28 ` [PATCH v5 9/9] KVM: selftests: Move memslot_perf_test off the 256M ELF load address Ritesh Harjani (IBM)
2026-10-02 22:28   ` Sean Christopherson
2026-09-29  1:35 ` [PATCH v5 0/9] KVM: selftests: add powerpc support Ritesh Harjani
2026-10-02 22:38   ` Sean Christopherson
2026-10-03  6:46     ` Ritesh Harjani
2026-09-29  5:49 ` Anushree Mathur

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=jynzjq1b.ritesh.list@gmail.com \
    --to=ritesh.list@gmail.com \
    --cc=anushree.mathur@linux.ibm.com \
    --cc=chleroy@kernel.org \
    --cc=harshpb@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.ibm.com \
    --cc=mpe@ellerman.id.au \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=sshegde@linux.ibm.com \
    --cc=venkat88@linux.ibm.com \
    /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

all inboxes | Powered by JetHome®