[PATCH 1/1] qemu_tpm: Start swtpm(8) daemon with --terminate switch

Michal Prívozník mprivozn at redhat.com
Tue Sep 14 10:43:10 UTC 2021


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 at gmail.com>
> ---
>  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




More information about the libvir-list mailing list