linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] powerpc/64: Preparation for KVM support on POWER9
@ 2016-11-21  4:56 Paul Mackerras
  2016-11-21  5:00 ` [PATCH 1/4] powerpc/64: Add some more SPRs and SPR bits for POWER9 Paul Mackerras
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Paul Mackerras @ 2016-11-21  4:56 UTC (permalink / raw)
  To: kvm, linuxppc-dev

This patch series, based on the current powerpc next branch, adds
various things we need in arch/powerpc in order to support KVM on
POWER9.

Michael, could you put these in a topic branch that I can pull?

Paul.
---

 arch/powerpc/include/asm/mmu.h                 |  5 ++++
 arch/powerpc/include/asm/opal.h                |  3 +++
 arch/powerpc/include/asm/reg.h                 | 12 +++++++++
 arch/powerpc/mm/hash_utils_64.c                | 28 +++------------------
 arch/powerpc/mm/pgtable-radix.c                | 18 +++++---------
 arch/powerpc/mm/pgtable_64.c                   | 34 ++++++++++++++++++++++++++
 arch/powerpc/platforms/powernv/opal-wrappers.S |  3 +++
 arch/powerpc/platforms/powernv/opal.c          |  2 ++
 8 files changed, 69 insertions(+), 36 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] powerpc/64: Add some more SPRs and SPR bits for POWER9
  2016-11-21  4:56 [PATCH 0/4] powerpc/64: Preparation for KVM support on POWER9 Paul Mackerras
@ 2016-11-21  5:00 ` Paul Mackerras
  2016-11-21  5:00 ` [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table Paul Mackerras
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Paul Mackerras @ 2016-11-21  5:00 UTC (permalink / raw)
  To: kvm, linuxppc-dev

These definitions will be needed by KVM.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
---
 arch/powerpc/include/asm/reg.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index c491cfe..d2f868a 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -153,6 +153,8 @@
 #define PSSCR_EC		0x00100000 /* Exit Criterion */
 #define PSSCR_ESL		0x00200000 /* Enable State Loss */
 #define PSSCR_SD		0x00400000 /* Status Disable */
+#define PSSCR_PLS	0xf000000000000000 /* Power-saving Level Status */
+#define PSSCR_GUEST_VIS	0xf0000000000003ff /* Guest-visible PSSCR fields */
 
 /* Floating Point Status and Control Register (FPSCR) Fields */
 #define FPSCR_FX	0x80000000	/* FPU exception summary */
@@ -236,6 +238,7 @@
 #define SPRN_TEXASRU	0x83	/* ''	   ''	   ''	 Upper 32  */
 #define   TEXASR_FS	__MASK(63-36) /* TEXASR Failure Summary */
 #define SPRN_TFHAR	0x80	/* Transaction Failure Handler Addr */
+#define SPRN_TIDR	144	/* Thread ID register */
 #define SPRN_CTRLF	0x088
 #define SPRN_CTRLT	0x098
 #define   CTRL_CT	0xc0000000	/* current thread */
@@ -292,6 +295,7 @@
 #define SPRN_HRMOR	0x139	/* Real mode offset register */
 #define SPRN_HSRR0	0x13A	/* Hypervisor Save/Restore 0 */
 #define SPRN_HSRR1	0x13B	/* Hypervisor Save/Restore 1 */
+#define SPRN_ASDR	0x330	/* Access segment descriptor register */
 #define SPRN_IC		0x350	/* Virtual Instruction Count */
 #define SPRN_VTB	0x351	/* Virtual Time Base */
 #define SPRN_LDBAR	0x352	/* LD Base Address Register */
@@ -352,6 +356,7 @@
 #define     LPCR_PECE2		ASM_CONST(0x0000000000001000)	/* machine check etc can cause exit */
 #define   LPCR_MER		ASM_CONST(0x0000000000000800)	/* Mediated External Exception */
 #define   LPCR_MER_SH		11
+#define	  LPCR_GTSE		ASM_CONST(0x0000000000000400)  	/* Guest Translation Shootdown Enable */
 #define   LPCR_TC		ASM_CONST(0x0000000000000200)	/* Translation control */
 #define   LPCR_LPES		0x0000000c
 #define   LPCR_LPES0		ASM_CONST(0x0000000000000008)      /* LPAR Env selector 0 */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table
  2016-11-21  4:56 [PATCH 0/4] powerpc/64: Preparation for KVM support on POWER9 Paul Mackerras
  2016-11-21  5:00 ` [PATCH 1/4] powerpc/64: Add some more SPRs and SPR bits for POWER9 Paul Mackerras
@ 2016-11-21  5:00 ` Paul Mackerras
  2016-11-21  7:14   ` kbuild test robot
  2016-11-21  5:01 ` [PATCH 3/4] powerpc/powernv: Define real-mode versions of OPAL XICS accessors Paul Mackerras
  2016-11-21  5:02 ` [PATCH 4/4] powerpc/64: Define new ISA v3.00 logical PVR value and PCR register value Paul Mackerras
  3 siblings, 1 reply; 9+ messages in thread
From: Paul Mackerras @ 2016-11-21  5:00 UTC (permalink / raw)
  To: kvm, linuxppc-dev

POWER9 requires the host to set up a partition table, which is a
table in memory indexed by logical partition ID (LPID) which
contains the pointers to page tables and process tables for the
host and each guest.

This factors out the initialization of the partition table into
a single function.  This code was previously duplicated between
hash_utils_64.c and pgtable-radix.c.

This provides a function for setting a partition table entry,
which is used in early MMU initialization, and will be used by
KVM whenever a guest is created.  This function includes a tlbie
instruction which will flush all TLB entries for the LPID and
all caches of the partition table entry for the LPID, across the
system.

This also moves a call to memblock_set_current_limit(), which was
in radix_init_partition_table(), but has nothing to do with the
partition table.  By analogy with the similar code for hash, the
call gets moved to near the end of radix__early_init_mmu().  It
now gets called when running as a guest, whereas previously it
would only be called if the kernel is running as the host.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
---
 arch/powerpc/include/asm/mmu.h  |  5 +++++
 arch/powerpc/mm/hash_utils_64.c | 28 ++++------------------------
 arch/powerpc/mm/pgtable-radix.c | 18 ++++++------------
 arch/powerpc/mm/pgtable_64.c    | 34 ++++++++++++++++++++++++++++++++++
 4 files changed, 49 insertions(+), 36 deletions(-)

diff --git a/arch/powerpc/include/asm/mmu.h b/arch/powerpc/include/asm/mmu.h
index e883683..060b40b 100644
--- a/arch/powerpc/include/asm/mmu.h
+++ b/arch/powerpc/include/asm/mmu.h
@@ -208,6 +208,11 @@ extern u64 ppc64_rma_size;
 /* Cleanup function used by kexec */
 extern void mmu_cleanup_all(void);
 extern void radix__mmu_cleanup_all(void);
+
+/* Functions for creating and updating partition table on POWER9 */
+extern void mmu_partition_table_init(void);
+extern void mmu_partition_table_set_entry(unsigned int lpid, unsigned long dw0,
+					  unsigned long dw1);
 #endif /* CONFIG_PPC64 */
 
 struct mm_struct;
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 44d3c3a..b9a062f 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -792,37 +792,17 @@ static void update_hid_for_hash(void)
 static void __init hash_init_partition_table(phys_addr_t hash_table,
 					     unsigned long htab_size)
 {
-	unsigned long ps_field;
-	unsigned long patb_size = 1UL << PATB_SIZE_SHIFT;
+	mmu_partition_table_init();
 
 	/*
-	 * slb llp encoding for the page size used in VPM real mode.
-	 * We can ignore that for lpid 0
+	 * PS field (VRMA page size) is not used for LPID 0, hence set to 0.
+	 * For now, UPRT is 0 and we have no segment table.
 	 */
-	ps_field = 0;
 	htab_size =  __ilog2(htab_size) - 18;
-
-	BUILD_BUG_ON_MSG((PATB_SIZE_SHIFT > 24), "Partition table size too large.");
-	partition_tb = __va(memblock_alloc_base(patb_size, patb_size,
-						MEMBLOCK_ALLOC_ANYWHERE));
-
-	/* Initialize the Partition Table with no entries */
-	memset((void *)partition_tb, 0, patb_size);
-	partition_tb->patb0 = cpu_to_be64(ps_field | hash_table | htab_size);
-	/*
-	 * FIXME!! This should be done via update_partition table
-	 * For now UPRT is 0 for us.
-	 */
-	partition_tb->patb1 = 0;
+	mmu_partition_table_set_entry(0, hash_table | htab_size, 0);
 	pr_info("Partition table %p\n", partition_tb);
 	if (cpu_has_feature(CPU_FTR_POWER9_DD1))
 		update_hid_for_hash();
-	/*
-	 * update partition table control register,
-	 * 64 K size.
-	 */
-	mtspr(SPRN_PTCR, __pa(partition_tb) | (PATB_SIZE_SHIFT - 12));
-
 }
 
 static void __init htab_initialize(void)
diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
index e93e384..8d00ab4 100644
--- a/arch/powerpc/mm/pgtable-radix.c
+++ b/arch/powerpc/mm/pgtable-radix.c
@@ -177,23 +177,15 @@ static void __init radix_init_pgtable(void)
 
 static void __init radix_init_partition_table(void)
 {
-	unsigned long rts_field;
+	unsigned long rts_field, dw0;
 
+	mmu_partition_table_init();
 	rts_field = radix__get_tree_size();
+	dw0 = rts_field | __pa(init_mm.pgd) | RADIX_PGD_INDEX_SIZE | PATB_HR;
+	mmu_partition_table_set_entry(0, dw0, 0);
 
-	BUILD_BUG_ON_MSG((PATB_SIZE_SHIFT > 36), "Partition table size too large.");
-	partition_tb = early_alloc_pgtable(1UL << PATB_SIZE_SHIFT);
-	partition_tb->patb0 = cpu_to_be64(rts_field | __pa(init_mm.pgd) |
-					  RADIX_PGD_INDEX_SIZE | PATB_HR);
 	pr_info("Initializing Radix MMU\n");
 	pr_info("Partition table %p\n", partition_tb);
-
-	memblock_set_current_limit(MEMBLOCK_ALLOC_ANYWHERE);
-	/*
-	 * update partition table control register,
-	 * 64 K size.
-	 */
-	mtspr(SPRN_PTCR, __pa(partition_tb) | (PATB_SIZE_SHIFT - 12));
 }
 
 void __init radix_init_native(void)
@@ -378,6 +370,8 @@ void __init radix__early_init_mmu(void)
 		radix_init_partition_table();
 	}
 
+	memblock_set_current_limit(MEMBLOCK_ALLOC_ANYWHERE);
+
 	radix_init_pgtable();
 }
 
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index f5e8d4e..48ba056 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -431,3 +431,37 @@ void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift)
 	}
 }
 #endif
+
+#ifdef CONFIG_PPC_BOOK3S_64
+void mmu_partition_table_init(void)
+{
+	unsigned long patb_size = 1UL << PATB_SIZE_SHIFT;
+
+	BUILD_BUG_ON_MSG((PATB_SIZE_SHIFT > 36), "Partition table size too large.");
+	partition_tb = __va(memblock_alloc_base(patb_size, patb_size,
+						MEMBLOCK_ALLOC_ANYWHERE));
+
+	/* Initialize the Partition Table with no entries */
+	memset((void *)partition_tb, 0, patb_size);
+
+	/*
+	 * update partition table control register,
+	 * 64 K size.
+	 */
+	mtspr(SPRN_PTCR, __pa(partition_tb) | (PATB_SIZE_SHIFT - 12));
+}
+
+void mmu_partition_table_set_entry(unsigned int lpid, unsigned long dw0,
+				   unsigned long dw1)
+{
+	partition_tb[lpid].patb0 = cpu_to_be64(dw0);
+	partition_tb[lpid].patb1 = cpu_to_be64(dw1);
+
+	/* Global flush of TLBs and partition table caches for this lpid */
+	asm volatile("ptesync" : : : "memory");
+	asm volatile(PPC_TLBIE_5(%0,%1,2,0,0) : :
+		     "r" (TLBIEL_INVAL_SET_LPID), "r" (lpid));
+	asm volatile("eieio; tlbsync; ptesync" : : : "memory");
+}
+EXPORT_SYMBOL_GPL(mmu_partition_table_set_entry);
+#endif /* CONFIG_PPC_BOOK3S_64 */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] powerpc/powernv: Define real-mode versions of OPAL XICS accessors
  2016-11-21  4:56 [PATCH 0/4] powerpc/64: Preparation for KVM support on POWER9 Paul Mackerras
  2016-11-21  5:00 ` [PATCH 1/4] powerpc/64: Add some more SPRs and SPR bits for POWER9 Paul Mackerras
  2016-11-21  5:00 ` [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table Paul Mackerras
@ 2016-11-21  5:01 ` Paul Mackerras
  2016-11-21  5:02 ` [PATCH 4/4] powerpc/64: Define new ISA v3.00 logical PVR value and PCR register value Paul Mackerras
  3 siblings, 0 replies; 9+ messages in thread
From: Paul Mackerras @ 2016-11-21  5:01 UTC (permalink / raw)
  To: kvm, linuxppc-dev

This defines real-mode versions of opal_int_get_xirr(), opal_int_eoi()
and opal_int_set_mfrr(), for use by KVM real-mode code.

It also exports opal_int_set_mfrr() so that the modular part of KVM
can use it to send IPIs.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
---
 arch/powerpc/include/asm/opal.h                | 3 +++
 arch/powerpc/platforms/powernv/opal-wrappers.S | 3 +++
 arch/powerpc/platforms/powernv/opal.c          | 2 ++
 3 files changed, 8 insertions(+)

diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index e958b70..5c7db0f 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc/include/asm/opal.h
@@ -220,9 +220,12 @@ int64_t opal_pci_set_power_state(uint64_t async_token, uint64_t id,
 int64_t opal_pci_poll2(uint64_t id, uint64_t data);
 
 int64_t opal_int_get_xirr(uint32_t *out_xirr, bool just_poll);
+int64_t opal_rm_int_get_xirr(__be32 *out_xirr, bool just_poll);
 int64_t opal_int_set_cppr(uint8_t cppr);
 int64_t opal_int_eoi(uint32_t xirr);
+int64_t opal_rm_int_eoi(uint32_t xirr);
 int64_t opal_int_set_mfrr(uint32_t cpu, uint8_t mfrr);
+int64_t opal_rm_int_set_mfrr(uint32_t cpu, uint8_t mfrr);
 int64_t opal_pci_tce_kill(uint64_t phb_id, uint32_t kill_type,
 			  uint32_t pe_num, uint32_t tce_size,
 			  uint64_t dma_addr, uint32_t npages);
diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S
index 44d2d84..3aa40f1 100644
--- a/arch/powerpc/platforms/powernv/opal-wrappers.S
+++ b/arch/powerpc/platforms/powernv/opal-wrappers.S
@@ -304,8 +304,11 @@ OPAL_CALL(opal_pci_get_presence_state,		OPAL_PCI_GET_PRESENCE_STATE);
 OPAL_CALL(opal_pci_get_power_state,		OPAL_PCI_GET_POWER_STATE);
 OPAL_CALL(opal_pci_set_power_state,		OPAL_PCI_SET_POWER_STATE);
 OPAL_CALL(opal_int_get_xirr,			OPAL_INT_GET_XIRR);
+OPAL_CALL_REAL(opal_rm_int_get_xirr,		OPAL_INT_GET_XIRR);
 OPAL_CALL(opal_int_set_cppr,			OPAL_INT_SET_CPPR);
 OPAL_CALL(opal_int_eoi,				OPAL_INT_EOI);
+OPAL_CALL_REAL(opal_rm_int_eoi,			OPAL_INT_EOI);
 OPAL_CALL(opal_int_set_mfrr,			OPAL_INT_SET_MFRR);
+OPAL_CALL_REAL(opal_rm_int_set_mfrr,		OPAL_INT_SET_MFRR);
 OPAL_CALL(opal_pci_tce_kill,			OPAL_PCI_TCE_KILL);
 OPAL_CALL_REAL(opal_rm_pci_tce_kill,		OPAL_PCI_TCE_KILL);
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 893d8ea..2822935 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -886,3 +886,5 @@ EXPORT_SYMBOL_GPL(opal_leds_get_ind);
 EXPORT_SYMBOL_GPL(opal_leds_set_ind);
 /* Export this symbol for PowerNV Operator Panel class driver */
 EXPORT_SYMBOL_GPL(opal_write_oppanel_async);
+/* Export this for KVM */
+EXPORT_SYMBOL_GPL(opal_int_set_mfrr);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] powerpc/64: Define new ISA v3.00 logical PVR value and PCR register value
  2016-11-21  4:56 [PATCH 0/4] powerpc/64: Preparation for KVM support on POWER9 Paul Mackerras
                   ` (2 preceding siblings ...)
  2016-11-21  5:01 ` [PATCH 3/4] powerpc/powernv: Define real-mode versions of OPAL XICS accessors Paul Mackerras
@ 2016-11-21  5:02 ` Paul Mackerras
  3 siblings, 0 replies; 9+ messages in thread
From: Paul Mackerras @ 2016-11-21  5:02 UTC (permalink / raw)
  To: kvm, linuxppc-dev; +Cc: Suraj Jitindar Singh

From: Suraj Jitindar Singh <sjitindarsingh@gmail.com>

ISA 3.00 adds the logical PVR value 0x0f000005, so add a definition for
this.

Define PCR_ARCH_207 to reflect ISA 2.07 compatibility mode in the processor
compatibility register (PCR).

[paulus@ozlabs.org - moved dummy PCR_ARCH_300 value into next patch]

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
---
 arch/powerpc/include/asm/reg.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index d2f868a..9214e6f 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -377,6 +377,12 @@
 #define   PCR_VEC_DIS	(1ul << (63-0))	/* Vec. disable (bit NA since POWER8) */
 #define   PCR_VSX_DIS	(1ul << (63-1))	/* VSX disable (bit NA since POWER8) */
 #define   PCR_TM_DIS	(1ul << (63-2))	/* Trans. memory disable (POWER8) */
+/*
+ * These bits are used in the function kvmppc_set_arch_compat() to specify and
+ * determine both the compatibility level which we want to emulate and the
+ * compatibility level which the host is capable of emulating.
+ */
+#define   PCR_ARCH_207	0x8		/* Architecture 2.07 */
 #define   PCR_ARCH_206	0x4		/* Architecture 2.06 */
 #define   PCR_ARCH_205	0x2		/* Architecture 2.05 */
 #define	SPRN_HEIR	0x153	/* Hypervisor Emulated Instruction Register */
@@ -1218,6 +1224,7 @@
 #define PVR_ARCH_206	0x0f000003
 #define PVR_ARCH_206p	0x0f100003
 #define PVR_ARCH_207	0x0f000004
+#define PVR_ARCH_300	0x0f000005
 
 /* Macros for setting and retrieving special purpose registers */
 #ifndef __ASSEMBLY__
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table
  2016-11-21  5:00 ` [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table Paul Mackerras
@ 2016-11-21  7:14   ` kbuild test robot
  2016-11-22 11:00     ` Michael Ellerman
  0 siblings, 1 reply; 9+ messages in thread
From: kbuild test robot @ 2016-11-21  7:14 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: kbuild-all, kvm, linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 1371 bytes --]

Hi Paul,

[auto build test WARNING on powerpc/next]
[cannot apply to v4.9-rc6 next-20161117]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Paul-Mackerras/powerpc-64-Preparation-for-KVM-support-on-POWER9/20161121-133431
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

>> WARNING: vmlinux.o(.text+0x5c650): Section mismatch in reference from the function .mmu_partition_table_init() to the function .init.text:.memblock_alloc_base()
   The function .mmu_partition_table_init() references
   the function __init .memblock_alloc_base().
   This is often because .mmu_partition_table_init lacks a __init
   annotation or the annotation of .memblock_alloc_base is wrong.

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 50967 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table
  2016-11-21  7:14   ` kbuild test robot
@ 2016-11-22 11:00     ` Michael Ellerman
  2016-11-22 21:15       ` Paul Mackerras
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Ellerman @ 2016-11-22 11:00 UTC (permalink / raw)
  To: kbuild test robot, Paul Mackerras; +Cc: linuxppc-dev, kbuild-all, kvm

kbuild test robot <lkp@intel.com> writes:
> [auto build test WARNING on powerpc/next]
> [cannot apply to v4.9-rc6 next-20161117]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url:    https://github.com/0day-ci/linux/commits/Paul-Mackerras/powerpc-64-Preparation-for-KVM-support-on-POWER9/20161121-133431
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
> config: powerpc-allyesconfig (attached as .config)
> compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=powerpc 
>
> All warnings (new ones prefixed by >>):
>
>>> WARNING: vmlinux.o(.text+0x5c650): Section mismatch in reference from the function .mmu_partition_table_init() to the function .init.text:.memblock_alloc_base()
>    The function .mmu_partition_table_init() references
>    the function __init .memblock_alloc_base().

>    This is often because .mmu_partition_table_init lacks a __init

Indeed that looks like the problem.

Paul have you already merged the topic branch, or can I squash in a fix
for this? Or I'll just do it on top.

cheers

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table
  2016-11-22 11:00     ` Michael Ellerman
@ 2016-11-22 21:15       ` Paul Mackerras
  2016-11-23  0:35         ` Michael Ellerman
  0 siblings, 1 reply; 9+ messages in thread
From: Paul Mackerras @ 2016-11-22 21:15 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: kbuild test robot, linuxppc-dev, kbuild-all, kvm

On Tue, Nov 22, 2016 at 10:00:58PM +1100, Michael Ellerman wrote:
> kbuild test robot <lkp@intel.com> writes:
> > [auto build test WARNING on powerpc/next]
> > [cannot apply to v4.9-rc6 next-20161117]
> > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> >
> > url:    https://github.com/0day-ci/linux/commits/Paul-Mackerras/powerpc-64-Preparation-for-KVM-support-on-POWER9/20161121-133431
> > base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
> > config: powerpc-allyesconfig (attached as .config)
> > compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> > reproduce:
> >         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> >         chmod +x ~/bin/make.cross
> >         # save the attached .config to linux build tree
> >         make.cross ARCH=powerpc 
> >
> > All warnings (new ones prefixed by >>):
> >
> >>> WARNING: vmlinux.o(.text+0x5c650): Section mismatch in reference from the function .mmu_partition_table_init() to the function .init.text:.memblock_alloc_base()
> >    The function .mmu_partition_table_init() references
> >    the function __init .memblock_alloc_base().
> 
> >    This is often because .mmu_partition_table_init lacks a __init
> 
> Indeed that looks like the problem.
> 
> Paul have you already merged the topic branch, or can I squash in a fix
> for this? Or I'll just do it on top.

I haven't pushed out the merge, so go ahead.

Paul.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table
  2016-11-22 21:15       ` Paul Mackerras
@ 2016-11-23  0:35         ` Michael Ellerman
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2016-11-23  0:35 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: kbuild test robot, linuxppc-dev, kbuild-all, kvm

Paul Mackerras <paulus@ozlabs.org> writes:

> On Tue, Nov 22, 2016 at 10:00:58PM +1100, Michael Ellerman wrote:
>> kbuild test robot <lkp@intel.com> writes:
>> > [auto build test WARNING on powerpc/next]
>> > [cannot apply to v4.9-rc6 next-20161117]
>> > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>> >
>> > url:    https://github.com/0day-ci/linux/commits/Paul-Mackerras/powerpc-64-Preparation-for-KVM-support-on-POWER9/20161121-133431
>> > base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
>> > config: powerpc-allyesconfig (attached as .config)
>> > compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
>> > reproduce:
>> >         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>> >         chmod +x ~/bin/make.cross
>> >         # save the attached .config to linux build tree
>> >         make.cross ARCH=powerpc 
>> >
>> > All warnings (new ones prefixed by >>):
>> >
>> >>> WARNING: vmlinux.o(.text+0x5c650): Section mismatch in reference from the function .mmu_partition_table_init() to the function .init.text:.memblock_alloc_base()
>> >    The function .mmu_partition_table_init() references
>> >    the function __init .memblock_alloc_base().
>> 
>> >    This is often because .mmu_partition_table_init lacks a __init
>> 
>> Indeed that looks like the problem.
>> 
>> Paul have you already merged the topic branch, or can I squash in a fix
>> for this? Or I'll just do it on top.
>
> I haven't pushed out the merge, so go ahead.

OK done. I also pulled in Mikey's HFSCR patch.

New HEAD is 02ed21aeda0e ("powerpc/powernv: Define and set POWER9 HFSCR
doorbell bit").

cheers

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-11-23  0:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-21  4:56 [PATCH 0/4] powerpc/64: Preparation for KVM support on POWER9 Paul Mackerras
2016-11-21  5:00 ` [PATCH 1/4] powerpc/64: Add some more SPRs and SPR bits for POWER9 Paul Mackerras
2016-11-21  5:00 ` [PATCH 2/4] powerpc/64: Provide functions for accessing POWER9 partition table Paul Mackerras
2016-11-21  7:14   ` kbuild test robot
2016-11-22 11:00     ` Michael Ellerman
2016-11-22 21:15       ` Paul Mackerras
2016-11-23  0:35         ` Michael Ellerman
2016-11-21  5:01 ` [PATCH 3/4] powerpc/powernv: Define real-mode versions of OPAL XICS accessors Paul Mackerras
2016-11-21  5:02 ` [PATCH 4/4] powerpc/64: Define new ISA v3.00 logical PVR value and PCR register value Paul Mackerras

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).