On 9/13/21 8:16 AM, Nick Chevsky wrote: > Launch swtpm(8) with the --terminate switch, which guarantees that > the daemon will shut itself down when QEMU dies (current behavior). > We had so far been getting this "for free" (i.e. without --terminate) > due to a defect in upstream's connection handling logic [1], on which > libvirt should not rely since it will eventually be fixed. Adding > --terminate preserves and guarantees the current behavior. > > [1] https://github.com/stefanberger/swtpm/pull/509 > > Signed-off-by: Nick Chevsky <nchevsky@xxxxxxxxx> > --- > src/qemu/qemu_tpm.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c > index 477a26dc69..100481503c 100644 > --- a/src/qemu/qemu_tpm.c > +++ b/src/qemu/qemu_tpm.c > @@ -576,6 +576,8 @@ qemuTPMEmulatorBuildCommand(virDomainTPMDef *tpm, > virCommandAddArg(cmd, "--log"); > virCommandAddArgFormat(cmd, "file=%s", tpm->data.emulator.logfile); > > + virCommandAddArg(cmd, "--terminate"); > + > virCommandSetUID(cmd, swtpm_user); > virCommandSetGID(cmd, swtpm_group); > > The patch is correct, but what we already have is qemuExtDevicesStop() being called from qemuProcessStop(). The former will eventually call qemuTPMEmulatorStop() which should kill the swtmp process, shouldn't it? Or this patch is there to kill swtmp earlier, i.e. as soon as it sees HUP on the socket? Michal