IRC channel logs

2026-10-08.log

back to list of logs

<damo22>sigttou: good job finding those bugs
<sigttou>damo22: trying to get a Hurd lab spin up for students. it's a bit messy :)
<Gooberpatrol_66>cool!
<bigmike-sit>i managed to get download speeds over rumpnet wm0 on x86-64 from the old 75ish kb/s to 5mb/s! :D
<hwpplayer1>which os?
<hwpplayer1>hurd ?
<bigmike-sit>yes
<hwpplayer1>debian ?
<bigmike-sit>the patch was surprisingly simple
<bigmike-sit>yes
<hwpplayer1>I see inside a vm or physical
<bigmike-sit>physical
<hwpplayer1>I see
<hwpplayer1>An old Thinkpad ?
<hwpplayer1>Lots of questions :)
<bigmike-sit>same gen, latitude e6420
<bigmike-sit>hwpplayer1: actually, no i seem to jsvr just hit 10mb/s
<hwpplayer1>I want to use Hurd Debian inside Proxmox
<hwpplayer1>any suggestions
<bigmike-sit>basically, the issue appeared to be that it was aligning words entirely incorrectly on x86-64 causing packets to be dropped like crazy
<hwpplayer1>for development reason
<hwpplayer1>brb
<bigmike-sit>hwpplayer1: wdym?
<hwpplayer1>I want to write code inside Hurd Debain
<hwpplayer1>Debian
<hwpplayer1>Inside Proxmox vm
<hwpplayer1>A lab environment
<hwpplayer1>Any suggestions ?
<sigttou>get qemu running, boot image, do it
<hwpplayer1>GNU Assembler, C, C++
<hwpplayer1>yes
<hwpplayer1>GCC also
<bigmike-sit>i think you would want to follow this guide
<bigmike-sit> https://www.gnu.org/software/hurd/hurd/running/qemu.html
<hwpplayer1>sigttou: yes I did that before
<hwpplayer1>let me see bigmike-sit
<hwpplayer1>Thanks all
<hwpplayer1>Can I write userspace drivers with C++
<hwpplayer1>yes
<etno>bigmike-sit: great find about the rumpnet alignment issue ! The performance increase sounds huge :)
<nexussfan>bigmike-sit: Have you sent a patch?
<bigmike-sit>nexussfan: workin on it!
<bigmike-sit>etno: For amd64 only unfortunately (or fortunately?) Came down to a mismatch with taking the sizeof int and long, meaning they were semi-consistently 4 bytes off from where expected, as NetBSD uses sizeof (long) for padding of BPF reads, and Mach (well, net-rump.c) uses sizeof (int) for that alignment. on i386 both are 4bytes so its like whatever, but on x86_64 long is 8 and int is 4. sneaky...
<bigmike-sit>the sneaky part is, the first packet of every read got parsed correctly like 100% of the time
<bigmike-sit>only when they all came together did the mismatch occur
<bigmike-sit>which is why tcp speeds collapsed
<bigmike-sit>though I do think there is more performance to be eeked out of this. just not right now
<damo22>thanks for looking into it
<etno>I think that I understand how this makes the packets unaligned, and that leads to alignment issues when using packed structs to access fields.
<etno>But I fail to understand how this leads to packet drop?
<bigmike-sit>etno: well, its more a misparsing than a literal packet drop. after a full frame rumpnet advances 1540 bytes, but the kernel puts the header at 1544 causing it to be read 4 bytes early. so the length lands on the top half of a 64-bit timestamp and the length gets mangled that looks like a truncated fragment to the code, so the rest of the readbuffer is just kinda thrown away
<etno>Oh wow, now I get it. Thanks bigmike-sit
<bigmike-sit>etno: np! i saw a few other people had this same exact issue a while ago so hopefully this can like actually be of use! 😅
<hwpplayer1>I'm badck
<hwpplayer1>I'm back
<gnu_srs>Hello, one of my 32-bit images spews out the following: https://darnassus.sceen.net/~gnu_srs/Screenshot_2026-09-29_14-08-31.png
<gnu_srs>However, rumpdisk is not used on 32-bit images??
<etno>gnu_srs, I have a fresh debian i386 install here, and while rumpdisk is running, the root filesystem is obtained at `typed:part:2:device:hd0`
<gnu_srs>etno: But on amd64 it is ...device/wd0??
<etno>This is what I use on the amd64 VM I use everyday, but I tweaked it so much that I couldn't tell whether this is the default (I think that I changed it a long time ago)
<etno>But then, it can only work if the gnumach ahci support is disabled, and I have no "noide" directive on the gnumach cmdline
<etno>So I would conclude that the CONFIG_BLK_DEV_IDE config is undef for amd64
<etno>gnu_srs, sorry to bother you with this question (again), and if I am adding some salt on a wound, simply tell me and I will stop : there was this attempt at some point to fix the DRM headers so that a newer version of MESA would build ; what happened then ? Was the patch refused ?
<etno>damo22: to your knowledge, is the rumpkernel pci stuff doing some reconfiguration of the PCI tree ? When I create a 9PFS device in qemu, its BAR4 (64bits) is configured at the BIOS stage, but seems to be unconfigured later, and I am suspecting rump.
<etno>ACTION feels lonely
<GNU_Hurd_Rocks>I spent a couple days on Gentoo installation media doing random things :3
<hwpplayer1>Any C++ developer at kernelspace here ? I want to learn how to manage memory allocation efficiently...
<GNU_Hurd_Rocks>hwpplayer1: C++ isn't something I've seen used much
<hwpplayer1>I see
<hwpplayer1>I have to go
<etno>GNU_Hurd_Rocks: the Gentoo stuff is very intriguing to me, especially since I am ignorant of Gentoo itself :D
<Darelelve>gnu_srs: Hello. The issue may be that storeio is returning an incorrect file type and its mapping is not working correctly. Fixes to address these problems have already been submitted.
<GNU_Hurd_Rocks>also it seems my git provider has temporarily made it so login is required because of scraping
<damo22>etno: sorry i have been in bed sick for 2 days
<etno>Oh no! I hope you get better soon 🍵
<damo22>i think acpi might reconfigure the interrupts im not sure about BARs
<etno>Could the initialization in rumpkernel redo the PCI bus BAR allocations ?
<etno>I dug a bit, and there is definitely PCI allocation code, which could reset BARs if the allocation fail (which could happen only for >4G (the default for 64b))
<etno>But just a guts feeling for now
<damo22>i dont think it removes the base address does it?
<etno>It starts by reading the size, which involves writing ~0
<damo22>does it put the old value back?
<etno>It should restore the initial value in case of error; except if the range allocator fails
<GNU_Hurd_Rocks>damo22: damn, sickness sucks, can't do what you actually want to do
<etno>But I am not even sure that this code runs
<GNU_Hurd_Rocks>I'm in a similar state (sort of) where I don't have an OS to use right now
<damo22>you dont want my fever, luckily you cant catch it over IRC
<GNU_Hurd_Rocks>I just need an OS right now awa
<etno>ACTION sprays some alcool on the screen, in case
<GNU_Hurd_Rocks>silly
<damo22>lol
<etno>GNU_Hurd_Rocks: did you lose an OS recently?
<GNU_Hurd_Rocks>gentoo reinstall :3
<GNU_Hurd_Rocks>TRYING to keep it together by not reinstalling yet again because of not liking one random thing during install
<etno>I supposed that you were talking about Gentoo Hurd, earlier. But I am not so sure now
<GNU_Hurd_Rocks>It's just Gentoo and Linux kernel