dgilmore changed the topic of #fedora-riscv to: Fedora on RISC-V https://fedoraproject.org/wiki/Architectures/RISC-V || Logs: https://libera.irclog.whitequark.org/fedora-riscv || Alt Arch discussions are welcome in #fedora-alt-arches
davidlt_ has joined #fedora-riscv
tg has quit [Ping timeout: 240 seconds]
tg has joined #fedora-riscv
zsun has joined #fedora-riscv
davidlt_ has quit [Ping timeout: 255 seconds]
esv_ has joined #fedora-riscv
esv has quit [Remote host closed the connection]
zsun has quit [Quit: Leaving.]
zsun has joined #fedora-riscv
jcajka has joined #fedora-riscv
esv_ is now known as esv
zsun has quit [Quit: Leaving.]
davidlt_ has joined #fedora-riscv
zsun has joined #fedora-riscv
zsun has quit [Quit: Leaving.]
zsun has joined #fedora-riscv
zsun has quit [Client Quit]
<rwmjones> davidlt_: heya, what do you think about me upgrading nufive & nujive to F38?
<davidlt[m]> No
<davidlt[m]> There are at least two blockers for GA, if you update you will not be able to boot afterwards.
<rwmjones> davidlt_: F37 instead?
<davidlt[m]> That works.
<rwmjones> (otherwise I'll have to get the VF2 working)
<rwmjones> ok let me take a look at F37
<rwmjones> obviously 4 Fedora releases is a big jump ...
<davidlt[m]> Yeah, most likely things will break.
<davidlt[m]> I only do such "experiments" in QEMU.
<rwmjones> this is interesting:
<rwmjones> $ ps ax | grep nbd 454747 ? Ssl 0:00 ../../nbd-server -C /tmp/tmp.FqjyDa/nbd.conf -p /tmp/tmp.FqjyDa/nbd.pid 454749 ? R 7630:19 ./nbd-tester-client -N export1 localhost 454750 ? S 0:00 ../../nbd-server -C /tmp/tmp.FqjyDa/nbd.conf -p /tmp/tmp.FqjyDa/nbd.pid
<rwmjones> 1367300 pts/1 S+ 0:00 grep --color=auto nbd
<davidlt[m]> If I need a physical machine I just pull a board out of the farm, use a new NVMe.
<rwmjones> I wonder if those are rogue processes, they don't appear to correspond to any build
<davidlt[m]> Once I am done, just pop in the old one and let it back into the farm.
<rwmjones> yup
<davidlt[m]> Yeah, looking from the time.
<rwmjones> I really should get the VF2 working, all the hardware is in place
<davidlt[m]> If you use QEMU, you must use QEMU 8.0.0.
<rwmjones> I was planning to use their weirdo kernel + Fedora userspace
<davidlt[m]> Yeah, you can do that. Kernel v6.4 has minimal bits to boot (at 1.0GHz).
<davidlt[m]> I think Ubuntu has an image for VF2 too now, but aren't widely marketing it (lacks some things).
<davidlt[m]> I think that's probably 6.2 + whatever was merged in 6.3 and upcoming 6.4.
<davidlt[m]> That would mean no PCIe, USB, etc.
<davidlt[m]> I heard (cannot confirm) that upstream stuff already "feels" more stable than vendor kernel.
<thefossguy> <davidlt[m]> "I think Ubuntu has an image..." <- USB and the 100Mbit PHY doesn't work because it loads the dtb for the newer board variant
<thefossguy> That's what I have heard though, both of my boards are using the newer v1.3B
<davidlt[m]> I think this is being discussed on the mailing list.
<davidlt[m]> I only have 1.3B.
<davidlt[m]> I think there are patches posted for DT patching in U-Boot.
<davidlt[m]> Similar like for Unmatched. Read EEPROM, detect which PCB it is, patch.
<thefossguy> <davidlt[m]> "Yeah, you can do that. Kernel v6..." <- At the moment, there are two options...
<thefossguy> You have a "new" vendor kernel that is now bumped to 6.3-rc1 (for upstream purposes). Find it [here](https://github.com/starfive-tech/linux/tree/JH7110_VisionFive2_upstream).
<thefossguy> Or use `-next` until 6.4 releases with `-rc1`.
<davidlt[m]> IIUC Canonical/Ubuntu aren't announcing VF2 images beceause it's not ready yet for GA.
<thefossguy> davidlt[m]: I noticed conversations about this in the patch that StarFive sent to u-boot
<davidlt[m]> > Esmil> drmpeg: no, the ubuntu kernel doesn't support pcie yet, which is why that image is not advertised a lot, but it will come
<thefossguy> davidlt[m]: I think the board knows which revision it is. Can't uboot read that and send it to GRUB/kernel?
<davidlt[m]> Not how that works.
<thefossguy> davidlt[m]: Where is this from? I'd be curious to read more! :D
<davidlt[m]> riscv IRC channel.
<davidlt[m]> Basically there is probably I2C connected EEPROM chip, which hold some information (in some specific StarFive format).
<davidlt[m]> There needs to be a driver in U-Boot to get that information, parse and provide.
<davidlt[m]> The patching happens only for U-Boot handled DTB.
<davidlt[m]> Now technically that DTB is fine for Linux, but it's probably gonna be out-of-sync with Linux for a few releases.
<davidlt[m]> Bootloader provides DTB to the kernel.
<davidlt[m]> Having that information on Linux side is already too late.
<davidlt[m]> If you use EXTLINUX, and fdtdir, fdt, etc. the patching will not happen at all.
<davidlt[m]> In that case you are just loading DTB from /boot and copying into the memory location.
<davidlt[m]> IIRC for that one patching is not triggered (usually).
<davidlt[m]> What get's patched is that DTB stored in ITB file (usually).
<davidlt[m]> I might be lying here already.
<davidlt[m]> 1.3B will be default IIRC from further discussions.
<thefossguy> What I meant to say is this:
<thefossguy> The DTS support for both hardware revisions is already in Linux. And since uboot (though "universal") is still compiled targeting an individual board, each board will have its own *minimal* DTB hard-wried into uboot. Now, since uboot already knows what board it is running on, it can just pass the DTB name as a parameter to GRUB/Linux and the rest could be handled by GRUB/Linux.
<thefossguy> No need to actually patch the DTB, neither in the bootloader nor in Linux.
<davidlt[m]> Patching would be done <1.3B.
<thefossguy> There are quite a lot of boards with revision 1.2A
<davidlt[m]> Majority of sales will be 1.3B I assume, thus it's a good choice for default. Patch for 1.2.
<thefossguy> Agreed with that
<davidlt[m]> It only works for EXTLINUX what you described.
<davidlt[m]> But not exactly, because it's a single board and there aren't much to patch.
<davidlt[m]> Ah, in Linux they actually have two DTS.
<davidlt[m]> That's fine.
<davidlt[m]> What they should do is to change fdtfile value based on EEPROM results.
<thefossguy> Looking at their kickstarter, I see 333 backers for 1.2A (4gb) and 737 backers for 1.2A (8gb). Looking at the official numbers, this is higher in number than 1.3B; Though that's just once source. I assume third party sellers are selling the 1.3B revision.
<davidlt[m]> Well KS was before the general sale.
<thefossguy> davidlt[m]: Yup, that's why i said about passing in the DTB name as a parameter and the bootloader/kernel would handle the rest.
<thefossguy> davidlt[m]: That's how I got it though :D
<davidlt[m]> Yeah, I just wanted to avoid anything non-general availability.
<davidlt[m]> I am still running non-production Unmatched :)
<thefossguy> davidlt[m]: Confirming: Does what I mentioned still apply only to extlinux?
<davidlt[m]> Yes
<thefossguy> How has that been?
<davidlt[m]> A bit painful sometimes, it has one annoying PCB errata.
<thefossguy> The reset bug?
<davidlt[m]> and a slightly different PMIC
<davidlt[m]> If serial console (micro USB) is reconnected the board basically hangs.
<davidlt[m]> Also doesn't boot if microUSB is not connected.
<thefossguy> minor but serious since it is a dev board and serial is crutial
<davidlt[m]> Yeah. If I forget about it while compiling something for hours it makes me a little angry :D
<thefossguy> XD
zsun has joined #fedora-riscv
zsun has quit [Quit: Leaving.]
zsun has joined #fedora-riscv
esv_ has joined #fedora-riscv
esv has quit [Ping timeout: 240 seconds]
<davidlt[m]> rwmjones: are you getting Sipeed board?
<rwmjones> davidlt[m]: errr, not the new one
<rwmjones> I have one of the ancient ones
<rwmjones> does it do anything particular different from VF2/etc?
<davidlt[m]> The new one has the best perf so far.
<davidlt[m]> It's the 1st board with OoO cores. The benchmarks (from vendor) claims ~2x perf increase version VF2.
<rwmjones> is it still a big mess of private extensions? I think they completely switched microarch (to andes?)
<davidlt[m]> Also you get 16GB of RAM (also faster compared to VF2).
<davidlt[m]> Nah, it's TH1520. That is T-HEAD (Alibaba).
<rwmjones> I may be only vaguely remembering the details
<rwmjones> ah ok
<davidlt[m]> This one has tons of THEAD (vendor) extensions, that are yet to be hooked into glibc (most likely will be0>
<davidlt[m]> So this one will most likely gonna gain extra performance with time.
<davidlt[m]> And it costs the same as VF2 IIRC.
<davidlt[m]> Sadly you don't get PCIe, SD card and maybe eMMC.
<davidlt[m]> USB + NVMe combo is the best solution here.
<rwmjones> ugh
<rwmjones> NVMe is where a good deal of the performance comes from in practice
<davidlt[m]> No upstream support, but if you need a developer machines, that's best perf and best value option.
<rwmjones> I mean, as in directly wired to PCIe
<davidlt[m]> Yeah, IIUC, 64-core C920 (2nd gen OoO?) dev kits might be available for order/pre-order next month.
<rwmjones> ok, for now I'm going to concentrate on making the VF2 work
<rwmjones> & fixing dnf5, it's taking ages to build
<davidlt[m]> Welcome to the party :D
<davidlt[m]> That's way I work on gazillion of stuff at once.
<davidlt[m]> "minutes per package" should be a matric..
<davidlt[m]> *metric
<davidlt[m]> Jeff approved a patch for GCC to solve sub-word atomic nonsense.
<davidlt[m]> So that's going to GCC 14, and I wonder if that will land in a special GCC 13 branch for riscv.
<davidlt[m]> A lot of vendors plan to base whatever they have on GCC 13, thus decision was made to cook a special perf + fixes branch for GCC 13 + riscv64.
<davidlt[m]> I am thinking of pulling patches from it to our GCC build.
<davidlt[m]> I didn't check, but from emails I get impression hwprobe syscall landed in 6.4.
<davidlt[m]> VRULL is suggesting an additional (simpler) interface that depends on isa-string and uses AT_BASE_PLATFORM (aux vector).
<davidlt[m]> One of the patches is to patch in xthead_ extensions.
<davidlt[m]> I assume optimized functions will start showing up for THEAD stuff this year too.
<davidlt[m]> It would be silly not to wire those up at least in glibc.
zsun has quit [Quit: Leaving.]
esv_ is now known as esv
<rwmjones> davidlt[m]: got a link to that gcc patch or issue?
<davidlt[m]> This will fix a lot of problems for us (and others).
<davidlt[m]> There is also general improvements for atomics too: https://gcc.gnu.org/pipermail/gcc-patches/2023-April/615264.html
<davidlt[m]> That's still pending approval IIRC. Latest version here: https://gcc.gnu.org/pipermail/gcc-patches/2023-April/615748.html
<rwmjones> thanks
zsun has joined #fedora-riscv
<rwmjones> fffs dnf5 build failed
<rwmjones> .. because I was upgrading some library on the machine at the same time
* rwmjones thought dnf5 was supposed to be the slim, tiny alternative to dnf 4
<davidlt[m]> IIRC it takes quite some time to build it
<davidlt[m]> According to Koji it will be about ~2:30 hours before it fails
<davidlt[m]> and it's 1 failing test out of 300+
jcajka has quit [Quit: Leaving]
zsun has quit [Quit: Leaving.]
* rwmjones is wtf about this golang package
<rwmjones> building it builds a package of dependencies ...
<rwmjones> ?
<davidlt[m]> Which one?
<rwmjones> davidlt[m]: golang-x-tools
<rwmjones> fedpkg local built
<davidlt[m]> Oh yes, have fun wit hthat one :)
<rwmjones> Wrote: /home/rjones/d/fedora/golang-x-tools/rawhide/golang-x-tools-0.6.0-2.fc39.buildreqs.nosrc.rpm
<davidlt[m]> 1st thing remove gopls for bootstrap, that will kill a couple of deps
<davidlt[m]> Ah, that's auto stuff they have
<rwmjones> I'm more like wtf is it even doing
<davidlt[m]> This generates meta-pacakge with deps IIRC.
<davidlt[m]> The macros need to look at the source tree to generate dependencies and then builddep those with dnf
<davidlt[m]> This makes life a bit harder (and annoying) as you no longer can manually modify it during the bootstrap.
<davidlt[m]> alexsaezm: FYI ^^
* alexsaezm didn’t start looking into it yet
iooi has quit [Quit: iooi]
iooi has joined #fedora-riscv
iooi has quit [Read error: Connection reset by peer]
iooi has joined #fedora-riscv
jednorozec has quit [Ping timeout: 240 seconds]
jednorozec has joined #fedora-riscv
<rwmjones> davidlt[m]: can I schedule a time to reboot nufive & nujive?
<rwmjones> whenever is good
<davidlt[m]> rwmjones: now is a good time
<rwmjones> ok
<rwmjones> I'm going to do nufive first, just in case it doesn't come back up
<rwmjones> nufive booting ...
<rwmjones> for some reason with an f33 kernel still
<davidlt[m]> I am off for today
<davidlt[m]> Hopefully NetworkManager finishes building overnight and tomorrow I have fun with systemd
<rwmjones> ok!
<rwmjones> nujive rebooting
<zbyszek[m]> Let me know if you run into any issues with systemd
davidlt_ has quit [Ping timeout: 255 seconds]
<davidlt[m]> There is one, but most likely related to binutils.
<davidlt[m]> It generates DT_TEXTREL in systemd-logind.
<zbyszek[m]> Hmm. I have no idea what DT_TEXTREL is. Maybe I can read up before tomorrow :]
<davidlt[m]> Basically logind fails with: error while loading shared libraries: cannot make segment writable for relocation: Permission denied
<davidlt[m]> This also could happen if some object files dont have fPIC.
<davidlt[m]> Also could be just a bug in binutils too.
<zbyszek[m]> That's very strange. And no other systemd binaries exhibit this behaviour?
<zbyszek[m]> Because there isn't anything special in how logind is built.
<davidlt[m]> No, or not so far.
<davidlt[m]> The two things that failed booting Fedora 38 on riscv64 was logind and NetworkManager (because of SELinux).
<davidlt[m]> But once booted all was OK and the rest was green.
<zbyszek[m]> We also have test-logind-core, a binary with unit tests for the code, that is part of systemd-tests.
<zbyszek[m]> It is linked more-or-less the same as logind.
<davidlt[m]> Previous systemd built with older toolchain didn't have textrel generated.
<davidlt[m]> I will do some experiments tomorrow. Time to sleep. 😪
iooi has quit [Ping timeout: 252 seconds]
<rwmjones> both should be back to normal now
iooi has joined #fedora-riscv