Ich komme gerade nicht weiter und hoffe auf einen schlauen Hinweis. Da es immer noch kein Virtualisierungsunterforum gibt, kommt das Ganze eben hier rein
Das Problem ist folgendes, qemu-kvm startet für jede virtuelle CPU einer VM einen eigenen Thread. Leider gibt es aber noch zusätzliche Threads, die sporadisch auftauchen. Wie kann ich jetzt herausfinden, welcher Thread einer virtuellen CPU entspricht? Per QEMU Monitor kommt man zwar an die gewünschten Informationen, aber ich muß das automatisiert auslesen können. Hat jemand eine Idee?
EDIT1:
Ok, ich hab eine Möglichkeit gefunden, die auch ohne libvirt auskommt. Man muß dazu den Gast mit
qemu [...] -qmp tcp:localhost:4444,serverstarten. An diesen Server kann man dann Anfragen schicken. Nach dem Verbindungsaufbau z.B. per
telnet localhost 4444muß man ein
{"execute":"qmp_capabilities"}senden, um die Kommunikation zu starten. Mit
{"execute":"query-cpus"}bekommt man dann eine Datenstruktur, die auch die Thread IDs enthält. Aaaaber, das funktioniert nur auf meinem Testrechner. Auf dem Cluster, wo es wichtig wäre, schmiert die VM beim Verbindungversuch sofort ab Andere Ideen sind also immer noch gefragt.
EDIT2:
So, das Problem scheint gelöst. Mit einem nowait hinter dem Kommando funktioniert es jetzt
qemu [...] -qmp tcp:localhost:4444,server,nowait
Dieser Beitrag wurde von Mr. Floppy bearbeitet: 31. Mai 2012 - 12:54