From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754176AbdBVFi1 (ORCPT ); Wed, 22 Feb 2017 00:38:27 -0500 Received: from ozlabs.org ([103.22.144.67]:60559 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750863AbdBVFiU (ORCPT ); Wed, 22 Feb 2017 00:38:20 -0500 From: Michael Ellerman To: Jason Baron , Sachin Sant , Steven Rostedt Cc: linux-next@vger.kernel.org, LKML , linuxppc-dev@ozlabs.org Subject: Re: next-20170217 boot on POWER8 LPAR : WARNING @kernel/jump_label.c:287 In-Reply-To: <20c53e88-acf5-4c4f-cea9-4dd8745814b5@akamai.com> References: <1dffdaac-be8b-0052-52d4-a65fed39f894@akamai.com> <02B52EFB-4608-47F3-A81C-B8B52DB11233@linux.vnet.ibm.com> <20c53e88-acf5-4c4f-cea9-4dd8745814b5@akamai.com> User-Agent: Notmuch/0.21 (https://notmuchmail.org) Date: Wed, 22 Feb 2017 16:38:12 +1100 Message-ID: <877f4in5tn.fsf@concordia.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jason Baron writes: > On 02/20/2017 10:05 PM, Sachin Sant wrote: >> >>> On 20-Feb-2017, at 8:27 PM, Jason Baron >> > wrote: >>> >>> Hi, >>> >>> On 02/19/2017 09:07 AM, Sachin Sant wrote: >>>> While booting next-20170217 on a POWER8 LPAR following >>>> warning is displayed. >>>> >>>> Reverting the following commit helps boot cleanly. >>>> commit 3821fd35b5 : jump_label: Reduce the size of struct static_key >>>> >>>> [ 11.393008] ------------[ cut here ]------------ >>>> [ 11.393031] WARNING: CPU: 5 PID: 2890 at kernel/jump_label.c:287 >>>> static_key_set_entries.isra.10+0x3c/0x50 >>> >>> Thanks for the report. So this is saying that the jump_entry table is >>> not at least 4-byte aligned. I wonder if this fixes it up? >>> >> >> Yes. With this patch the warning is gone. > > Hi, > > Thanks for testing. We probably need something like the following to > make sure we don't hit this on other arches. Steve - I will send 4 > separate patches for this to get arch maintainers' acks for this? What's the 4 byte alignment requirement from? On 64-bit our JUMP_ENTRY_TYPE is 8 bytes, should we be aligning to 8 bytes? > diff --git a/arch/powerpc/include/asm/jump_label.h > b/arch/powerpc/include/asm/jump_label.h > index 9a287e0ac8b1..f870a85bac46 100644 > --- a/arch/powerpc/include/asm/jump_label.h > +++ b/arch/powerpc/include/asm/jump_label.h > @@ -24,6 +24,7 @@ static __always_inline bool arch_static_branch(struct > static_key *key, bool bran > asm_volatile_goto("1:\n\t" > "nop # arch_static_branch\n\t" > ".pushsection __jump_table, \"aw\"\n\t" > + ".balign 4 \n\t" Can you line those up vertically? (That may just be an email artifact) > JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t" > ".popsection \n\t" > : : "i" (&((char *)key)[branch]) : : l_yes); > @@ -38,6 +39,7 @@ static __always_inline bool > arch_static_branch_jump(struct static_key *key, bool > asm_volatile_goto("1:\n\t" > "b %l[l_yes] # arch_static_branch_jump\n\t" > ".pushsection __jump_table, \"aw\"\n\t" > + ".balign 4 \n\t" > JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t" > ".popsection \n\t" > : : "i" (&((char *)key)[branch]) : : l_yes); > @@ -63,6 +65,7 @@ struct jump_entry { > #define ARCH_STATIC_BRANCH(LABEL, KEY) \ > 1098: nop; \ > .pushsection __jump_table, "aw"; \ > + .balign 4; \ > FTR_ENTRY_LONG 1098b, LABEL, KEY; \ > .popsection > #endif Otherwise that looks fine assuming 4 bytes is the correct alignment. cheers