From: Peter Zijlstra <peterz@infradead.org>
To: Lukasz Majczak <lma@semihalf.com>
Cc: "Josh Poimboeuf" <jpoimboe@redhat.com>,
x86@kernel.org, jgross@suse.com, mbenes@suse.com,
linux-kernel@vger.kernel.org, upstream@semihalf.com,
"Radosław Biernacki" <rad@semihalf.com>,
"Łukasz Bartosik" <lb@semihalf.com>,
"Guenter Roeck" <groeck@google.com>
Subject: Re: [PATCH v3 16/16] objtool,x86: Rewrite retpoline thunk calls
Date: Wed, 2 Jun 2021 18:56:51 +0200 [thread overview]
Message-ID: <YLe4U9FgmMlYu/JN@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <CAFJ_xbq06nfaEWtVNLtg7XCJrQeQ9wCs4Zsoi5Y_HP3Dx0iTRA@mail.gmail.com>
On Wed, Jun 02, 2021 at 05:51:01PM +0200, Lukasz Majczak wrote:
> Hi Peter,
>
> This patch seems to crash on Tigerlake platform (Chromebook delbin), I
> got the following error:
>
> [ 2.103054] pcieport 0000:00:1c.0: PME: Signaling with IRQ 122
> [ 2.110148] pcieport 0000:00:1c.0: pciehp: Slot #7 AttnBtn-
> PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+
> IbPresDis- LLActRep+
> [ 2.126754] pcieport 0000:00:1d.0: PME: Signaling with IRQ 123
> [ 2.133946] ACPI: \_SB_.CP00: Found 3 idle states
> [ 2.139708] BUG: kernel NULL pointer dereference, address: 000000000000012b
> [ 2.140704] #PF: supervisor read access in kernel mode
> [ 2.140704] #PF: error_code(0x0000) - not-present page
> [ 2.140704] PGD 0 P4D 0
> [ 2.140704] Oops: 0000 [#1] PREEMPT SMP NOPTI
> [ 2.140704] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G U
> 5.13.0-rc1 #31
> [ 2.140704] Hardware name: Google Delbin/Delbin, BIOS
> Google_Delbin.13672.156.3 05/14/2021
> [ 2.140704] RIP: 0010:cpuidle_poll_time+0x9/0x6a
> [ 2.140704] Code: 44 00 00 85 f6 78 19 55 48 89 e5 48 8b 05 16 44
> 44 01 4c 8b 58 40 4d 85 db 5d 41 ff d3 66 90 00 c3 0f 1f 44 00 00 55
> 48 89 e5 <48> 8b 46 20 48 85 c0 75 56 4c 63 87 28 04 00 00 b8 24 f49
All code
========
0: 44 00 00 add %r8b,(%rax)
3: 85 f6 test %esi,%esi
5: 78 19 js 0x20
7: 55 push %rbp
8: 48 89 e5 mov %rsp,%rbp
b: 48 8b 05 16 44 44 01 mov 0x1444416(%rip),%rax # 0x1444428
12: 4c 8b 58 40 mov 0x40(%rax),%r11
16: 4d 85 db test %r11,%r11
19: 5d pop %rbp
1a: 41 ff d3 callq *%r11
1d: 66 90 xchg %ax,%ax
1f: 00 c3 add %al,%bl
21: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
26: 55 push %rbp
27: 48 89 e5 mov %rsp,%rbp
2a:* 48 8b 46 20 mov 0x20(%rsi),%rax <-- trapping instruction
2e: 48 85 c0 test %rax,%rax
31: 75 56 jne 0x89
33: 4c 63 87 28 04 00 00 movslq 0x428(%rdi),%r8
3a: b8 .byte 0xb8
3b: 24 49 and $0x49,%al
What does something like:
OBJ=vmlinux.o FUNC=0010:cpuidle_poll_time objdump -wdr $@ $OBJ | awk "/^\$/ { P=0; } /$FUNC[^>]*>:\$/ { P=1; O=strtonum(\"0x\" \$1); } { if (P) { o=strtonum(\"0x\" \$1); printf(\"%04x \", o-O); print \$0; } }"
look like for that build?
The 1d,1f instructions look exactly like what the alternative would've
written.
> [ 2.140704] RSP: 0000:ffffffff9cc03ea8 EFLAGS: 00010282
> [ 2.140704] RAX: 0000000000008e7d RBX: ffffffff9cc1c5fd RCX: 000000007f894e5a
> [ 2.140704] RDX: 000000007f894d4f RSI: 000000000000010b RDI: 0000000002fa1cf6
That said, your RSI is buggered, and 0x20(%rsi) rightfully blows up.
next prev parent reply other threads:[~2021-06-02 16:57 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-26 15:11 [PATCH v3 00/16] x86,objtool: Optimize !RETPOLINE Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 01/16] x86: Add insn_decode_kernel() Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 02/16] x86/alternatives: Optimize optimize_nops() Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:11 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 03/16] x86/retpoline: Simplify retpolines Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-04-06 8:56 ` David Laight
2021-03-26 15:12 ` [PATCH v3 04/16] objtool: Correctly handle retpoline thunk calls Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 05/16] objtool: Per arch retpoline naming Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] objtool: Handle per " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 06/16] objtool: Fix static_call list generation Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 07/16] objtool: Rework rebuild_reloc logic Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` [tip: x86/core] objtool: Rework the elf_rebuild_reloc_section() logic tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 08/16] objtool: Add elf_create_reloc() helper Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 09/16] objtool: Implicitly create reloc sections Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` [tip: x86/core] objtool: Create reloc sections implicitly tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 10/16] objtool: Extract elf_strtab_concat() Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 11/16] objtool: Extract elf_symbol_add() Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 12/16] objtool: Add elf_create_undef_symbol() Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 13/16] objtool: Keep track of retpoline call sites Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 14/16] objtool: Cache instruction relocs Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 15/16] objtool: Skip magical retpoline .altinstr_replacement Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-26 15:12 ` [PATCH v3 16/16] objtool,x86: Rewrite retpoline thunk calls Peter Zijlstra
2021-03-29 16:38 ` Josh Poimboeuf
2021-06-02 15:51 ` Lukasz Majczak
2021-06-02 16:56 ` Peter Zijlstra [this message]
2021-06-02 17:10 ` Peter Zijlstra
2021-06-02 20:43 ` Josh Poimboeuf
2021-06-04 20:50 ` Nick Desaulniers
2021-06-04 23:27 ` Nick Desaulniers
2021-06-04 23:50 ` Fangrui Song
2021-06-05 10:38 ` Peter Zijlstra
2021-06-06 1:58 ` Fāng-ruì Sòng
2021-06-07 7:56 ` Peter Zijlstra
2021-06-07 9:22 ` Peter Zijlstra
2021-06-07 9:45 ` Peter Zijlstra
2021-06-07 17:23 ` Fāng-ruì Sòng
2021-06-07 18:25 ` Peter Zijlstra
2021-06-07 20:54 ` Nick Desaulniers
2021-06-08 9:56 ` Peter Zijlstra
2021-06-08 16:58 ` Nathan Chancellor
2021-06-08 17:22 ` Peter Zijlstra
2021-06-08 17:29 ` Nathan Chancellor
2021-06-08 18:17 ` Peter Zijlstra
2021-06-08 18:49 ` Nathan Chancellor
2021-06-09 7:11 ` Lukasz Majczak
2021-06-09 7:20 ` Peter Zijlstra
2021-06-09 12:23 ` Lukasz Majczak
2021-06-09 15:08 ` Peter Zijlstra
2021-06-09 15:11 ` Peter Zijlstra
2021-06-09 15:56 ` Nathan Chancellor
2021-06-08 18:18 ` Nick Desaulniers
2021-06-07 18:19 ` Peter Zijlstra
2021-06-07 18:27 ` Fāng-ruì Sòng
2021-06-07 18:47 ` Peter Zijlstra
2021-04-01 15:08 ` [tip: x86/core] objtool/x86: " tip-bot2 for Peter Zijlstra
2021-04-03 11:10 ` tip-bot2 for Peter Zijlstra
2021-03-30 15:02 ` [PATCH v3 00/16] x86,objtool: Optimize !RETPOLINE Miroslav Benes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YLe4U9FgmMlYu/JN@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=groeck@google.com \
--cc=jgross@suse.com \
--cc=jpoimboe@redhat.com \
--cc=lb@semihalf.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lma@semihalf.com \
--cc=mbenes@suse.com \
--cc=rad@semihalf.com \
--cc=upstream@semihalf.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).