From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Stefan Berger <stefanb@linux.ibm.com>
Cc: linux-integrity@vger.kernel.org,
James Bottomley <James.Bottomley@HansenPartnership.com>,
Peter Huewe <peterhuewe@gmx.de>, Jason Gunthorpe <jgg@ziepe.ca>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jerry Snitselaar <jsnitsel@redhat.com>,
Sumit Garg <sumit.garg@linaro.org>,
Alexey Klimov <aklimov@redhat.com>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] tpm: tpm2-space: Resize session and context buffers dynamically
Date: Fri, 26 Jun 2020 14:50:30 +0300 [thread overview]
Message-ID: <20200626115030.GC5847@linux.intel.com> (raw)
In-Reply-To: <a6444592-234b-d77e-7403-812e19691e72@linux.ibm.com>
On Thu, Jun 25, 2020 at 05:38:03PM -0400, Stefan Berger wrote:
> On 6/25/20 12:38 AM, Jarkko Sakkinen wrote:
> > Re-allocate context and session buffers when needed. Scale them in page
> > increments so that the reallocation is only seldomly required, and thus
> > causes minimal stress to the system. Add a static maximum limit of four
> > pages for buffer sizes.
> >
> > Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
> > Suggested-by: Stefan Berger <stefanb@linux.ibm.com>
> > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> > ---
> > Tested only for compilation.
> > v2: TPM2_SPACE_DEFAULT_BUFFER_SIZE
> > drivers/char/tpm/tpm2-space.c | 87 ++++++++++++++++++++++++-----------
> > include/linux/tpm.h | 6 ++-
> > 2 files changed, 64 insertions(+), 29 deletions(-)
> >
> > diff --git a/drivers/char/tpm/tpm2-space.c b/drivers/char/tpm/tpm2-space.c
> > index 982d341d8837..b8ece01d6afb 100644
> > --- a/drivers/char/tpm/tpm2-space.c
> > +++ b/drivers/char/tpm/tpm2-space.c
> > @@ -15,6 +15,9 @@
> > #include <asm/unaligned.h>
> > #include "tpm.h"
> > +#define TPM2_SPACE_DEFAULT_BUFFER_SIZE PAGE_SIZE
> > +#define TPM2_SPACE_MAX_BUFFER_SIZE (4 * PAGE_SIZE)
> > +
> > enum tpm2_handle_types {
> > TPM2_HT_HMAC_SESSION = 0x02000000,
> > TPM2_HT_POLICY_SESSION = 0x03000000,
> > @@ -557,8 +588,10 @@ int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space,
> > sizeof(space->context_tbl));
> > memcpy(&space->session_tbl, &chip->work_space.session_tbl,
> > sizeof(space->session_tbl));
> > - memcpy(space->context_buf, chip->work_space.context_buf, PAGE_SIZE);
> > - memcpy(space->session_buf, chip->work_space.session_buf, PAGE_SIZE);
> > + memcpy(space->context_buf, chip->work_space.context_buf,
> > + space->context_size);
>
>
> You have to allocate the max size the in tpm_chip_alloc (tpm-chip.c):
>
> chip->work_space.context_buf = kzalloc(TPM2_SPACE_MAX_BUFFER_SIZE,
> GFP_KERNEL);
>
>
> > + memcpy(space->session_buf, chip->work_space.session_buf,
> > + space->session_size);
>
>
> same for this
That is not true. They should allocated as 4 kB in the dynamic scaling
scheme. The idea is to use krealloc() to increase the buffer size.
/Jarkko
prev parent reply other threads:[~2020-06-26 11:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-25 4:38 [PATCH v2] tpm: tpm2-space: Resize session and context buffers dynamically Jarkko Sakkinen
2020-06-25 12:41 ` Stefan Berger
2020-06-25 21:25 ` Jarkko Sakkinen
2020-06-25 21:27 ` Stefan Berger
2020-06-26 11:48 ` Jarkko Sakkinen
2020-06-26 12:16 ` Stefan Berger
2020-07-02 19:54 ` Jarkko Sakkinen
2020-06-25 21:28 ` Jerry Snitselaar
2020-06-26 11:49 ` Jarkko Sakkinen
2020-06-25 21:38 ` Stefan Berger
2020-06-26 11:50 ` Jarkko Sakkinen [this message]
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=20200626115030.GC5847@linux.intel.com \
--to=jarkko.sakkinen@linux.intel.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=aklimov@redhat.com \
--cc=arnd@arndb.de \
--cc=gregkh@linuxfoundation.org \
--cc=jgg@ziepe.ca \
--cc=jsnitsel@redhat.com \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterhuewe@gmx.de \
--cc=stefanb@linux.ibm.com \
--cc=sumit.garg@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.