[PATCH v10 0/2] tpm: add mssim backend

James Bottomley posted 2 patches 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240430190855.2811-1-James.Bottomley@HansenPartnership.com
Maintainers: Stefan Berger <stefanb@linux.vnet.ibm.com>, James Bottomley <jejb@linux.ibm.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
MAINTAINERS                    |   6 +
backends/tpm/Kconfig           |   5 +
backends/tpm/meson.build       |   1 +
backends/tpm/tpm_emulator.c    |  25 ++-
backends/tpm/tpm_mssim.c       | 319 +++++++++++++++++++++++++++++++++
backends/tpm/tpm_mssim.h       |  44 +++++
backends/tpm/tpm_passthrough.c |  23 +--
docs/specs/tpm.rst             |  39 ++++
include/sysemu/tpm.h           |   5 +-
include/sysemu/tpm_backend.h   |   2 +-
qapi/tpm.json                  |  50 +++++-
system/tpm-hmp-cmds.c          |   9 +
system/tpm.c                   |  91 ++++------
system/vl.c                    |  19 +-
14 files changed, 530 insertions(+), 108 deletions(-)
create mode 100644 backends/tpm/tpm_mssim.c
create mode 100644 backends/tpm/tpm_mssim.h
[PATCH v10 0/2] tpm: add mssim backend
Posted by James Bottomley 2 weeks ago
The requested feedback was to convert the tpmdev handler to being json
based, which requires rethreading all the backends.  The good news is
this reduced quite a bit of code (especially as I converted it to
error_fatal handling as well, which removes the return status
threading).  The bad news is I can't test any of the conversions.
swtpm still isn't building on opensuse and, apparently, passthrough
doesn't like my native TPM because it doesn't allow cancellation.

v3 pulls out more unneeded code in the visitor conversion, makes
migration work on external state preservation of the simulator and
adds documentation

v4 puts back the wrapper options (but doesn't add any for mssim since
it post dates the necessity)

v5 rebases to the latest master branch and adjusts for removed use_FOO ptrs

v5 updates help to exit zero; does some checkpatch tidying

v7 merge review feedback and add acks.

v8 adds better error handling, more code tidies and adds command
   socket disconnection/reconnection (instead of trying to keep the
   socket open the whole time).  This adds overhead, but makes
   debugging guest kernel TPM issues much easier.

v9 Fix merge conflict with optarg->optstr conversion

v10 Fix more merge conflicts and update API versions

James

---

James Bottomley (2):
  tpm: convert tpmdev options processing to new visitor format
  tpm: add backend for mssim

 MAINTAINERS                    |   6 +
 backends/tpm/Kconfig           |   5 +
 backends/tpm/meson.build       |   1 +
 backends/tpm/tpm_emulator.c    |  25 ++-
 backends/tpm/tpm_mssim.c       | 319 +++++++++++++++++++++++++++++++++
 backends/tpm/tpm_mssim.h       |  44 +++++
 backends/tpm/tpm_passthrough.c |  23 +--
 docs/specs/tpm.rst             |  39 ++++
 include/sysemu/tpm.h           |   5 +-
 include/sysemu/tpm_backend.h   |   2 +-
 qapi/tpm.json                  |  50 +++++-
 system/tpm-hmp-cmds.c          |   9 +
 system/tpm.c                   |  91 ++++------
 system/vl.c                    |  19 +-
 14 files changed, 530 insertions(+), 108 deletions(-)
 create mode 100644 backends/tpm/tpm_mssim.c
 create mode 100644 backends/tpm/tpm_mssim.h

-- 
2.35.3
Re: [PATCH v10 0/2] tpm: add mssim backend
Posted by Stefan Berger 2 weeks ago

On 4/30/24 15:08, James Bottomley wrote:
> The requested feedback was to convert the tpmdev handler to being json
> based, which requires rethreading all the backends.  The good news is
> this reduced quite a bit of code (especially as I converted it to
> error_fatal handling as well, which removes the return status
> threading).  The bad news is I can't test any of the conversions.
> swtpm still isn't building on opensuse and, apparently, passthrough

It does build and packages are available:
- 
https://app.travis-ci.com/github/stefanberger/swtpm-distro-compile/jobs/621150390
- https://software.opensuse.org/package/swtpm

> doesn't like my native TPM because it doesn't allow cancellation.
> 
> v3 pulls out more unneeded code in the visitor conversion, makes
> migration work on external state preservation of the simulator and
> adds documentation
> 
> v4 puts back the wrapper options (but doesn't add any for mssim since
> it post dates the necessity)
> 
> v5 rebases to the latest master branch and adjusts for removed use_FOO ptrs
> 
> v5 updates help to exit zero; does some checkpatch tidying
> 
> v7 merge review feedback and add acks.
> 
> v8 adds better error handling, more code tidies and adds command
>     socket disconnection/reconnection (instead of trying to keep the
>     socket open the whole time).  This adds overhead, but makes
>     debugging guest kernel TPM issues much easier.
> 
> v9 Fix merge conflict with optarg->optstr conversion
> 
> v10 Fix more merge conflicts and update API versions
> 
> James
> 
> ---
> 
> James Bottomley (2):
>    tpm: convert tpmdev options processing to new visitor format
>    tpm: add backend for mssim
> 
>   MAINTAINERS                    |   6 +
>   backends/tpm/Kconfig           |   5 +
>   backends/tpm/meson.build       |   1 +
>   backends/tpm/tpm_emulator.c    |  25 ++-
>   backends/tpm/tpm_mssim.c       | 319 +++++++++++++++++++++++++++++++++
>   backends/tpm/tpm_mssim.h       |  44 +++++
>   backends/tpm/tpm_passthrough.c |  23 +--
>   docs/specs/tpm.rst             |  39 ++++
>   include/sysemu/tpm.h           |   5 +-
>   include/sysemu/tpm_backend.h   |   2 +-
>   qapi/tpm.json                  |  50 +++++-
>   system/tpm-hmp-cmds.c          |   9 +
>   system/tpm.c                   |  91 ++++------
>   system/vl.c                    |  19 +-
>   14 files changed, 530 insertions(+), 108 deletions(-)
>   create mode 100644 backends/tpm/tpm_mssim.c
>   create mode 100644 backends/tpm/tpm_mssim.h
>