Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1589854
| From | Jason Baron <jbaron@akamai.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes |
| Date | 2017-03-01 00:00 +0100 |
| Message-ID | <tfYUq-2fP-23@gated-at.bofh.it> (permalink) |
| References | (13 earlier) <tfV0t-8jJ-9@gated-at.bofh.it> <tfVMS-oA-35@gated-at.bofh.it> <tfVMS-oA-37@gated-at.bofh.it> <tfVMS-oA-33@gated-at.bofh.it> <tfYUq-2fP-25@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 02/28/2017 03:15 PM, David Daney wrote: > On 02/28/2017 11:34 AM, Jason Baron wrote: >> >> >> On 02/28/2017 02:22 PM, David Daney wrote: >>> On 02/28/2017 11:05 AM, David Daney wrote: >>>> On 02/28/2017 10:39 AM, Jason Baron wrote: >>>>> >>> [...] >>>>>> I suspect that the alignment of the __jump_table section in the .ko >>>>>> files is not correct, and you are seeing some sort of problem due to >>>>>> that. >>>>>> >>>>>> >>>>> >>>>> Hi, >>>>> >>>>> Yes, if you look at the trace that Sachin sent the module being loaded >>>>> that does the WARN_ON() is nfsd.ko. >>>>> >>>>> That module from Sachin's trace has: >>>>> >>>>> [31] __jump_table PROGBITS 0000000000000000 03fd77 >>>>> 0000c0 >>>>> 18 WAM 0 0 1 >>>> >>>> The problem is then the section alignment (last column) for power. >>>> >>>> On mips with no patches applied, we get: >>>> >>>> [17] __jump_table PROGBITS 0000000000000000 00d2c0 000048 >>>> 00 WA 0 0 8 >>>> >>>> Look, proper alignment! >>>> >>>> The question I have is why do the power ".llong" and ".long" assembler >>>> directives not force section alignment? Is there an alternative that >>>> could be used that would result in the proper alignment? Would ".word" >>>> work? >>>> >>>> If not, then I would say patch only power with your balign thing. >>>> 8-byte >>>> alignment for 64-bit kernel, 4-byte alignment for 32-bit kernel >>>> >>> >>> I think the proper fix is either: >>> >>> A) Modify scripts/module-common.lds to force __jump_table alignment for >>> all architectures. >>> >>> B) Add arch/powerpc/kernel/module.lds to force __jump_table alignment >>> for powerpc only. >>> >>> David. >>> >>> >> >> Ok, I can try adding it to the linger script. >> >> FWIW, here is my before and after with the .balign thing for the nfsd.ko >> module on powperc (using a cross-compiler): >> >> before: >> >> [31] __jump_table PROGBITS 0000000000000000 03ee3e 0000f0 >> 00 WA 0 0 1 >> >> after: >> >> [31] __jump_table PROGBITS 0000000000000000 03ee40 0000f0 >> 00 WA 0 0 4 >> > > Try the (lightly tested) attached. > > If it works and Steven likes it, perhaps someone can merge it. > > David. > > > So before your module.lds script: # powerpc64-linux-readelf -eW fs/nfsd/nfsd.o | grep jump [31] __jump_table PROGBITS 0000000000000000 03edfe 0000f0 00 WA 0 0 1 # powerpc64-linux-readelf -eW fs/nfsd/nfsd.ko | grep jump [32] __jump_table PROGBITS 0000000000000000 044046 0000f0 00 WA 0 0 1 With your patch: # powerpc64-linux-readelf -eW fs/nfsd/nfsd.o | grep jump [31] __jump_table PROGBITS 0000000000000000 03edfe 0000f0 00 WA 0 0 1 # powerpc64-linux-readelf -eW fs/nfsd/nfsd.ko | grep jump [18] __jump_table PROGBITS 0000000000000000 03e358 0000f0 00 WA 0 0 8 I also checked all the other .ko files and they were properly aligned. So I think this should hopefully work, and I like that its not a per-arch fix. Sachin, sorry to bother you again, but I'm hoping you can try David's latest patch to scripts/module-common.lds, just to test in your setup. Thanks, -Jason
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-02-27 20:00 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-02-27 20:30 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Steven Rostedt <rostedt@goodmis.org> - 2017-02-27 23:20 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Steven Rostedt <rostedt@goodmis.org> - 2017-02-27 23:40 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-02-28 00:00 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Steven Rostedt <rostedt@goodmis.org> - 2017-02-28 17:50 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-02-28 19:50 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-02-28 20:40 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-03-01 00:00 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Michael Ellerman <mpe@ellerman.id.au> - 2017-03-01 07:50 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Jason Baron <jbaron@akamai.com> - 2017-03-01 22:00 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Sachin Sant <sachinp@linux.vnet.ibm.com> - 2017-03-01 12:10 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Steven Rostedt <rostedt@goodmis.org> - 2017-02-28 00:20 +0100
Re: [PATCH] jump_label: align jump_entry table to at least 4-bytes Steven Rostedt <rostedt@goodmis.org> - 2017-02-28 03:40 +0100
csiph-web