00:11 fdobridge: <g​fxstrand> I think I need re-convergence...
00:21 fdobridge: <g​fxstrand> I think that's tomorrow's problem
09:34 Mary: anholt: karol told me that you had a similar issue on Tegra boards with nouveau, any ideas? https://gist.github.com/marysaka/ba1f887a7460a45aa54a706fd6f95875
09:38 Mary: (I can only reproduce that on 6.6-next, on 6.5.6 it works fine)
10:23 fdobridge: <k​arolherbst🐧🦀> to clarify: the issue was something iommu related, maybe there was always some weird memory corruption going on?
13:29 kwizart: Mary: can you reproduce with nouveau loading been delayed ? (using rd.driver.blacklist=nouveau ) ?
15:13 anholt: Mary: not quite, that looks like new failure.
15:13 Mary: kwizart: same thing, also tried with modprobe.blacklist and loading it manually and it resulted to the same thing
15:14 Mary: I guess I'm off building a 6.5 kernel with the userland patches that NVK needs for now ^^'
16:16 fdobridge: <g​fxstrand> @karolherbst What's the opcode for BREAK? on Turing+?
16:16 fdobridge: <g​fxstrand> If you want to throw me the other bits too, that'd be great, but the opcode is the thing that's hard to RE
16:17 fdobridge: <k​arolherbst🐧🦀> I don't have the encodings
16:17 fdobridge: <g​fxstrand> I thought you did
16:17 fdobridge: <g​fxstrand> 😭
16:17 fdobridge: <k​arolherbst🐧🦀> sadly I don't 😦
16:17 fdobridge: <g​fxstrand> So I have to con the blob into generating it?
16:17 fdobridge: <g​fxstrand> Okay...
16:18 HdkR: The secret sauce of NVIDIA, the ISA encoding
16:18 fdobridge: <k​arolherbst🐧🦀> yeah...
16:18 fdobridge: <k​arolherbst🐧🦀> for whatever reason 😄
16:18 fdobridge: <g​fxstrand> I think I have a NIR pass which inserts them and most of the NAK code to generate them.
16:18 fdobridge: <k​arolherbst🐧🦀> @gfxstrand just write a script to dump all instructions... I mean there are like 11/12? bits for the op encoding?
16:19 fdobridge: <g​fxstrand> Yeah, but I need lots of valid bits or a bunch of them don't disasem
16:19 fdobridge: <g​fxstrand> But I can try
16:19 fdobridge: <k​arolherbst🐧🦀> right...
16:19 fdobridge: <k​arolherbst🐧🦀> but break shouldn't have that
16:19 fdobridge: <k​arolherbst🐧🦀> it takes one barrier register...
16:20 fdobridge: <m​henning> I have that 0x028 is `break_inst_` from some RE stuff
16:20 fdobridge: <m​henning> on sm75
16:22 fdobridge: <g​fxstrand> ```
16:22 fdobridge: <g​fxstrand> Test case 'dEQP-VK.subgroups.ballot.compute.compute'..
16:22 fdobridge: <g​fxstrand> Pass (OK)
16:22 fdobridge: <g​fxstrand> ```
16:22 fdobridge: <g​fxstrand> Here we go!!!!
16:22 fdobridge: <g​fxstrand> Nice! I'll try that
16:24 fdobridge: <!​[NVK Whacker] Echo (she) 🇱🇹> NVK election (real) 🗳️
16:29 fdobridge: <m​henning> I just uploaded the list of opcodes I found and the script to generate them here, in case it's useful for other stuff: https://gitlab.freedesktop.org/mhenning/re/-/tree/main/opclass?ref_type=heads
16:30 fdobridge: <g​fxstrand> I just need I'm confused... You have 0x027 as bsync but I'm using 0x941
16:31 fdobridge: <m​henning> Sometimes an opcode shows up multiple times as different forms
16:31 fdobridge: <k​arolherbst🐧🦀> bsync only has one form tho
16:32 fdobridge: <g​fxstrand> Or not? 🤷🏻‍♀️
16:32 fdobridge: <g​fxstrand> I'll play around
16:52 benjaminl: look at the script, I think all of the recorded opcodes are `+ 0x791a`
16:52 benjaminl: since it has `vals[0] += i`, and `vals[0] & 0xffff == 0x791a`
16:53 benjaminl: yeah, that's it: `0x027 + 0x791a == 0x7941`
16:54 benjaminl: s/look/looking
16:54 karolherbst: interesting...
16:54 karolherbst: some of the opcodes are also hidden if you don't set the "uniform reg" bit
16:55 karolherbst: and I think there are two of them, for the second and third source
16:55 benjaminl: so this would put break at 0x942
16:56 benjaminl: ah yeah, I got it: `000ff600 00000000 00000000 0000094` => `@P0 BREAK P0, B0`
16:57 benjaminl: or, missing the final `2` there, but yeah
18:00 fdobridge: <m​henning> oh, hah I forgot to zero that out
18:02 fdobridge: <m​henning> I suppose you can tell it isn't a very carefully tested script
18:07 fdobridge: <m​henning> The uniform reg thing is good to know - I realized the script was missing stuff because you need to set additional bits for some ops to show up, but I wasn't sure which bits they were.
19:31 benjaminl: thoughts on having a separate legalize_sm50 pass in nak versus just adding a bunch of branches for sm50 in the existing legalize pass?
20:49 fdobridge: <g​fxstrand> Probably a good idea
21:17 fdobridge: <g​fxstrand> Time to see how much of a disaster I made by adding re-convergence. 😰
21:18 fdobridge: <g​fxstrand> Time to see how much of a disaster I made by adding re-convergence. 😅 (edited)
21:19 fdobridge: <g​fxstrand> I'm getting lots of these so that's a good sign:
21:19 fdobridge: <g​fxstrand> ```
21:20 fdobridge: <g​fxstrand> [ 383.182311] nouveau 0000:17:00.0: deqp-vk[5549]: channel 20 killed!
21:20 fdobridge: <g​fxstrand> [ 387.656001] nouveau 0000:17:00.0: fifo:000000:000e:[deqp-vk[5560]] rc scheduled
21:20 fdobridge: <g​fxstrand> [ 387.656010] nouveau 0000:17:00.0: fifo:000000: rc scheduled
21:20 fdobridge: <g​fxstrand> [ 387.656034] nouveau 0000:17:00.0: fifo:000000:000e:000e:[deqp-vk[5560]] errored - disabling channel
21:20 fdobridge: <g​fxstrand> ```
21:20 fdobridge: <g​fxstrand> And some bad instruction encodings, just for good measure.
21:20 fdobridge: <g​fxstrand> I suspect loops are busted