All of lore.kernel.org
 help / color / mirror / Atom feed
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

      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.