sorear changed the topic of #riscv to: RISC-V instruction set architecture | https://riscv.org | Logs: https://libera.irclog.whitequark.org/riscv | Matrix: #riscv:catircservices.org
Andre_Z has quit [Quit: Leaving.]
pecastro has quit [Ping timeout: 252 seconds]
khem has quit []
khem has joined #riscv
Morn_ has quit [Server closed connection]
Morn_ has joined #riscv
jacklsw has joined #riscv
rsalveti has joined #riscv
shamoe has quit [Quit: Connection closed for inactivity]
crabbedhaloablut has quit [Quit: No Ping reply in 180 seconds.]
crabbedhaloablut has joined #riscv
sakman has quit [Ping timeout: 258 seconds]
hightower4 has joined #riscv
hightower3 has quit [Ping timeout: 245 seconds]
crabbedhaloablut has quit []
shamoe has joined #riscv
jacklsw has quit [Ping timeout: 246 seconds]
sakman has joined #riscv
esv has quit [Ping timeout: 252 seconds]
sajattack has quit [Remote host closed the connection]
sajattack has joined #riscv
pabs3 has quit [Ping timeout: 252 seconds]
sajattack has quit [Ping timeout: 246 seconds]
sajattack has joined #riscv
sajattack has quit [Remote host closed the connection]
pabs3 has joined #riscv
sajattack has joined #riscv
heat has quit [Ping timeout: 252 seconds]
edr has quit [Quit: Leaving]
Trifton has quit [Remote host closed the connection]
Trifton has joined #riscv
Trifton has quit [Max SendQ exceeded]
Trifton has joined #riscv
Trifton has quit [Remote host closed the connection]
Trifton has joined #riscv
Trifton has quit [Remote host closed the connection]
pabs3 has quit [Quit: Don't rest until all the world is paved in moss and greenery.]
pabs3 has joined #riscv
KombuchaKip has quit [Quit: Leaving.]
zjason` is now known as zjason
prabhakarlad has quit [Quit: Client closed]
davidlt has joined #riscv
jacklsw has joined #riscv
jacklsw has quit [Ping timeout: 252 seconds]
jacklsw has joined #riscv
jacklsw has quit [Ping timeout: 255 seconds]
mlw has quit [Ping timeout: 255 seconds]
Esmil has quit [Ping timeout: 258 seconds]
pjw_ has quit [Server closed connection]
pjw_ has joined #riscv
jacklsw has joined #riscv
davidlt has quit [Ping timeout: 255 seconds]
JanC_ has joined #riscv
JanC is now known as Guest1967
Guest1967 has quit [Killed (tungsten.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
vagrantc has joined #riscv
jonmasters has quit [Server closed connection]
jonmasters has joined #riscv
vagrantc has quit [Quit: leaving]
mlw has joined #riscv
notgull has quit [Ping timeout: 240 seconds]
notgull has joined #riscv
BootLayer has joined #riscv
hays has quit [Server closed connection]
<unlord> courmisch: because gentoo, and building on device is terrible
<unlord> I'm planning on attending FOSDEM
jacklsw has quit [Quit: Back to the real world]
shamoe has quit [Quit: Connection closed for inactivity]
jacklsw has joined #riscv
haritz has quit [Ping timeout: 240 seconds]
davidlt has joined #riscv
<courmisch> unlord: but why not rsync or scp just a test case?
<courmisch> you could even run it from tmpfs and not touch the SD
jrjsmrtn has quit [Read error: Connection reset by peer]
jrjsmrtn has joined #riscv
Esmil has joined #riscv
prabhakarlad has joined #riscv
ezulian has joined #riscv
drewj has joined #riscv
awita has joined #riscv
crabbedhaloablut has joined #riscv
drewj has quit [Quit: Client closed]
drewj has joined #riscv
markie has joined #riscv
markie is now known as agentcasey
agent314 has joined #riscv
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #riscv
pecastro has joined #riscv
drewj has quit [Ping timeout: 272 seconds]
Jackneill has joined #riscv
drewj has joined #riscv
elastic_dog has quit [Ping timeout: 252 seconds]
prabhakarlad has quit [Quit: Client closed]
EchelonX has joined #riscv
EchelonX has quit [Client Quit]
elastic_dog has joined #riscv
EchelonX has joined #riscv
drewj has quit [Read error: Connection reset by peer]
jmdaemon has quit [Ping timeout: 246 seconds]
smaeul has quit [Ping timeout: 245 seconds]
smaeul has joined #riscv
drewj has joined #riscv
jimbzy has quit [Server closed connection]
jimbzy has joined #riscv
jacklsw has quit [Ping timeout: 240 seconds]
drewj has quit [Ping timeout: 246 seconds]
drmpeg has quit [Ping timeout: 240 seconds]
drewj has joined #riscv
prabhakarlad has joined #riscv
drmpeg has joined #riscv
drewj has quit [Ping timeout: 258 seconds]
mlw has quit [Ping timeout: 246 seconds]
drewj has joined #riscv
mlw has joined #riscv
elastic_dog has quit [Ping timeout: 258 seconds]
psydroid2 has joined #riscv
EchelonX has quit [Quit: Leaving]
drewj has quit [Ping timeout: 252 seconds]
drewj has joined #riscv
elastic_dog has joined #riscv
esv has joined #riscv
Andre_Z has joined #riscv
esv_ has joined #riscv
esv_ has quit [Remote host closed the connection]
esv_ has joined #riscv
esv has quit [Ping timeout: 264 seconds]
drewj has quit [Ping timeout: 246 seconds]
esv_ has quit [Ping timeout: 264 seconds]
haritz has joined #riscv
haritz has quit [Changing host]
haritz has joined #riscv
drewj has joined #riscv
drewj has quit [Read error: Connection reset by peer]
drewj has joined #riscv
edr has joined #riscv
esv_ has joined #riscv
esv_ is now known as esv
heat has joined #riscv
Trifton has joined #riscv
esv has quit [Ping timeout: 252 seconds]
prabhakarlad has quit [Quit: Client closed]
drewj has quit [Ping timeout: 246 seconds]
esv has joined #riscv
Esmil has quit [Ping timeout: 255 seconds]
drewj has joined #riscv
drewj has quit [Ping timeout: 255 seconds]
prabhakarlad has joined #riscv
jacklsw has joined #riscv
drewj has joined #riscv
shamoe has joined #riscv
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #riscv
drewj has quit [Ping timeout: 246 seconds]
Esmil has joined #riscv
sakman has quit [Quit: Leaving]
sakman has joined #riscv
heat_ has joined #riscv
heat has quit [Read error: Connection reset by peer]
<courmisch> the vsetvli behaviour on penultimate loop iteration is kind of annoying
<courmisch> I have a case where I need to be sure that VL is always even and that's in the way :/
dzaima[m] has joined #riscv
<dzaima[m]> yeah, it's very not nice; another place where it breaks things is for mask loads/stores (vlm/vsm) where otherwise you could have a loop which adds vl>>3 or whatever to a pointer on each iteration, and it'd work (assuming a high enough LMUL such that vlmax≥8)
<courmisch> I have not yet had a use case for masking :)
<courmisch> possibly because multimedia grew up in SIMD without masking and built a habit of not having masks
<courmisch> I guess I have to insert a MIN before VSETVLI
<dzaima[m]> this would be for like in-memory packed-bit-boolean arrays
<dzaima[m]> peeling off the last iteration is another option (if the loop body isn't very large)
<courmisch> To be clear, I don't question that it's useful in *some* cases.
<courmisch> But it's a lot less useful than with SVE (because SVE has no tail concept)
mwette has joined #riscv
drewj has joined #riscv
mobius has quit [Server closed connection]
mobius has joined #riscv
drewj has quit [Ping timeout: 246 seconds]
<courmisch> and now I need to eat my hat because I just got a use case for masking
drewj has joined #riscv
<dzaima[m]> (partly related to even-length vectors - https://github.com/riscv-non-isa/rvv-intrinsic-doc/issues/289#issuecomment-1781385001 has a two-instruction interleave for ≤32-bit elements (a couple months ago here the best I arrived at was 3 instrs) - vwmaccu(vwaddu(lo, hi), -1, hi))
<courmisch> eww, instrinsics
drewj has quit [Ping timeout: 246 seconds]
mlw has quit [Ping timeout: 246 seconds]
<Andre_Z> Hi, I'm currently porting Hangover to RISC-V. One thing that's annoying is that there's no __sync_bool_compare_and_swap_128 on RISC-V64. Is someone aware of preexisting code to workaround that?
<courmisch> well you can't compare-and-swap 128-bit values atomic values if you can't
<courmisch> AFAIK, you can't do that on Armv8.0 either
<courmisch> Andre_Z: so whatever the Armv8 code does?
<Andre_Z> there's __sync_bool_compare_and_swap_128 on ARMv8, I'll have a look what it does. But am I really the only one running into that?
<palmer> Andre_Z: there's a proposed ISA extension for 128-bit CAS
lagash has quit [Remote host closed the connection]
lagash has joined #riscv
<palmer> no, missing double-word CAS breaks a bunch of stuff. That's why everyone else has it ;)
<Andre_Z> palmer: interesting, how do I check if my CPU has that already, or is it too unlikely in the proposed state?
<heat_> try using a spinlock/mutex
<heat_> it's not lockless but will just work
awita has quit [Ping timeout: 246 seconds]
<courmisch> ah nvmd, Armv8.0 has LDXP/STXP
<sorear> do you have a link for Hangover?
<Andre_Z> heat_: Is there some code outthere? Porting Hangover is already a challange without thinking about CAS
<Andre_Z> I think the only similar thing for RISC-V atm is Wine-CE, but Hangover will be like 10x faster. But wrt funding, it seems only one guy is currently interested...
agent314 has quit [Ping timeout: 246 seconds]
<sorear> armv8 has had double-word CAS since the beginning but armv6(or was it 5? ) and mips are limited to the word size
<heat_> Andre_Z, fwiw it's entirely possible that C11 atomics will Just Work and link in libatomic
<courmisch> well *technically*, you need Armv8.1-LSE for CAS
<courmisch> but Armv8.0 has 128-bit load/store exclusive
<heat_> the __sync stuff is AFAIK discouraged
<sorear> for an emulator, I think your only real options are to either stop the world for wide atomics (qemu does this), or do software MESI with a separate address space per thread and page-sized "cache lines"
Stat_headcrabed has joined #riscv
<sorear> load/store exclusive as it is actually implemented and CAS are equally powerful
drewj has joined #riscv
<courmisch> heat_: I don't think you can introduce a spin lock when writing an emulator
jacklsw has quit [Ping timeout: 246 seconds]
<Andre_Z> sorear: I'm not yet at the emulation stuff, just basic Wine as the foundation
<Andre_Z> heat_: I'll have a look, thanks
<courmisch> uh, basic WINE? there's no Windows on RISC-V (yet) so what does that even mean?
<sorear> the advantages of load/store exclusive for mitigating ABA problems as found in the published literature require you to be able to load and store unrelated variables between the LL and SC, which no real architecture allows
<heat_> courmisch, why not? they're already calling functions, it's not like this is JITted
<courmisch> heat_: you can't realistic change the memory layout of things
<heat_> libatomic Should(tm) just hash the address into some locks, and do the cmpxchg under them
<courmisch> so you could use a spinlock, but it would have to be in a parking pattern or something like that
<heat_> sure
<sorear> the libatomic approach works for the C abstract machine but not for emulators, because a "cmpxchg16b" instruction is atomic with respect to 32-bit and 64-bit _simple_ loads and stores executed in other threads
<Andre_Z> courmisch: check my Hangover link above :) Wine just needs to run, then I can use the WoW64 mode to plugin an emulator for only emulating the x86 application. Windows-syscalls are then handled on the RISC-V side, outside of the emulator
<sorear> (libatomic approach = hashed locks)
<courmisch> parking pattern is what you call hashed locks, I think
<Andre_Z> heat_: thanks, that looks promising
<courmisch> but yeah, you will have problems w.r.t. regular loads and stores
Stat_headcrabed has quit [Quit: Stat_headcrabed]
drewj has quit [Ping timeout: 252 seconds]
<heat_> yeah... good point
drewj has joined #riscv
<courmisch> well, emulating x86 without RVWMO is basically impossible
<sorear> fences everywhere or software MESI...
<courmisch> no not WMO
<heat_> tbf cmpxchg16b is recent enough that you can try to not implement it and see what happens
<courmisch> whatever the extension name was that brought x86 memory model
<sorear> Ztso
<courmisch> yes that, thx
<sorear> which for some reason isn't available in hwprobe despite currently existing hardware, openjdk is probing mvendorid instead
<courmisch> hwprobe support in glibc any decade
<palmer> courmisch: I was going to merge it last night, but the tests fail
<courmisch> can't we get the syscall wrapper merged *without* the ifunc things that can't seem to be made to work?
<palmer> probably? you're just looking for one of the patches?
<palmer> I've been so worried about the ifunc stuff I kind of forgot about everything else...
<courmisch> I am looking for source compatibility that I can rely on, as opposed to second-guessing what will be merged
<courmisch> sorear: prefetch support also not exposed, IIRC
<palmer> OK, so is there a patch you can point me at or something?
mlw has joined #riscv
<courmisch> and unaligned vector memory load/store, but that one has no hardware implementation
<courmisch> palmer: I lost the link to the last version in patchwork. I only care about the plain syscall wrapper (since this goes into code bases that can't rely on IFUNC).
<sorear> that's surprising given that it's basically free on implementations where changing SEW is a no-op
<sorear> i wasn't aware of current implementations of Zicbop
<courmisch> well there's only one implementation of RVV 1.0 commercially "available"
<courmisch> and that's K230, and it crashes on unaligned accesses
<courmisch> ask me why I know...
<heat_> <courmisch> well, emulating x86 without RVWMO is basically impossible <-- tbf they have done it before for arm64, but it just sucks compared to the M1's x86 TSO sauce
<courmisch> heat_: you're making my point. Yes, unless you have Apple hardware, you're toast
<courmisch> palmer: seems right
<palmer> OK, I'll go try and figure out what's actually failing
<courmisch> palmer: it's dumb, but I don't even know if it's going to be called "__riscv_hwprobe" or "riscv_probe" or whatever
<palmer> those shouldn't really be tripping anything up
<palmer> ya, makes sense
<palmer> let me try and figure out what's actually failing, build-many-glibcs is kind of a headache...
<courmisch> and then ofc, QEMU user doesn't support hwprobe either. Sigh.
<courmisch> and vendors seem to love their pre-hwprobe kernel versions
<palmer> QEMU should support it, Robbin had some patches and IIRC they got merged
<courmisch> that must be recent then
<palmer> ya, a few weeks at most
<palmer> actually a few months ;)
<palmer> there should be some follow-ons to add stuff as Linux does
aburgess_ has quit [Ping timeout: 240 seconds]
sakman has quit [Quit: Leaving]
sakman has joined #riscv
mlw has quit [Ping timeout: 246 seconds]
mlw has joined #riscv
Trifton has quit [Quit: Error: no route to host]
suqdiq has quit [Quit: suqdiq]
suqdiq has joined #riscv
vagrantc has joined #riscv
duthils has quit [Server closed connection]
duthils has joined #riscv
ntwk has quit [Ping timeout: 255 seconds]
esv has quit [Ping timeout: 255 seconds]
jfsimon1981_c has joined #riscv
esv has joined #riscv
esv_ has joined #riscv
esv has quit [Ping timeout: 246 seconds]
esv_ has quit [Ping timeout: 255 seconds]
esv has joined #riscv
heat_ is now known as heat
gatecat has quit [Server closed connection]
gatecat has joined #riscv
ximet4375 has quit [Quit: The Lounge - https://thelounge.chat]
ximet4375 has joined #riscv
aburgess has joined #riscv
ezulian has quit [Ping timeout: 255 seconds]
ntwk has joined #riscv
Trifton has joined #riscv
mlw has quit [Ping timeout: 240 seconds]
BootLayer has quit [Quit: Leaving]
davidlt has quit [Ping timeout: 240 seconds]
drewj has quit [Ping timeout: 252 seconds]
drewj has joined #riscv
esv_ has joined #riscv
esv has quit [Ping timeout: 246 seconds]
elastic_dog has quit [Ping timeout: 246 seconds]
Pokey has quit [Server closed connection]
Pokey has joined #riscv
drewj has quit [Ping timeout: 255 seconds]
elastic_dog has joined #riscv
pabs3 has quit [Ping timeout: 246 seconds]
psydroid2 has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
khem has quit []
khem has joined #riscv
crabbedhaloablut has quit []
meowray has quit [Server closed connection]
meowray has joined #riscv
Laurence_b has joined #riscv
pabs3 has joined #riscv
Jackneill has quit [Ping timeout: 255 seconds]
Andre_Z has quit [Quit: Leaving.]
shamoe has quit [Quit: Connection closed for inactivity]
notgull has quit [Ping timeout: 246 seconds]
shamoe has joined #riscv
notgull has joined #riscv
Laurence_b has quit [Quit: Client closed]
prabhakarlad has quit [Quit: Client closed]
jrtc27 has quit [Server closed connection]
jrtc27 has joined #riscv
jmdaemon has joined #riscv
drewj has joined #riscv