From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Jarkko Sakkinen" <jarkko@kernel.org>, <linux-integrity@vger.kernel.org>
Cc: <James.Bottomley@HansenPartnership.com>,
<roberto.sassu@huawei.com>, <mapengyu@gmail.com>,
"Peter Huewe" <peterhuewe@gmx.de>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"open list" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/4] tpm: lazy flush for the session null key
Date: Sun, 15 Sep 2024 21:12:49 +0300 [thread overview]
Message-ID: <D4727YOJY8KZ.L6RKMRBKRCSN@kernel.org> (raw)
In-Reply-To: <20240915180448.2030115-1-jarkko@kernel.org>
On Sun Sep 15, 2024 at 9:04 PM EEST, Jarkko Sakkinen wrote:
> There is no load and flush the null key for every transaction. It only
> needs to be flushed when user space accesses TPM. This postpones the
> flush up to that point.
>
> The goal is to take the first step addressing [1]. Other performance
> improvements are needed too but this is the most obvious one and
> easiest to address.
>
> [1] https://bugzilla.kernel.org/show_bug.cgi?id=219229
>
> Jarkko Sakkinen (4):
> tpm: remove file header documentation from tpm2-sessions.c
> tpm: address tpm2_create_null_primary() return value
> tpm: address tpm2_create_primary() failure
> tpm: flush the session null key only when required
>
> drivers/char/tpm/tpm-chip.c | 13 ++++
> drivers/char/tpm/tpm-dev-common.c | 7 ++
> drivers/char/tpm/tpm-interface.c | 9 ++-
> drivers/char/tpm/tpm2-cmd.c | 3 +
> drivers/char/tpm/tpm2-sessions.c | 115 ++++++++++--------------------
> include/linux/tpm.h | 2 +
> 6 files changed, 68 insertions(+), 81 deletions(-)
I did not take any benchmarks yet but I did run this through
run-tests.sh in [1] to make sure that it does not break anything.
Looking at pseude-code of ContextSave from [2] fixing this is
orthogonal from any possible context gap issues as null key
is just plain transient object.
I would fix the obvious first and then look what can be done
to sessions (e.g. global LRU tracking of sessions or similar
approach). I don't expect over the top performance improvement
with this patch set.
[1] https://codeberg.org/jarkko/linux-tpmdd-test
[2] https://trustedcomputinggroup.org/wp-content/uploads/TPM-2.0-1.83-Part-3-Commands-Code.pdf
BR, Jarkko
next prev parent reply other threads:[~2024-09-15 18:12 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-15 18:04 [PATCH 0/4] tpm: lazy flush for the session null key Jarkko Sakkinen
2024-09-15 18:04 ` [PATCH 1/4] tpm: remove file header documentation from tpm2-sessions.c Jarkko Sakkinen
2024-09-15 18:04 ` [PATCH 2/4] tpm: address tpm2_create_null_primary() return value Jarkko Sakkinen
2024-09-15 18:04 ` [PATCH 3/4] tpm: address tpm2_create_primary() failure Jarkko Sakkinen
2024-09-15 18:04 ` [PATCH 4/4] tpm: flush the session null key only when required Jarkko Sakkinen
2024-09-15 18:12 ` Jarkko Sakkinen [this message]
[not found] ` <CALSz7m0ehXM+dU3z0xYPLQkHbyfyMjoCOoMLdBgRcUu1pnT_ww@mail.gmail.com>
2024-09-16 2:33 ` [PATCH 0/4] tpm: lazy flush for the session null key Pengyu Ma
2024-09-16 5:16 ` Jarkko Sakkinen
2024-09-16 5:53 ` Pengyu Ma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D4727YOJY8KZ.L6RKMRBKRCSN@kernel.org \
--to=jarkko@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=jgg@ziepe.ca \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mapengyu@gmail.com \
--cc=peterhuewe@gmx.de \
--cc=roberto.sassu@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox