linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.



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