Bug 106584 - segfault in r600_sb::alu_group_tracker::alu_group_tracker with gcc 8.1 LTO
Summary: segfault in r600_sb::alu_group_tracker::alu_group_tracker with gcc 8.1 LTO
Status: RESOLVED MOVED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: 18.0
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-20 00:21 UTC by Alex Xu (Hello71)
Modified: 2019-09-18 19:25 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Alex Xu (Hello71) 2018-05-20 00:21:47 UTC
looks like there is an unaligned XMM store:

(gdb) info reg
rax            0x0	0
rbx            0x0	0
rcx            0x7fffffffc660	140737488340576
rdx            0x55555574eff0	93824994308080
rsi            0x555555748d90	93824994282896
rdi            0x7fffffffc810	140737488341008
rbp            0x7fffffffc080	0x7fffffffc080
rsp            0x7fffffffc008	0x7fffffffc008
r8             0x55555574fad0	93824994310864
r9             0x7fffffffbdcc	140737488338380
r10            0x1	1
r11            0x2	2
r12            0x7ffff45637b8	140737292679096
r13            0x555555752580	93824994321792
r14            0x7fffffffc320	140737488339744
r15            0x555555748d90	93824994282896
rip            0x7ffff4371e06	0x7ffff4371e06 <r600_sb::alu_group_tracker::alu_group_tracker(r600_sb::shader&)+38>
eflags         0x10246	[ PF ZF IF RF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0
(gdb) disas
Dump of assembler code for function r600_sb::alu_group_tracker::alu_group_tracker(r600_sb::shader&):
   0x00007ffff4371de0 <+0>:	pxor   %xmm1,%xmm1
   0x00007ffff4371de4 <+4>:	pxor   %xmm0,%xmm0
   0x00007ffff4371de8 <+8>:	xor    %eax,%eax
   0x00007ffff4371dea <+10>:	movups %xmm1,0xb0(%rdi)
   0x00007ffff4371df1 <+17>:	movups %xmm1,0xc0(%rdi)
   0x00007ffff4371df8 <+24>:	movq   $0x0,0xd0(%rdi)
   0x00007ffff4371e03 <+35>:	mov    (%rsi),%rdx
=> 0x00007ffff4371e06 <+38>:	movaps %xmm0,0x8(%rdi)
   0x00007ffff4371e0a <+42>:	movaps %xmm0,0x18(%rdi)
   0x00007ffff4371e0e <+46>:	movups %xmm0,0x2c(%rdi)
   0x00007ffff4371e12 <+50>:	movups %xmm0,0x3c(%rdi)
   0x00007ffff4371e16 <+54>:	movups %xmm0,0x4c(%rdi)
   0x00007ffff4371e1a <+58>:	movups %xmm0,0x5c(%rdi)
   0x00007ffff4371e1e <+62>:	movups %xmm0,0x6c(%rdi)
   0x00007ffff4371e22 <+66>:	movups %xmm0,0x7c(%rdi)
   0x00007ffff4371e26 <+70>:	movups %xmm0,0x9c(%rdi)
   0x00007ffff4371e2d <+77>:	movl   $0x2,0x28(%rdi)
   0x00007ffff4371e34 <+84>:	movl   $0x0,0x8c(%rdi)
   0x00007ffff4371e3e <+94>:	movl   $0x0,0x90(%rdi)
   0x00007ffff4371e48 <+104>:	movl   $0x0,0x94(%rdi)
   0x00007ffff4371e52 <+114>:	movl   $0x0,0x98(%rdi)
   0x00007ffff4371e5c <+124>:	cmpl   $0x4,0x5c(%rdx)
   0x00007ffff4371e60 <+128>:	mov    %rsi,(%rdi)
   0x00007ffff4371e63 <+131>:	movups %xmm0,0x118(%rdi)
   0x00007ffff4371e6a <+138>:	pxor   %xmm0,%xmm0
   0x00007ffff4371e6e <+142>:	movl   $0x0,0xe8(%rdi)
   0x00007ffff4371e78 <+152>:	setne  %al
   0x00007ffff4371e7b <+155>:	movq   $0x0,0xf0(%rdi)
   0x00007ffff4371e86 <+166>:	add    $0x4,%eax
   0x00007ffff4371e89 <+169>:	movb   $0x0,0x116(%rdi)
   0x00007ffff4371e90 <+176>:	mov    %eax,0xdc(%rdi)
   0x00007ffff4371e96 <+182>:	lea    0xe8(%rdi),%rax
   0x00007ffff4371e9d <+189>:	mov    %rax,0xf8(%rdi)
   0x00007ffff4371ea4 <+196>:	mov    %rax,0x100(%rdi)
   0x00007ffff4371eab <+203>:	xor    %eax,%eax
   0x00007ffff4371ead <+205>:	mov    %ax,0x114(%rdi)
   0x00007ffff4371eb4 <+212>:	movq   $0x0,0x108(%rdi)
   0x00007ffff4371ebf <+223>:	movl   $0x0,0x110(%rdi)
   0x00007ffff4371ec9 <+233>:	movq   $0x0,0x128(%rdi)
   0x00007ffff4371ed4 <+244>:	movups %xmm0,0x130(%rdi)
   0x00007ffff4371edb <+251>:	movq   $0x0,0x140(%rdi)
   0x00007ffff4371ee6 <+262>:	cmpb   $0x1,0x68(%rdx)
   0x00007ffff4371eea <+266>:	sbb    %eax,%eax
   0x00007ffff4371eec <+268>:	and    $0xfffffff0,%eax
   0x00007ffff4371eef <+271>:	add    $0x1f,%eax
   0x00007ffff4371ef2 <+274>:	mov    %eax,0xd8(%rdi)
   0x00007ffff4371ef8 <+280>:	retq
Comment 1 Alex Xu (Hello71) 2018-05-20 00:22:46 UTC
I don't know what object $rdi is. annoyingly, gdb says both this and sh are optimized out.
Comment 2 GitLab Migration User 2019-09-18 19:25:51 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/637.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.