mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
KVM: selftests: Add helper for checking if running on powerpc pseries LPAR
PowerPC's PAPR L0 does not guarantee H_GUEST_CREATE/H_GUEST_CREATE_VCPU hcalls to create upto MAX_VCPUS or hundreds of VMs, this is due to limited resouces at L0 for guest management space. This helper allows us to skip such tests which creates a lot of VMs/VCPUs, when we are running nested. Note that there is no easy way to differentiate between running nested on PowerNV v/s kvm-on-powervm case. So we use a common helper to detect any nested case. The helper is added to the common kvm_util header file to avoid sprinkling multiple #ifdef __powerpc64__ everywhere. Suggested-by: Sean Christopherson <seanjc@google.com> Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com> Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Reviewed-by: Gautam Menghani <gautam@linux.ibm.com> Tested-by: Gautam Menghani <gautam@linux.ibm.com> Acked-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/294c0fcd19d6b00626e230985cf9906f98934d1c.1791280439.git.ritesh.list@gmail.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
2bc2c4a810
commit
5527310b4d
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/kvm.h>
|
||||
#include "linux/rbtree.h"
|
||||
#include <linux/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/kvm.h>
|
||||
|
|
@ -1054,6 +1055,22 @@ const char *exit_reason_str(unsigned int exit_reason);
|
|||
|
||||
bool kvm_arch_needs_naturally_aligned_page_tables(void);
|
||||
|
||||
/*
|
||||
* True on powerpc when this host is a pseries LPAR (nested case).
|
||||
* PowerPC's PAPR L0 does not guarantee H_GUEST_CREATE / H_GUEST_CREATE_VCPU up
|
||||
* to MAX_VCPUS or creating hundreds of VMs - due to limited resouces at L0 for
|
||||
* guest management space. This helper allows us to skip such tests when we are
|
||||
* running nested.
|
||||
*/
|
||||
static inline bool kvm_is_ppc_pseries_lpar(void)
|
||||
{
|
||||
#ifdef __powerpc64__
|
||||
return !access("/proc/device-tree/rtas/ibm,hypertas-functions", F_OK);
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
gpa_t ____vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa,
|
||||
u32 memslot, bool protected, bool naturally_aligned);
|
||||
gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user