Commit e55f4d58 authored by Cédric Le Goater's avatar Cédric Le Goater Committed by Paul Mackerras
Browse files

KVM: PPC: Book3S HV: Increase KVMPPC_NR_LPIDS on POWER8 and POWER9



POWER8 and POWER9 have 12-bit LPIDs. Change LPID_RSVD to support up to
(4096 - 2) guests on these processors. POWER7 is kept the same with a
limitation of (1024 - 2), but it might be time to drop KVM support for
POWER7.

Tested with 2048 guests * 4 vCPUs on a witherspoon system with 512G
RAM and a bit of swap.

Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
parent 4cb4ade1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -473,7 +473,8 @@
#ifndef SPRN_LPID
#define SPRN_LPID	0x13F	/* Logical Partition Identifier */
#endif
#define   LPID_RSVD	0x3ff		/* Reserved LPID for partn switching */
#define   LPID_RSVD_POWER7	0x3ff	/* Reserved LPID for partn switching */
#define   LPID_RSVD		0xfff	/* Reserved LPID for partn switching */
#define	SPRN_HMER	0x150	/* Hypervisor maintenance exception reg */
#define   HMER_DEBUG_TRIG	(1ul << (63 - 17)) /* Debug trigger */
#define	SPRN_HMEER	0x151	/* Hyp maintenance exception enable reg */
+6 −2
Original line number Diff line number Diff line
@@ -260,11 +260,15 @@ int kvmppc_mmu_hv_init(void)
	if (!mmu_has_feature(MMU_FTR_LOCKLESS_TLBIE))
		return -EINVAL;

	/* POWER7 has 10-bit LPIDs (12-bit in POWER8) */
	host_lpid = 0;
	if (cpu_has_feature(CPU_FTR_HVMODE))
		host_lpid = mfspr(SPRN_LPID);

	/* POWER8 and above have 12-bit LPIDs (10-bit in POWER7) */
	if (cpu_has_feature(CPU_FTR_ARCH_207S))
		rsvd_lpid = LPID_RSVD;
	else
		rsvd_lpid = LPID_RSVD_POWER7;

	kvmppc_init_lpid(rsvd_lpid + 1);