On 3/9/22 7:39 PM, Dr. David Alan Gilbert wrote: > * Daniel P. Berrangé (berra...@redhat.com) wrote: >> On Wed, Mar 09, 2022 at 07:27:12PM +0100, Claudio Fontana wrote: >>> >>> One difference I could see looking at the qmp commands issued by libvirt in >>> the "virsh save" case, >>> is "detach:true" in the migration command (which seems to have no effect in >>> qemu), >> >> That is a bug in libvirt - it should not be setting that in QMP. >> >> To quote the QAPI spec for 'migrate' >> >> # @detach: this argument exists only for compatibility reasons and >> # is ignored by QEMU >> >> >>> >>> >>> and maybe more interestingly this stuff about the "fd": >>> >>> >>> 2022-03-09 17:29:34.247+0000: 20390: info : qemuMonitorSend:995 : >>> QEMU_MONITOR_SEND_MSG: mon=0x7faa9003ebf0 >>> msg={"execute":"getfd","arguments":{"fdname":"migrate"},"id":"libvirt-390"}^M >>> fd=34 >>> 2022-03-09 17:29:34.247+0000: 20387: info : qemuMonitorIOWrite:452 : >>> QEMU_MONITOR_IO_WRITE: mon=0x7faa9003ebf0 >>> buf={"execute":"getfd","arguments":{"fdname":"migrate"},"id":"libvirt-390"}^M >>> len=73 ret=73 errno=0 >>> 2022-03-09 17:29:34.247+0000: 20387: info : qemuMonitorIOWrite:457 : >>> QEMU_MONITOR_IO_SEND_FD: mon=0x7faa9003ebf0 fd=34 ret=73 errno=0 >>> 2022-03-09 17:29:34.248+0000: 20387: info : >>> qemuMonitorJSONIOProcessLine:240 : QEMU_MONITOR_RECV_REPLY: >>> mon=0x7faa9003ebf0 reply={"return": {}, "id": "libvirt-390"} >>> 2022-03-09 17:29:34.249+0000: 20390: info : qemuMonitorSend:995 : >>> QEMU_MONITOR_SEND_MSG: mon=0x7faa9003ebf0 >>> msg={"execute":"migrate","arguments":{"detach":true,"blk":false,"inc":false,"uri":"fd:migrate"},"id":"libvirt-391"}^M >>> fd=-1 >>> 2022-03-09 17:29:34.249+0000: 20387: info : qemuMonitorIOWrite:452 : >>> QEMU_MONITOR_IO_WRITE: mon=0x7faa9003ebf0 >>> buf={"execute":"migrate","arguments":{"detach":true,"blk":false,"inc":false,"uri":"fd:migrate"},"id":"libvirt-391"}^M >>> len=113 ret=113 errno=0 >>> >>> >>> in qemu I am currently looking at the code in migration/socket.c >>> vs the code in migration/fd.c , wonder if the difference would >>> stem from there.. >> >> When saving to a file, libvirt passes in a pre-opened FD for >> QEU to use. IIRC this should always be a pipe FD connected to >> libvirt's iohelper program, sometimes indirectly via a compression >> program. > > In which case, what is a simple 'top' showing on the system?
libvirt_iohelper is the top cpu consumer at 60-something%, qemu-system-x86_64 is at 30-40%. C.