IRC Logs for #lost


2024-07-30

07:09:22 XanClic joined the channel
09:38:50 kevin joined the channel
14:26:53 Biolunar joined the channel
14:29:08 kevin: XanClic: Hm, hat vhost-user-blk in rsd andere Defaults als in QEMU? Oder benutzt es sonst irgendwelche Magie, die für die Performance einen großen Unterschied machen sollte?
14:29:39 kevin: Mir kommt es gerade komisch vor, dass es bei mir gerade schneller war als der eingebaute null-Treiber in QEMU
14:30:57 XanClic joined the channel
15:07:07 kevin: XanClic: War das ein strategisches Verlassen oder hattest du die Frage gar nicht gesehen? ;-)
15:41:48 XanClic: äääh
15:41:57 XanClic: bei mir ist zumindest keine Frage ;)
16:00:22 kevin: [16:29] XanClic: Hm, hat vhost-user-blk in rsd andere Defaults als in QEMU? Oder benutzt es sonst irgendwelche Magie, die für die Performance einen großen Unterschied machen sollte?
16:00:24 kevin: [16:29] Mir kommt es gerade komisch vor, dass es bei mir gerade schneller war als der eingebaute null-Treiber in QEMU
16:00:43 XanClic: Es ist natürlich eigener Code, insofern
16:00:55 XanClic: Magie macht es wimre aber nur, wenn man die Optionen dafür einschaltet
16:01:29 XanClic: also call-batching und poll-duration
16:02:05 kevin: Hm, ok
16:03:23 kevin: Mergt es Requests wie QEMU per Default?
16:03:37 XanClic: Ich glaube nicht
16:03:40 kevin: Hm, wobei, das kann's auch nicht sein, ich seh die Unterschiede bei randread/randwrite
16:04:04 XanClic: QEMU pollt auch per default, vielleicht ist pollen bei null ja langsamer ;)
16:09:45 kevin: Fände ich überraschend, aber wenn das ein Unterschied ist, kann man es ja mal probieren...
16:10:10 kevin: Oder ich akzeptiere einfach, dass QEMU virtio-blk + null langsam ist ;-)
16:11:06 XanClic: Es könnte sein, dass null keinen asynchronen Pfad hat
16:11:31 XanClic: Und deshalb im Gegensatz zu qemu sozusagen keine Coroutine erstellt werden muss
16:12:29 XanClic: Hm, doch. Ich hab mir offensichtlich extra Mühe gegeben (`Box::pin(async { Ok(()) })`)
16:13:30 kevin: Coroutinen wären auch eher mein Verdacht
16:14:08 kevin: Selbst wenn du das async hast, ist der Overhead im Vergleich sicher ein Vorteil von rsd
16:15:57 kevin: Wie schaltet man denn Polling in rsd ein?
16:17:59 XanClic: `"poll-duration": ` auf dem vhost-user-blk-export-Node
16:18:21 kevin: Oh, das macht der Export in rsd, nicht die Mainloop? Das heißt, das sollte man nur benutzen, wenn man nur einen Export hat?
16:18:30 XanClic: aber ich seh gerade, es wird sowieso so lange gepollt, wie neue Requests rein kommen, während andere abgeschlossen werden
16:18:59 XanClic: Vermutlich nur einmal pro Thread, ja
16:20:04 XanClic: also wird bei null wohl effektiv sowieso die ganze Zeit gepollt, weil immer neue Requests kommen, die dann sofort beendet werden, und dann werden wieder neue abgeholt
16:20:16 kevin: Wenn der Gast schnell genug ist, ja
16:21:19 XanClic: Jedenfalls gibts noch viel Platz für gute Ideen, ja, zum Beispiel, einfach die Mainloop pollen zu lassen ;)
16:23:00 XanClic: (oder besser `::poll()`, also jede Thread-Loop)
16:24:18 kevin: Vielleicht ist tatsächlich nicht alles, was QEMU macht, dumm ;-)
16:25:18 XanClic: Na ja, erstens wusste ich damals noch gar nicht, wie Polling bei qemu funktioniert
16:25:27 XanClic: das hab ich erst über irgendeinen Bug danach gelernt
16:26:00 XanClic: und zweitens ist einfach begrenzt, was ich allein in ein paar Monaten machen kann
16:26:11 XanClic: Vor allem, wenn mir keiner sagt, was ich alles falsch mache!
16:34:46 XanClic: na jo, bis morgen o/ :)