linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] module: set __jump_table alignment to 8
@ 2017-03-01 22:04 David Daney
  2017-03-02 10:47 ` Michael Ellerman
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: David Daney @ 2017-03-01 22:04 UTC (permalink / raw)
  To: Jason Baron, Steven Rostedt, Michael Ellerman, Sachin Sant, linux-kernel
  Cc: linux-mips, linuxppc-dev, linux-arm-kernel, Chris Metcalf,
	Ralf Baechle, Russell King, Rabin Vincent, Paul Mackerras,
	Anton Blanchard, Ingo Molnar, Zhigang Lu, David Daney

For powerpc the __jump_table section in modules is not aligned, this
causes a WARN_ON() splat when loading a module containing a __jump_table.

Strict alignment became necessary with commit 3821fd35b58d
("jump_label: Reduce the size of struct static_key"), currently in
linux-next, which uses the two least significant bits of pointers to
__jump_table elements.

Fix by forcing __jump_table to 8, which is the same alignment used for
this section in the kernel proper.

Signed-off-by: David Daney <david.daney@cavium.com>
Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
---
 scripts/module-common.lds | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 73a2c7d..53234e8 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -19,4 +19,6 @@ SECTIONS {
 
 	. = ALIGN(8);
 	.init_array		0 : { *(SORT(.init_array.*)) *(.init_array) }
+
+	__jump_table		0 : ALIGN(8) { KEEP(*(__jump_table)) }
 }
-- 
2.9.3

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-01 22:04 [PATCH] module: set __jump_table alignment to 8 David Daney
@ 2017-03-02 10:47 ` Michael Ellerman
  2017-03-02 11:18   ` Michael Ellerman
  2017-03-02 15:30 ` Jason Baron
  2017-03-02 18:11 ` Steven Rostedt
  2 siblings, 1 reply; 10+ messages in thread
From: Michael Ellerman @ 2017-03-02 10:47 UTC (permalink / raw)
  To: David Daney, Jason Baron, Steven Rostedt, Sachin Sant, linux-kernel
  Cc: linux-mips, linuxppc-dev, linux-arm-kernel, Chris Metcalf,
	Ralf Baechle, Russell King, Rabin Vincent, Paul Mackerras,
	Anton Blanchard, Ingo Molnar, Zhigang Lu, David Daney

David Daney <david.daney@cavium.com> writes:

> For powerpc the __jump_table section in modules is not aligned, this
> causes a WARN_ON() splat when loading a module containing a __jump_table.

Thanks for doing the patch.

If it helps:

Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)

> Strict alignment became necessary with commit 3821fd35b58d
> ("jump_label: Reduce the size of struct static_key"), currently in
> linux-next, which uses the two least significant bits of pointers to
> __jump_table elements.

It would obviously be nice if this could go in before the commit that
exposes the breakage, but I guess that's problematic because Steve
doesn't want to rebase the tracing tree.

Steve I think you've already sent your pull request for this cycle? So I
guess if this can go in your first batch of fixes?

Or we could just send it directly to Linus?

cheers

> Fix by forcing __jump_table to 8, which is the same alignment used for
> this section in the kernel proper.
>
> Signed-off-by: David Daney <david.daney@cavium.com>
> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
> ---
>  scripts/module-common.lds | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/scripts/module-common.lds b/scripts/module-common.lds
> index 73a2c7d..53234e8 100644
> --- a/scripts/module-common.lds
> +++ b/scripts/module-common.lds
> @@ -19,4 +19,6 @@ SECTIONS {
>  
>  	. = ALIGN(8);
>  	.init_array		0 : { *(SORT(.init_array.*)) *(.init_array) }
> +
> +	__jump_table		0 : ALIGN(8) { KEEP(*(__jump_table)) }
>  }
> -- 
> 2.9.3

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-02 10:47 ` Michael Ellerman
@ 2017-03-02 11:18   ` Michael Ellerman
  2017-03-02 17:44     ` Steven Rostedt
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Ellerman @ 2017-03-02 11:18 UTC (permalink / raw)
  To: David Daney, Jason Baron, Steven Rostedt, Sachin Sant, linux-kernel
  Cc: linux-mips, linuxppc-dev, linux-arm-kernel, Chris Metcalf,
	Ralf Baechle, Russell King, Rabin Vincent, Paul Mackerras,
	Anton Blanchard, Ingo Molnar, Zhigang Lu, David Daney

Michael Ellerman <mpe@ellerman.id.au> writes:
> David Daney <david.daney@cavium.com> writes:
>> Strict alignment became necessary with commit 3821fd35b58d
>> ("jump_label: Reduce the size of struct static_key"), currently in
>> linux-next, which uses the two least significant bits of pointers to
>> __jump_table elements.
>
> It would obviously be nice if this could go in before the commit that
> exposes the breakage, but I guess that's problematic because Steve
> doesn't want to rebase the tracing tree.
>
> Steve I think you've already sent your pull request for this cycle? So I
> guess if this can go in your first batch of fixes?

Ugh. Was looking at the wrong tree - Linus has already merged the commit
in question, so the above is all moot.

cheers

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-01 22:04 [PATCH] module: set __jump_table alignment to 8 David Daney
  2017-03-02 10:47 ` Michael Ellerman
@ 2017-03-02 15:30 ` Jason Baron
  2017-03-02 18:11 ` Steven Rostedt
  2 siblings, 0 replies; 10+ messages in thread
From: Jason Baron @ 2017-03-02 15:30 UTC (permalink / raw)
  To: David Daney, Steven Rostedt, Michael Ellerman, Sachin Sant, linux-kernel
  Cc: linux-mips, linuxppc-dev, linux-arm-kernel, Chris Metcalf,
	Ralf Baechle, Russell King, Rabin Vincent, Paul Mackerras,
	Anton Blanchard, Ingo Molnar, Zhigang Lu

On 03/01/2017 05:04 PM, David Daney wrote:
> For powerpc the __jump_table section in modules is not aligned, this
> causes a WARN_ON() splat when loading a module containing a __jump_table.
>
> Strict alignment became necessary with commit 3821fd35b58d
> ("jump_label: Reduce the size of struct static_key"), currently in
> linux-next, which uses the two least significant bits of pointers to
> __jump_table elements.
>
> Fix by forcing __jump_table to 8, which is the same alignment used for
> this section in the kernel proper.
>
> Signed-off-by: David Daney <david.daney@cavium.com>
> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
> ---

Looks good to me.

Reviewed-by: Jason Baron <jbaron@akamai.com>

Thanks,

-Jason

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-02 11:18   ` Michael Ellerman
@ 2017-03-02 17:44     ` Steven Rostedt
  2017-03-03  3:34       ` Michael Ellerman
  0 siblings, 1 reply; 10+ messages in thread
From: Steven Rostedt @ 2017-03-02 17:44 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: David Daney, Jason Baron, Sachin Sant, linux-kernel, linux-mips,
	linuxppc-dev, linux-arm-kernel, Chris Metcalf, Ralf Baechle,
	Russell King, Rabin Vincent, Paul Mackerras, Anton Blanchard,
	Ingo Molnar, Zhigang Lu

On Thu, 02 Mar 2017 22:18:30 +1100
Michael Ellerman <mpe@ellerman.id.au> wrote:

> Michael Ellerman <mpe@ellerman.id.au> writes:
> > David Daney <david.daney@cavium.com> writes:  
> >> Strict alignment became necessary with commit 3821fd35b58d
> >> ("jump_label: Reduce the size of struct static_key"), currently in
> >> linux-next, which uses the two least significant bits of pointers to
> >> __jump_table elements.  
> >
> > It would obviously be nice if this could go in before the commit that
> > exposes the breakage, but I guess that's problematic because Steve
> > doesn't want to rebase the tracing tree.
> >
> > Steve I think you've already sent your pull request for this cycle? So I
> > guess if this can go in your first batch of fixes?  
> 
> Ugh. Was looking at the wrong tree - Linus has already merged the commit
> in question, so the above is all moot.

No problem. I've got some other "fixes" to push to Linus. That's what
the -rc releases are for. To fix up breakage from the merge window ;-)

I'll pull this into my tree.

Thanks!

-- Steve

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-01 22:04 [PATCH] module: set __jump_table alignment to 8 David Daney
  2017-03-02 10:47 ` Michael Ellerman
  2017-03-02 15:30 ` Jason Baron
@ 2017-03-02 18:11 ` Steven Rostedt
  2017-03-02 18:26   ` Jessica Yu
  2 siblings, 1 reply; 10+ messages in thread
From: Steven Rostedt @ 2017-03-02 18:11 UTC (permalink / raw)
  To: Jessica Yu, Rusty Russell
  Cc: David Daney, Jason Baron, Michael Ellerman, Sachin Sant,
	linux-kernel, linux-mips, linuxppc-dev, linux-arm-kernel,
	Chris Metcalf, Ralf Baechle, Russell King, Rabin Vincent,
	Paul Mackerras, Anton Blanchard, Ingo Molnar, Zhigang Lu


Can I get an Ack from a module maintainer?

Thanks!

-- Steve


On Wed,  1 Mar 2017 14:04:53 -0800
David Daney <david.daney@cavium.com> wrote:

> For powerpc the __jump_table section in modules is not aligned, this
> causes a WARN_ON() splat when loading a module containing a __jump_table.
> 
> Strict alignment became necessary with commit 3821fd35b58d
> ("jump_label: Reduce the size of struct static_key"), currently in
> linux-next, which uses the two least significant bits of pointers to
> __jump_table elements.
> 
> Fix by forcing __jump_table to 8, which is the same alignment used for
> this section in the kernel proper.
> 
> Signed-off-by: David Daney <david.daney@cavium.com>
> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
> ---
>  scripts/module-common.lds | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/scripts/module-common.lds b/scripts/module-common.lds
> index 73a2c7d..53234e8 100644
> --- a/scripts/module-common.lds
> +++ b/scripts/module-common.lds
> @@ -19,4 +19,6 @@ SECTIONS {
>  
>  	. = ALIGN(8);
>  	.init_array		0 : { *(SORT(.init_array.*)) *(.init_array) }
> +
> +	__jump_table		0 : ALIGN(8) { KEEP(*(__jump_table)) }
>  }

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-02 18:11 ` Steven Rostedt
@ 2017-03-02 18:26   ` Jessica Yu
  2017-03-02 19:24     ` David Daney
  0 siblings, 1 reply; 10+ messages in thread
From: Jessica Yu @ 2017-03-02 18:26 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Rusty Russell, David Daney, Jason Baron, Michael Ellerman,
	Sachin Sant, linux-kernel, linux-mips, linuxppc-dev,
	linux-arm-kernel, Chris Metcalf, Ralf Baechle, Russell King,
	Rabin Vincent, Paul Mackerras, Anton Blanchard, Ingo Molnar,
	Zhigang Lu

+++ Steven Rostedt [02/03/17 13:11 -0500]:
>
>Can I get an Ack from a module maintainer?

Acked-by: Jessica Yu <jeyu@redhat.com>

Thanks!

Jessica

>On Wed,  1 Mar 2017 14:04:53 -0800
>David Daney <david.daney@cavium.com> wrote:
>
>> For powerpc the __jump_table section in modules is not aligned, this
>> causes a WARN_ON() splat when loading a module containing a __jump_table.
>>
>> Strict alignment became necessary with commit 3821fd35b58d
>> ("jump_label: Reduce the size of struct static_key"), currently in
>> linux-next, which uses the two least significant bits of pointers to
>> __jump_table elements.
>>
>> Fix by forcing __jump_table to 8, which is the same alignment used for
>> this section in the kernel proper.
>>
>> Signed-off-by: David Daney <david.daney@cavium.com>
>> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
>> ---
>>  scripts/module-common.lds | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/scripts/module-common.lds b/scripts/module-common.lds
>> index 73a2c7d..53234e8 100644
>> --- a/scripts/module-common.lds
>> +++ b/scripts/module-common.lds
>> @@ -19,4 +19,6 @@ SECTIONS {
>>
>>  	. = ALIGN(8);
>>  	.init_array		0 : { *(SORT(.init_array.*)) *(.init_array) }
>> +
>> +	__jump_table		0 : ALIGN(8) { KEEP(*(__jump_table)) }
>>  }
>

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-02 18:26   ` Jessica Yu
@ 2017-03-02 19:24     ` David Daney
  2017-03-02 22:49       ` Jessica Yu
  0 siblings, 1 reply; 10+ messages in thread
From: David Daney @ 2017-03-02 19:24 UTC (permalink / raw)
  To: Jessica Yu, Steven Rostedt
  Cc: Rusty Russell, David Daney, Jason Baron, Michael Ellerman,
	Sachin Sant, linux-kernel, linux-mips, linuxppc-dev,
	linux-arm-kernel, Chris Metcalf, Ralf Baechle, Russell King,
	Rabin Vincent, Paul Mackerras, Anton Blanchard, Ingo Molnar,
	Zhigang Lu

On 03/02/2017 10:26 AM, Jessica Yu wrote:
> +++ Steven Rostedt [02/03/17 13:11 -0500]:
>>
>> Can I get an Ack from a module maintainer?
>
> Acked-by: Jessica Yu <jeyu@redhat.com>
>
> Thanks!
>
> Jessica

Thanks Jessica,

Can you also add scripts/module-common.lds to MAINTAINERS so that 
get_maintainers.pl will indicate that Jessica Yu and Rusty Russell be 
CCed on things like this in the future?


>
>> On Wed,  1 Mar 2017 14:04:53 -0800
>> David Daney <david.daney@cavium.com> wrote:
>>
>>> For powerpc the __jump_table section in modules is not aligned, this
>>> causes a WARN_ON() splat when loading a module containing a
>>> __jump_table.
>>>
>>> Strict alignment became necessary with commit 3821fd35b58d
>>> ("jump_label: Reduce the size of struct static_key"), currently in
>>> linux-next, which uses the two least significant bits of pointers to
>>> __jump_table elements.
>>>
>>> Fix by forcing __jump_table to 8, which is the same alignment used for
>>> this section in the kernel proper.
>>>
>>> Signed-off-by: David Daney <david.daney@cavium.com>
>>> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
>>> ---
>>>  scripts/module-common.lds | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/scripts/module-common.lds b/scripts/module-common.lds
>>> index 73a2c7d..53234e8 100644
>>> --- a/scripts/module-common.lds
>>> +++ b/scripts/module-common.lds
>>> @@ -19,4 +19,6 @@ SECTIONS {
>>>
>>>      . = ALIGN(8);
>>>      .init_array        0 : { *(SORT(.init_array.*)) *(.init_array) }
>>> +
>>> +    __jump_table        0 : ALIGN(8) { KEEP(*(__jump_table)) }
>>>  }
>>

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-02 19:24     ` David Daney
@ 2017-03-02 22:49       ` Jessica Yu
  0 siblings, 0 replies; 10+ messages in thread
From: Jessica Yu @ 2017-03-02 22:49 UTC (permalink / raw)
  To: David Daney
  Cc: Steven Rostedt, Rusty Russell, David Daney, Jason Baron,
	Michael Ellerman, Sachin Sant, linux-kernel, linux-mips,
	linuxppc-dev, linux-arm-kernel, Chris Metcalf, Ralf Baechle,
	Russell King, Rabin Vincent, Paul Mackerras, Anton Blanchard,
	Ingo Molnar, Zhigang Lu

+++ David Daney [02/03/17 11:24 -0800]:
>On 03/02/2017 10:26 AM, Jessica Yu wrote:
>>+++ Steven Rostedt [02/03/17 13:11 -0500]:
>>>
>>>Can I get an Ack from a module maintainer?
>>
>>Acked-by: Jessica Yu <jeyu@redhat.com>
>>
>>Thanks!
>>
>>Jessica
>
>Thanks Jessica,
>
>Can you also add scripts/module-common.lds to MAINTAINERS so that 
>get_maintainers.pl will indicate that Jessica Yu and Rusty Russell be 
>CCed on things like this in the future?

Sure thing. Thanks for the heads up!

Jessica

>>>On Wed,  1 Mar 2017 14:04:53 -0800
>>>David Daney <david.daney@cavium.com> wrote:
>>>
>>>>For powerpc the __jump_table section in modules is not aligned, this
>>>>causes a WARN_ON() splat when loading a module containing a
>>>>__jump_table.
>>>>
>>>>Strict alignment became necessary with commit 3821fd35b58d
>>>>("jump_label: Reduce the size of struct static_key"), currently in
>>>>linux-next, which uses the two least significant bits of pointers to
>>>>__jump_table elements.
>>>>
>>>>Fix by forcing __jump_table to 8, which is the same alignment used for
>>>>this section in the kernel proper.
>>>>
>>>>Signed-off-by: David Daney <david.daney@cavium.com>
>>>>Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
>>>>---
>>>> scripts/module-common.lds | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>>diff --git a/scripts/module-common.lds b/scripts/module-common.lds
>>>>index 73a2c7d..53234e8 100644
>>>>--- a/scripts/module-common.lds
>>>>+++ b/scripts/module-common.lds
>>>>@@ -19,4 +19,6 @@ SECTIONS {
>>>>
>>>>     . = ALIGN(8);
>>>>     .init_array        0 : { *(SORT(.init_array.*)) *(.init_array) }
>>>>+
>>>>+    __jump_table        0 : ALIGN(8) { KEEP(*(__jump_table)) }
>>>> }
>>>
>

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

* Re: [PATCH] module: set __jump_table alignment to 8
  2017-03-02 17:44     ` Steven Rostedt
@ 2017-03-03  3:34       ` Michael Ellerman
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2017-03-03  3:34 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: David Daney, Jason Baron, Sachin Sant, linux-kernel, linux-mips,
	linuxppc-dev, linux-arm-kernel, Chris Metcalf, Ralf Baechle,
	Russell King, Rabin Vincent, Paul Mackerras, Anton Blanchard,
	Ingo Molnar, Zhigang Lu

Steven Rostedt <rostedt@goodmis.org> writes:
> On Thu, 02 Mar 2017 22:18:30 +1100
> Michael Ellerman <mpe@ellerman.id.au> wrote:
>> Michael Ellerman <mpe@ellerman.id.au> writes:
>> > David Daney <david.daney@cavium.com> writes:  
>> >> Strict alignment became necessary with commit 3821fd35b58d
>> >> ("jump_label: Reduce the size of struct static_key"), currently in
>> >> linux-next, which uses the two least significant bits of pointers to
>> >> __jump_table elements.  
>> >
>> > It would obviously be nice if this could go in before the commit that
>> > exposes the breakage, but I guess that's problematic because Steve
>> > doesn't want to rebase the tracing tree.
>> >
>> > Steve I think you've already sent your pull request for this cycle? So I
>> > guess if this can go in your first batch of fixes?  
>> 
>> Ugh. Was looking at the wrong tree - Linus has already merged the commit
>> in question, so the above is all moot.
>
> No problem. I've got some other "fixes" to push to Linus. That's what
> the -rc releases are for. To fix up breakage from the merge window ;-)

Yep, no drama.

> I'll pull this into my tree.

Thanks.

cheers

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

end of thread, other threads:[~2017-03-03  3:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-01 22:04 [PATCH] module: set __jump_table alignment to 8 David Daney
2017-03-02 10:47 ` Michael Ellerman
2017-03-02 11:18   ` Michael Ellerman
2017-03-02 17:44     ` Steven Rostedt
2017-03-03  3:34       ` Michael Ellerman
2017-03-02 15:30 ` Jason Baron
2017-03-02 18:11 ` Steven Rostedt
2017-03-02 18:26   ` Jessica Yu
2017-03-02 19:24     ` David Daney
2017-03-02 22:49       ` Jessica Yu

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