Hi Jiri, Thank you for fixing ahci and sata_bd, but as you say, when trying to add more controllers it spins somewhere.
Also for info: I just found out that the virtio-blk takes the same time for 512B write as for 64KiB write, because they are done in 1 DMA transfer. The call latency difference is noticeable when doing bigger ~2MiB transfers. I want to do a nice perf test of HelenRAID with real disks, and the highest power of 2 disks I have is 32. I wanted to see 32x speedup with RAID 0 striping even with sequential synchronous I/O, but that will be not possible with the multi-block virtio-blk, only with the old single-block slower one. I'm curious how will the graphs look. I just need to write an I/O tester. Thanks again, take care. Miroslav Cimerman Jiri Svoboda <jirik.svob...@seznam.cz> wrote: > Hi Miro, > > I was able to fix /drv/ahci and /srv/bd/sata_bd. Now they seem to work. > I tried adding multiple disks, but most I could add was 6 disks on a single > AHCI controller. > Trying to add more than 6 disks to an AHCI controller -> qemu gives an error. > Trying to add two AHCI controllers to the VM -> HelenOS hangs during boot. > > So not sure if this helps at all. > > Regards, > Jiri > > > ---------- Původní e-mail ---------- > Od: Miroslav Cimerman <m...@doas.su> > Komu: HelenOS development mailing list <helenos-devel@lists.modry.cz> > Datum: 28. 5. 2025 19:04:04 > Předmět: [HelenOS-devel] AHCI not working > > > > > Hello, > > > > I am trying to connect at least 33 block devices via Qemu to > > HelenOS, but there are multiple problems: > > > > pci-ide: not enough devices supported > > virtio-blk: possible, but currently having some perf issues [A] > > usb-mass-storage: possible, but too slow > > ahci: not working [B] > > > > > > [A] virtio-blk: > > > > In my previous mail I proposed a speedup to virtio-blk, the problem is, > > that even though there is an expected speedup of up to 120x when writing > > due to processing multiple blocks in one request, now every request, even > > with 1 block takes the same amount of time as using the full bandwidth. > > Why could that be? > > > > > > [B] AHCI not working: > > > > setup: relevant qemu arguments: > > > > qemu-system-x86_64 \ > > [...] > > -device ahci,id=ahci0 \ > > -drive file=/dev/sde,if=none,id=drive0 \ > > -device ide-hd,drive=drive0,bus=ahci0.0 > > > > > > 1. there is a null deref always triggered in: > > `uspace/drv/block/ahci/ahci.c::ahci_sata_create()` > > > > fix: > > > > diff --git a/uspace/drv/block/ahci/ahci.c b/uspace/drv/block/ahci/ahci.c > > index acd9cd56e..26820bdb9 100644 > > --- a/uspace/drv/block/ahci/ahci.c > > +++ b/uspace/drv/block/ahci/ahci.c > > @@ -1074,6 +1074,8 @@ static errno_t ahci_sata_create(ahci_dev_t *ahci, > > ddf_dev_t *dev, > > goto error; > > } > > > > + fun = sata->fun; > > + > > ddf_fun_set_ops(fun, &ahci_ops); > > > > rc = ddf_fun_bind(fun); > > > > > > 2. even after fixing this, it still doesn't work. After starting > > /srv/bd/sata_bd > > the server successfully finds the drv and opens a bd interface at bd/ahci_0, > > but when trying to read from it: `blkdump bd/ahci_0`, the server crashes. > > I think it is at > > https://github.com/HelenOS/helenos/blob/master/uspace/lib/drv/generic/remote_ahci.c#L159 > > because this assertion triggers the crash: > > > > [/srv/bd/sata_bd(40)] Assertion failed (area->magic == 0xBEEFCAFEU) in task > > 40, file "../../helenraid/uspace/lib/c/generic/malloc.c", line 283. > > > > which is called in free() in async_wait_for(). > > > > Also I have vbd server turned off as it was crashing the device right away, > > I wanted to > > manually crash it with blkdump, but its the same. > > > > > > Are there other ways to connect at least 33 block devices via Qemu to > > HelenOS? > > I will greatly appreciate any help with this. > > > > -- > > Miroslav Cimerman _______________________________________________ HelenOS-devel mailing list HelenOS-devel@lists.modry.cz http://lists.modry.cz/listinfo/helenos-devel