From: Thomas Gleixner <tglx@linutronix.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Guenter Roeck <linux@roeck-us.net>,
Vlastimil Babka <vbabka@suse.cz>,
linux-kernel@vger.kernel.org, Linux-MM <linux-mm@kvack.org>,
Helge Deller <deller@gmx.de>,
linux-parisc@vger.kernel.org
Subject: Re: [PATCH 6.10 000/809] 6.10.3-rc3 review
Date: Thu, 08 Aug 2024 19:48:47 +0200 [thread overview]
Message-ID: <8734nezz0g.ffs@tglx> (raw)
In-Reply-To: <CAHk-=wh4rxXPpYatnuXpu98KswLzg+u7Z9vYWJCLNHC_yXZtWw@mail.gmail.com>
On Thu, Aug 08 2024 at 09:33, Linus Torvalds wrote:
> On Thu, 8 Aug 2024 at 09:12, Thomas Gleixner <tglx@linutronix.de> wrote:
>> It uses $$divU which is at $$divoI + 0x250. I validated that in the
>> disassembly.
>
> Well, that does support "maybe we have a page crosser issue", but it's
> not quite at the delayed branch.
>
> Because that would mean that $$divU starts at 0x41218ec0, and that
> means that there are 80 instructions from the start of $$divU to the
> end of that 0x41218xxx page.
>
> And if I counted instructions right (I don't have a disassembler, so
> I'm just looking at the libgcc sources), that puts the page crosser
> not quite at the delayed branch slot, but it does put it somewhere
> roughly at or around
>
> ds temp,arg1,temp /* 29th divide step */
> addc retreg,retreg,retreg /* shift retreg with/into carry */
>
> so it's around the last few bits of the result. The ones we get wrong.
>
> Which is intriguing, but honestly, I don't see how we could get itlb
> misses horribly wrong and not crash left and right.
Here is the disassembly from my latest crashing debug kernel which
shifts it up a couple of pages. Add 0x10 or sub 0x20 to make it work.
4121dec0: 37 21 3f ff ldo -1(r25),r1
4121dec4: 08 39 22 00 and,= r25,r1,r0
4121dec8: e8 00 00 88 b,l 4121df14 <$$divoI+0x2a4>,r0
4121decc: b3 20 20 00 addi,tc,= 0,r25,r0
4121ded0: 08 1a 02 5d copy r26,ret1
4121ded4: d3 21 39 f0 extrw,u,= r25,15,16,r1
4121ded8: d3 bd 19 f0 extrw,u ret1,15,16,ret1
4121dedc: 08 39 02 59 or r25,r1,r25
4121dee0: 34 1a 01 98 ldi cc,r26
4121dee4: d3 21 3a f8 extrw,u,= r25,23,8,r1
4121dee8: d3 bd 1a e8 extrw,u ret1,23,24,ret1
4121deec: 08 39 02 59 or r25,r1,r25
4121def0: 34 01 01 54 ldi aa,r1
4121def4: d3 20 3b 7c extrw,u,= r25,27,4,r0
4121def8: d3 bd 1b 64 extrw,u ret1,27,28,ret1
4121defc: 0b 59 22 00 and,= r25,r26,r0
4121df00: d3 bd 1b a2 extrw,u ret1,29,30,ret1
4121df04: 08 39 22 00 and,= r25,r1,r0
4121df08: d3 bd 1b c1 extrw,u ret1,30,31,ret1
4121df0c: e8 40 c0 02 bv,n r0(rp)
4121df10: 08 00 02 40 nop
4121df18: 97 21 00 00 subi 0,r25,r1
4121df1c: 08 20 04 40 ds r0,r1,r0
4121df20: 0b 5a 06 1d add r26,r26,ret1
4121df24: 0b 20 04 41 ds r0,r25,r1
4121df28: 0b bd 07 1d add,c ret1,ret1,ret1
4121df2c: 0b 21 04 41 ds r1,r25,r1
4121df30: 0b bd 07 1d add,c ret1,ret1,ret1
4121df34: 0b 21 04 41 ds r1,r25,r1
4121df38: 0b bd 07 1d add,c ret1,ret1,ret1
4121df3c: 0b 21 04 41 ds r1,r25,r1
4121df40: 0b bd 07 1d add,c ret1,ret1,ret1
4121df44: 0b 21 04 41 ds r1,r25,r1
4121df48: 0b bd 07 1d add,c ret1,ret1,ret1
4121df4c: 0b 21 04 41 ds r1,r25,r1
4121df50: 0b bd 07 1d add,c ret1,ret1,ret1
4121df54: 0b 21 04 41 ds r1,r25,r1
4121df58: 0b bd 07 1d add,c ret1,ret1,ret1
4121df5c: 0b 21 04 41 ds r1,r25,r1
4121df60: 0b bd 07 1d add,c ret1,ret1,ret1
4121df64: 0b 21 04 41 ds r1,r25,r1
4121df68: 0b bd 07 1d add,c ret1,ret1,ret1
4121df6c: 0b 21 04 41 ds r1,r25,r1
4121df70: 0b bd 07 1d add,c ret1,ret1,ret1
4121df74: 0b 21 04 41 ds r1,r25,r1
4121df78: 0b bd 07 1d add,c ret1,ret1,ret1
4121df7c: 0b 21 04 41 ds r1,r25,r1
4121df80: 0b bd 07 1d add,c ret1,ret1,ret1
4121df84: 0b 21 04 41 ds r1,r25,r1
4121df88: 0b bd 07 1d add,c ret1,ret1,ret1
4121df8c: 0b 21 04 41 ds r1,r25,r1
4121df90: 0b bd 07 1d add,c ret1,ret1,ret1
4121df94: 0b 21 04 41 ds r1,r25,r1
4121df98: 0b bd 07 1d add,c ret1,ret1,ret1
4121df9c: 0b 21 04 41 ds r1,r25,r1
4121dfa0: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfa4: 0b 21 04 41 ds r1,r25,r1
4121dfa8: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfac: 0b 21 04 41 ds r1,r25,r1
4121dfb0: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfb4: 0b 21 04 41 ds r1,r25,r1
4121dfb8: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfbc: 0b 21 04 41 ds r1,r25,r1
4121dfc0: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfc4: 0b 21 04 41 ds r1,r25,r1
4121dfc8: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfcc: 0b 21 04 41 ds r1,r25,r1
4121dfd0: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfd4: 0b 21 04 41 ds r1,r25,r1
4121dfd8: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfdc: 0b 21 04 41 ds r1,r25,r1
4121dfe0: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfe4: 0b 21 04 41 ds r1,r25,r1
4121dfe8: 0b bd 07 1d add,c ret1,ret1,ret1
4121dfec: 0b 21 04 41 ds r1,r25,r1
4121dff0: 0b bd 07 1d add,c ret1,ret1,ret1
4121dff4: 0b 21 04 41 ds r1,r25,r1
4121dff8: 0b bd 07 1d add,c ret1,ret1,ret1
4121dffc: 0b 21 04 41 ds r1,r25,r1
4121e000: 0b bd 07 1d add,c ret1,ret1,ret1
4121e004: 0b 21 04 41 ds r1,r25,r1
4121e008: 0b bd 07 1d add,c ret1,ret1,ret1
4121e00c: 0b 21 04 41 ds r1,r25,r1
4121e010: 0b bd 07 1d add,c ret1,ret1,ret1
4121e014: 0b 21 04 41 ds r1,r25,r1
4121e018: 0b bd 07 1d add,c ret1,ret1,ret1
4121e01c: 0b 21 04 41 ds r1,r25,r1
4121e020: e8 40 c0 00 bv r0(rp)
4121e024: 0b bd 07 1d add,c ret1,ret1,ret1
4121e028: f3 20 0c 00 depd,* r0,31,32,r25
4121e02c: 8f 20 61 10 cmpib,> 0,r25,4121e0bc <$$divoI+0x44c>
4121e030: 08 00 02 40 nop
4121e034: e8 19 40 00 blr r25,r0
4121e038: 08 00 02 40 nop
4121e03c: b3 20 20 00 addi,tc,= 0,r25,r0
4121e040: 08 00 02 40 nop
4121e044: e8 40 c0 00 bv r0(rp)
4121e048: 08 1a 02 5d copy r26,ret1
4121e04c: e8 40 c0 00 bv r0(rp)
4121e050: d3 5d 1b c1 extrw,u r26,30,31,ret1
4121e054: e8 00 01 c2 b,l,n 4121e13c <$$divI_16+0x3c>,r0
4121e058: 08 00 02 40 nop
4121e05c: e8 40 c0 00 bv r0(rp)
4121e060: d3 5d 1b a2 extrw,u r26,29,30,ret1
4121e064: e8 00 02 2a b,l,n 4121e180 <$$divI_16+0x80>,r0
4121e068: 08 00 02 40 nop
4121e06c: e8 00 02 aa b,l,n 4121e1c8 <$$divI_16+0xc8>,r0
4121e070: 08 00 02 40 nop
4121e074: e8 00 06 9a b,l,n 4121e3c8 <$$divU_17+0xbc>,r0
4121e078: 08 00 02 40 nop
4121e07c: e8 40 c0 00 bv r0(rp)
4121e080: d3 5d 1b 83 extrw,u r26,28,29,ret1
4121e084: e8 00 07 12 b,l,n 4121e414 <$$divU_17+0x108>,r0
4121e088: 08 00 02 40 nop
4121e08c: e8 00 02 9a b,l,n 4121e1e0 <$$divI_16+0xe0>,r0
4121e090: 08 00 02 40 nop
4121e094: e8 1f 1d 0d b,l 4121df20 <$$divoI+0x2b0>,r0
4121e098: 08 20 04 40 ds r0,r1,r0
4121e09c: e8 00 03 fa b,l,n 4121e2a0 <$$divI_16+0x1a0>,r0
4121e0a0: 08 00 02 40 nop
4121e0a4: e8 1f 1c ed b,l 4121df20 <$$divoI+0x2b0>,r0
4121e0a8: 08 20 04 40 ds r0,r1,r0
4121e0ac: e8 00 07 02 b,l,n 4121e434 <$$divU_17+0x128>,r0
4121e0b0: 08 00 02 40 nop
4121e0b4: e8 00 04 22 b,l,n 4121e2cc <$$divI_16+0x1cc>,r0
4121e0b8: 08 00 02 40 nop
4121e0bc: 0b 3a 04 00 sub r26,r25,r0
4121e0c0: e8 40 c0 00 bv r0(rp)
4121e0c4: 08 00 07 1d add,c r0,r0,ret1
next prev parent reply other threads:[~2024-08-08 17:48 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-31 10:03 [PATCH 6.10 000/809] 6.10.3-rc3 review Greg Kroah-Hartman
2024-07-31 11:03 ` Pavel Machek
2024-07-31 12:18 ` Mark Brown
2024-07-31 13:33 ` Luna Jernberg
2024-07-31 14:59 ` Jon Hunter
2024-07-31 15:12 ` Christian Heusel
2024-07-31 16:49 ` Markus Reichelt
2024-07-31 19:04 ` Peter Schneider
2024-07-31 19:29 ` Naresh Kamboju
2024-07-31 19:47 ` Justin Forbes
2024-07-31 20:25 ` Shuah Khan
2024-07-31 20:37 ` Allen
2024-07-31 21:03 ` Florian Fainelli
2024-08-01 5:15 ` Jiri Slaby
2024-08-01 7:49 ` Ron Economos
2024-08-02 6:59 ` Miguel Ojeda
2024-08-04 18:36 ` Guenter Roeck
2024-08-05 3:28 ` Guenter Roeck
2024-08-05 8:56 ` Thomas Gleixner
2024-08-05 12:51 ` Thomas Gleixner
2024-08-05 15:02 ` Guenter Roeck
2024-08-05 21:49 ` Thomas Gleixner
2024-08-06 1:16 ` Guenter Roeck
2024-08-05 17:42 ` Guenter Roeck
2024-08-06 2:40 ` Linus Torvalds
2024-08-06 11:02 ` Vlastimil Babka
2024-08-06 17:20 ` Guenter Roeck
2024-08-06 17:34 ` Linus Torvalds
2024-08-06 17:49 ` Linus Torvalds
2024-08-06 18:10 ` Linus Torvalds
2024-08-06 18:13 ` Guenter Roeck
2024-08-06 18:23 ` Linus Torvalds
2024-08-06 19:21 ` Vlastimil Babka
2024-08-06 19:40 ` Vlastimil Babka
2024-08-07 18:51 ` Alexander Gordeev
2024-08-06 17:33 ` Thomas Gleixner
2024-08-06 19:25 ` Vlastimil Babka
2024-08-06 23:24 ` Thomas Gleixner
2024-08-07 0:49 ` James Bottomley
2024-08-07 1:38 ` Guenter Roeck
2024-08-07 12:45 ` Thomas Gleixner
2024-08-08 1:07 ` Guenter Roeck
2024-08-08 7:48 ` Vlastimil Babka
2024-08-08 14:46 ` Guenter Roeck
2024-08-08 9:57 ` Thomas Gleixner
2024-08-08 14:59 ` Guenter Roeck
2024-08-08 15:58 ` John David Anglin
2024-08-08 15:53 ` Linus Torvalds
2024-08-08 16:12 ` Thomas Gleixner
2024-08-08 16:33 ` Linus Torvalds
2024-08-08 17:48 ` Thomas Gleixner [this message]
2024-08-08 18:19 ` Linus Torvalds
2024-08-08 20:52 ` Guenter Roeck
2024-08-08 21:50 ` John David Anglin
2024-08-08 22:29 ` John David Anglin
2024-08-08 23:33 ` Linus Torvalds
2024-08-09 0:33 ` John David Anglin
2024-08-09 0:56 ` Guenter Roeck
2024-08-09 0:50 ` Guenter Roeck
2024-08-08 22:15 ` Richard Henderson
2024-09-03 7:54 ` Helge Deller
2024-09-03 14:13 ` Guenter Roeck
2024-09-03 18:43 ` Linus Torvalds
2024-08-06 18:09 ` Guenter Roeck
2024-08-06 19:31 ` Vlastimil Babka
-- strict thread matches above, loose matches on Subject: below --
2024-07-31 14:09 Ronald Warsow
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=8734nezz0g.ffs@tglx \
--to=tglx@linutronix.de \
--cc=deller@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=torvalds@linux-foundation.org \
--cc=vbabka@suse.cz \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.