IRC Logs for #lost


2022-11-15

08:19:00 kevin joined the channel
08:38:17 XanClic joined the channel
09:49:41 xq: moin moin
09:49:45 xq: https://cdn.discordapp.com/attachments/947990550496309309/1042000885112393768/image.png
10:55:27 kevin: Moin
10:57:00 kevin: Das interessanteste sieht man wahrscheinlich auf einem Screenshot nicht, oder?
10:57:13 kevin: Und... 3x5-Schrift mit Kleinbuchstaben ist echt schwer zu lesen
11:42:35 xq: naja, das ist jetzt erst mal eh nur concept art
11:43:14 xq: mit der schriftart bin ich auch noch nicht happy, ich muss mal gucken, ob ich noch was finde oder selbst was pixel muss
11:43:36 xq: und bzgl interessant: naja, wird halt nen platform specific OS, ich hab nur 400x300 pixel screen size /o\
12:00:43 xq: kevin, XanClic: sind die virtio-structs eig. auf allen plattformen die selben?
12:01:40 kevin: Du meinst die Struktur von den Virtqueues, oder? Ich glaube schon, dass die überall gleich sind.
12:02:10 kevin: Das einzige, was früher mal komisch war, war, dass sie Host Endian waren. Aber seit Virtio 1.0 sind sie LE.
12:02:48 xq: ja, genau
12:03:43 xq: dann bau ich mir mal ein virtio package
12:13:25 kevin: XanClic: Danke übrigens für das lange Review zu Patch 12. Wahrscheinlich habe ich da ein paar Abkürzungen zu viel genommen... Ich weiß nicht, ob es sinnvoll ist, deine Punkte einzeln zu beantworten, oder ob ich den Patch nochmal ganz neu durchdenken sollte, was die wirkliche Bedingung ist und ob man das ein bisschen direkter angehen kann.
13:53:49 XanClic: kevin, ich freu mich auch einfach nur über neue Patches als Antwort *g*
13:59:29 kevin: XanClic: Dazu muss ich erstmal rausfinden, wie neue Patches aussehen müssten ;-)
14:00:51 kevin: Wenn es doof ist, darauf zu bestehen, dass child->parent_quiesce_counter > 0 ist, dann müsste man den quiesce_counter vom Parent erhöhen, ohne sonst irgendwas zu machen (und damit asserten, dass er schon > 0 ist). Ich fürchte fast, auch das wird nicht sehr schön werden.
14:08:21 XanClic: Ich könnt jetzt sagen, bei qsd-rs gibts halt in-flight-Counter pro BdrvChild-Äquivalent, aber ob das hilft, weiß ich nicht
14:08:39 XanClic: Und am Ende des Tages muss man sich eigentlich auch nicht rückwärts umbiegen, nur, um eine Assertion besser zu machen
14:11:35 kevin: Ist nicht unbedingt nur die Assertion
14:12:20 kevin: Das parent_drain in bdrv_attach_child_common() (das, wo es nur child gibt, aber child->bs == NULL ist) fliegt mir auch um die Ohren
14:12:23 XanClic: Ist jetzt auch nicht so, als wär Drain-Code jemals wirklich schön gewesen
14:12:49 kevin: Ich hatte da einfach eine Assertion gelöscht und hatte dann Ruhe, aber Vladimir fand, dass die nicht in den Patch gehört ;-)
14:13:10 kevin: Und Drain-Code in Coroutinen laufen zu lassen ist vielleicht wirklich keine so gute Idee
14:13:41 kevin: Eigentlich ist es ja schon falsch, bdrv_attach_child_common() in einer Coroutine aufzurufen, aber das zu fixen würde die Serie endgültig sprengen...
14:15:23 XanClic: Weiß nicht, wenns nicht pollt
14:15:31 XanClic: Und nicht yieldet
14:15:57 kevin: Ja, ich hab auf Anhieb nichts gefunden, was jetzt direkt eine Katastrophe wäre
14:16:28 kevin: Insofern kann man das aufschieben, bis man bdrv_graph_wrlock() machen will, weil das pollt und dann muss man es fixen
14:16:49 XanClic: Na, jetzt alles auf einmal zu fixen ist aber auch ganz schön ambitioniert ;)
14:17:01 kevin: Ist Multiqueue nicht quasi alles auf einmal fixen? ;-)
14:17:21 XanClic: Wenn man nicht alles auf einmal kaputtmachen will, vermutlich schon, ja…
14:17:46 kevin: Hm, alles auf einmal kaputtmachen klingt verlockend
14:18:22 XanClic: Deshalb hab ich mich auch vorhin gefragt, warum Exports eigentlich keine Nodes sind
14:21:08 kevin: In qsd-rs oder QEMU?
14:21:33 XanClic: Warum nicht beides, aber primär jetzt in qsd-rs
14:21:56 XanClic: Eigentlich ist der Unterschied da nur, dass Exports halt gepollt werden müssen, aber wenn ich jetzt einen mirror-Node hab, dann muss ich den ja auch pollen
14:22:03 kevin: Du meinst, ich muss mir doch mal den Code anschauen? ;-)
14:22:13 XanClic: Hm… Lieber nicht *g*
14:22:27 XanClic: Aber er ist natürlich vorhanden
14:22:42 kevin: Naja, also in QEMU meinst du mit Node ein BDS, oder? Da müsste ja ein BlockDriver dranhängen. Das haben Exports nicht so, oder?
14:22:49 XanClic: Doch, klar
14:23:05 kevin: Kommen die Requests da nicht irgendwo von extern?
14:23:22 XanClic: Was heißt extern
14:23:59 XanClic: Also, sagen wir mal, es gibt im Export-Objekt halt eine Future, die gepollt werden möchte, und das ist im Prinzip der Code des Exports
14:24:31 XanClic: Aber ich kann ja einfach jedem Node so eine optionale Future geben, und sagen, wenn ein Node das hat, dann ist das halt ein pollable Node
14:24:31 kevin: Ja. Und wo steckt da jetzt der BlockDriver?
14:24:47 XanClic: Der Teil ist halt kaputt
14:25:12 XanClic: Der BlockDriver ist im Prinzip ein Nachrichtenchannel, da hat der Monitor ein Sender-Handle, und kann Requests abschicken
14:25:18 XanClic: Aber das sind ja auch nur RPCs, im Prinzip
14:26:14 kevin: Äh, ich glaube, das ist irgendwie doch sehr anders als QEMU, aber ein BlockDriver ist doch auf jeden Fall der Empfänger von Requests, nicht der Absender?
14:26:33 XanClic: Eben, der Monitor hat den Sender-Teil, und der Export hat den Receiver-Teil
14:27:25 kevin: Monitor im Sinn von QMP? Dann hast du mich jetzt erfolgreich endgültig verwirrt.
14:27:40 XanClic: Schon
14:27:57 XanClic: Die Requests sind nur Quiesce, Stop, und so
14:28:01 kevin: Wieso sollen die Requests für den Export von QMP kommen statt von einem NBD-Socket, zum Beispiel?
14:28:11 XanClic: Der NBD-Socket lebt ja nur im Exportcode
14:28:40 kevin: Ah... Dann redest du von einer anderen Art von Requests als ich dachte
14:29:06 kevin: Das sind dann mehr die Art von Operationen, die es auch in BdrvChildClass gibt
14:29:30 XanClic: Na ja, es sind halt Operationen, die nötig werden, wenn irgendwas seine eigene Loop hat
14:30:02 kevin: Also dass Exports und BDS das gleiche Ding sind macht für mich keinen Sinn, aber dass beide ein Trait Node implementieren, könnte unter Umständen schon sinnvoll sein
14:30:32 kevin: Im Prinzip sind Exports in QEMU ja schon Teil vom Graph, nur nennen wir sie meistens nicht Node, sondern beziehen das nur auf BDS
14:30:40 kevin: Mehr ein Problem der Terminologie vielleicht
14:32:44 XanClic: Ich hätte einfach ganz gern, dass Nodes auch eigene Loops haben können, wie zum Beispiel ein mirror/copy-Node, und dann muss das auch gepollt und gequiescet werden können
14:33:16 XanClic: Und wenn Nodes das erlauben, dann kann man auch einfach alle Exports direkt zu Nodes machen, die nur kein I/O können
14:33:24 XanClic: Weil I/O bei qsd-rs ja sowieso nicht über die Nodes läuft
14:37:41 kevin: Hm, was ist eigentlich das aktuelle Repo für qsd-rs?
14:37:51 kevin: Ich glaube, ich bin auf was veraltetem
14:39:18 xq: Invalid read at addr 0x10008200, size 1, region '(null)', reason: rejected :(
14:39:54 kevin: Hätte das ein virtio-Request sein sollen?
14:40:44 XanClic: was neueres als https://gitlab.com/hreitz/qsd-rs gäbs jetzt nicht
14:43:07 xq: kevin: yep
14:43:15 xq: size 1 ist aber definitiv falsch :(
14:43:25 xq: regs.device.gpu.num_scanouts < 1
14:43:36 kevin: XanClic: Das ist schon mal über zwei Monate neuer als was ich hatte
14:44:30 kevin: Oh, virtio-gpu? Damit hab ich noch nie was gemacht
14:45:20 xq: jo, gpu
14:45:26 xq: tat auch mal (tm)
14:45:31 xq: hab jetzt aber dinge umgeräumt
14:45:41 xq: jetzt scheint der compiler zu meinen, dass er statt u32 u8 lesen soll
14:47:02 kevin: XanClic: Also wenn ich mir Node so anschaue, dann würde es mich überraschen, wenn du für alle von den Feldern eine vernünftige Verwendung für Exports hättest
14:50:50 XanClic: Hab ich nicht, aber besser überflüssige Felder als unnötige Spezialisierung
14:51:41 XanClic: Ich muss mal sehen, wie es mir mirror aussieht, und dann ergibt sich entweder was oder nix :)
15:17:41 xq: https://bpa.st/LNYA
15:17:49 xq: bin ja aber schon ein bisschen stolz auf meine kernel panics :D
15:34:01 kevin: Jo, sehen recht nützlich aus
15:34:34 xq: leider heißt die panic auch, dass mein OS nicht hoch kommt :(
15:35:25 kevin: Andererseits, wenn es hoch käme, hättest du keinen Grund mehr, stolz auf die Panics zu sein
15:35:58 xq: hihi
15:36:08 xq: irgendwann gibts die auch als Gra-Fisch
17:15:23 xq: habs gefixed
17:15:30 xq: jetzt hab ich 1 os mit 1 langsamer ausführung :D
18:07:37 kevin: Schade um den schönen Panic ;-)
18:11:38 xq: ich kann dir ja nen knopf einbauen
18:11:46 xq: drücken sie Ctrl+Alt+Kevin für Kernel Panic
18:11:59 kevin: Oh ja, das klingt gut
21:37:25 Paddy joined the channel