Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1380275
| From | Denys Vlasenko <dvlasenk@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 |
| Date | 2016-04-15 23:20 +0200 |
| Message-ID | <rojjI-119-35@gated-at.bofh.it> (permalink) |
| References | <ro9kn-1wo-41@gated-at.bofh.it> <rodei-4xC-17@gated-at.bofh.it> <roh8e-7AR-19@gated-at.bofh.it> <rohhU-7Wy-23@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 04/15/2016 09:05 PM, James Bottomley wrote:
> On Fri, 2016-04-15 at 20:56 +0200, Denys Vlasenko wrote:
>> On 04/15/2016 04:40 PM, James Bottomley wrote:
>>> On Fri, 2016-04-15 at 12:36 +0200, Denys Vlasenko wrote:
>>>> More info here:
>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70646
>>>
>>> This bug is under investigation, so I'd rather not alter code for a
>>> gcc
>>> bug until we know if we can supply options to fix it rather than
>>> changing code.
>>
>>
>> Background. The bug exists in gcc for 2 years, but it is rather
>> hard to trigger, so nobody noticed.
>
> We know this ... linux-scsi is on the cc for the other thread on this.
>
>> Unfortunately for kernel, these two commits landed in Linus tree
>> in March 16 and 17:
>>
>>
>> On 04/13/2016 05:36 AM, Josh Poimboeuf wrote:
>>> It occurs with the combination of the following two recent commits:
>>>
>>> - bc27fb68aaad ("include/uapi/linux/byteorder, swab: force inlining
>>> of some byteswap operations")
>>> - ef3fb2422ffe ("scsi: fc: use get/put_unaligned64 for wwn access")
>>
>>
>> and now *many* users of qla2x00 and new-ish gcc are going to
>> very much notice it, as their kernels will start crashing reliably.
>>
>> The commits can be reverted, sure, but they per se do not contain
>> anything unusual. They, together with not very typical construct
>> in qla2x00_get_host_fabric_name, one
>> which boils down to "swab64p(constant_array_of_8_bytes)",
>> just happen to nudge gcc in a right way to finally trigger the bug.
>>
>> So I came with another idea how to forestall the imminent deluge of
>> qla2x00 oops reports - this patch.
>
> There are actually a raft of checkers that run the upstream code which
> aren't seeing any problem; likely because the code is harder to trigger
> than you think. So, lets wait until the resolution of the other thread
> before we panic, especially since we're only at -rc3.
I'm not panicking, James.
By sending a workaround, I just want to make sure that *other people*
won't be forced to fix up a problem which surfaced because of *my* patch.
I'm afraid "harder to trigger than you think" is not true.
It is nearly trivial to trigger it now.
I just tried the following on a freshly installed Fedora 21 machine:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ cd linux
$ make defconfig
$ sed '/SCSI_FC_ATTRS/d;/SCSI_LOWLEVEL/d' -i .config
$ make oldconfig # answer "yes" to everything
$ nice make -j22
$ objdump -dr drivers/scsi/qla2xxx/qla_attr.o | grep -A10 qla2x00_get_host_fabric_name
0000000000001540 <qla2x00_get_host_fabric_name>:
1540: 55 push %rbp
1541: 48 89 e5 mov %rsp,%rbp
1544: 66 66 66 2e 0f 1f 84 data32 data32 nopw %cs:0x0(%rax,%rax,1)
154b: 00 00 00 00 00
0000000000001550 <qla2x00_fw_state_show>:
1550: 55 push %rbp
1551: 48 89 e5 mov %rsp,%rbp
1554: 53 push %rbx
1555: 48 89 d3 mov %rdx,%rbx
See?
I'm sure Fedora 22, 23 and 24 will also do that.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 Denys Vlasenko <dvlasenk@redhat.com> - 2016-04-15 12:40 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 James Bottomley <James.Bottomley@HansenPartnership.com> - 2016-04-15 16:50 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 Denys Vlasenko <dvlasenk@redhat.com> - 2016-04-15 21:00 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 James Bottomley <James.Bottomley@HansenPartnership.com> - 2016-04-15 21:10 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 Josh Poimboeuf <jpoimboe@redhat.com> - 2016-04-15 22:10 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 James Bottomley <James.Bottomley@HansenPartnership.com> - 2016-04-15 23:20 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 Denys Vlasenko <dvlasenk@redhat.com> - 2016-04-15 23:20 +0200
Re: [PATCH] qla2xxx: rewrite code to avoid hitting gcc bug 70646 James Bottomley <James.Bottomley@HansenPartnership.com> - 2016-04-15 23:30 +0200
csiph-web