Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1724433 > unrolled thread
| Started by | Alexander Steffen <Alexander.Steffen@infineon.com> |
|---|---|
| First post | 2017-08-31 19:20 +0200 |
| Last post | 2017-09-08 12:10 +0200 |
| Articles | 6 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH RESEND v2 0/3] tpm2-cmd: Improve self test execution Alexander Steffen <Alexander.Steffen@infineon.com> - 2017-08-31 19:20 +0200
[PATCH RESEND v2 2/3] tpm2-cmd: Use dynamic delay to wait for self test result Alexander Steffen <Alexander.Steffen@infineon.com> - 2017-08-31 19:20 +0200
[PATCH RESEND v2 1/3] tpm2-cmd: Trigger only missing self tests Alexander Steffen <Alexander.Steffen@infineon.com> - 2017-08-31 19:20 +0200
Re: [PATCH RESEND v2 0/3] tpm2-cmd: Improve self test execution Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> - 2017-09-02 12:20 +0200
Re: [PATCH RESEND v2 0/3] tpm2-cmd: Improve self test execution Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> - 2017-09-06 15:00 +0200
Re: [PATCH RESEND v2 0/3] tpm2-cmd: Improve self test execution Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> - 2017-09-08 12:10 +0200
| From | Alexander Steffen <Alexander.Steffen@infineon.com> |
|---|---|
| Date | 2017-08-31 19:20 +0200 |
| Subject | [PATCH RESEND v2 0/3] tpm2-cmd: Improve self test execution |
| Message-ID | <ukBih-8so-5@gated-at.bofh.it> |
The self test logic for TPM 2.0 was probably based on the implementation for TPM 1.2, but did not correctly take into account some TPM 2.0 specifics. This patch series fixes those issues. v2: - Moved implementation description from comment to commit message. Alexander Steffen (3): tpm2-cmd: Trigger only missing self tests tpm2-cmd: Use dynamic delay to wait for self test result tpm2-cmd: React correctly to RC_TESTING from self tests drivers/char/tpm/tpm2-cmd.c | 69 +++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 49 deletions(-) -- 2.7.4
[toc] | [next] | [standalone]
| From | Alexander Steffen <Alexander.Steffen@infineon.com> |
|---|---|
| Date | 2017-08-31 19:20 +0200 |
| Subject | [PATCH RESEND v2 2/3] tpm2-cmd: Use dynamic delay to wait for self test result |
| Message-ID | <ukBii-8so-21@gated-at.bofh.it> |
| In reply to | #1724433 |
In order to avoid delaying the code longer than necessary while still
giving the TPM enough time to execute the self tests asynchronously, start
with a small delay between two polls and increase it each round.
Signed-off-by: Alexander Steffen <Alexander.Steffen@infineon.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
drivers/char/tpm/tpm2-cmd.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 8e940a5..2178437 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -877,20 +877,17 @@ static int tpm2_start_selftest(struct tpm_chip *chip, bool full)
static int tpm2_do_selftest(struct tpm_chip *chip)
{
int rc;
- unsigned int loops;
- unsigned int delay_msec = 100;
- unsigned long duration;
- int i;
-
- duration = tpm2_calc_ordinal_duration(chip, TPM2_CC_SELF_TEST);
+ unsigned int delay_msec = 20;
+ long duration;
- loops = jiffies_to_msecs(duration) / delay_msec;
+ duration = jiffies_to_msecs(
+ tpm2_calc_ordinal_duration(chip, TPM2_CC_SELF_TEST));
rc = tpm2_start_selftest(chip, false);
if (rc)
return rc;
- for (i = 0; i < loops; i++) {
+ while (duration > 0) {
/* Attempt to read a PCR value */
rc = tpm2_pcr_read(chip, 0, NULL);
if (rc < 0)
@@ -900,6 +897,10 @@ static int tpm2_do_selftest(struct tpm_chip *chip)
break;
tpm_msleep(delay_msec);
+ duration -= delay_msec;
+
+ /* wait longer the next round */
+ delay_msec *= 2;
}
return rc;
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Alexander Steffen <Alexander.Steffen@infineon.com> |
|---|---|
| Date | 2017-08-31 19:20 +0200 |
| Subject | [PATCH RESEND v2 1/3] tpm2-cmd: Trigger only missing self tests |
| Message-ID | <ukBii-8so-23@gated-at.bofh.it> |
| In reply to | #1724433 |
tpm2_do_selftest is only used during initialization of the TPM to ensure that the device functions correctly. Therefore, it is sufficient to request only missing self tests (parameter full_test=0), not a reexecution of all self tests, as was done before. This allows for a faster execution of this command. Signed-off-by: Alexander Steffen <Alexander.Steffen@infineon.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> --- drivers/char/tpm/tpm2-cmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c index e1a41b7..8e940a5 100644 --- a/drivers/char/tpm/tpm2-cmd.c +++ b/drivers/char/tpm/tpm2-cmd.c @@ -865,7 +865,7 @@ static int tpm2_start_selftest(struct tpm_chip *chip, bool full) } /** - * tpm2_do_selftest() - run a full self test + * tpm2_do_selftest() - ensure that all self tests have passed * * @chip: TPM chip to use * @@ -886,7 +886,7 @@ static int tpm2_do_selftest(struct tpm_chip *chip) loops = jiffies_to_msecs(duration) / delay_msec; - rc = tpm2_start_selftest(chip, true); + rc = tpm2_start_selftest(chip, false); if (rc) return rc; -- 2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> |
|---|---|
| Date | 2017-09-02 12:20 +0200 |
| Message-ID | <uldGV-1HA-7@gated-at.bofh.it> |
| In reply to | #1724433 |
On Thu, Aug 31, 2017 at 07:18:55PM +0200, Alexander Steffen wrote: > The self test logic for TPM 2.0 was probably based on the implementation > for TPM 1.2, but did not correctly take into account some TPM 2.0 specifics. > This patch series fixes those issues. > > v2: > - Moved implementation description from comment to commit message. > > Alexander Steffen (3): > tpm2-cmd: Trigger only missing self tests > tpm2-cmd: Use dynamic delay to wait for self test result > tpm2-cmd: React correctly to RC_TESTING from self tests > > drivers/char/tpm/tpm2-cmd.c | 69 +++++++++++++-------------------------------- > 1 file changed, 20 insertions(+), 49 deletions(-) > > -- > 2.7.4 > Great, just have to test these. /Jarkko
[toc] | [prev] | [next] | [standalone]
| From | Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> |
|---|---|
| Date | 2017-09-06 15:00 +0200 |
| Message-ID | <umI5Y-1TZ-21@gated-at.bofh.it> |
| In reply to | #1724433 |
On Thu, Aug 31, 2017 at 07:18:55PM +0200, Alexander Steffen wrote: > The self test logic for TPM 2.0 was probably based on the implementation > for TPM 1.2, but did not correctly take into account some TPM 2.0 specifics. > This patch series fixes those issues. > > v2: > - Moved implementation description from comment to commit message. > > Alexander Steffen (3): > tpm2-cmd: Trigger only missing self tests > tpm2-cmd: Use dynamic delay to wait for self test result > tpm2-cmd: React correctly to RC_TESTING from self tests > > drivers/char/tpm/tpm2-cmd.c | 69 +++++++++++++-------------------------------- > 1 file changed, 20 insertions(+), 49 deletions(-) > > -- > 2.7.4 > Applied to my master for convenient testing. /Jarkko
[toc] | [prev] | [next] | [standalone]
| From | Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> |
|---|---|
| Date | 2017-09-08 12:10 +0200 |
| Message-ID | <unooy-5ko-13@gated-at.bofh.it> |
| In reply to | #1727421 |
On Wed, Sep 06, 2017 at 03:57:40PM +0300, Jarkko Sakkinen wrote: > On Thu, Aug 31, 2017 at 07:18:55PM +0200, Alexander Steffen wrote: > > The self test logic for TPM 2.0 was probably based on the implementation > > for TPM 1.2, but did not correctly take into account some TPM 2.0 specifics. > > This patch series fixes those issues. > > > > v2: > > - Moved implementation description from comment to commit message. > > > > Alexander Steffen (3): > > tpm2-cmd: Trigger only missing self tests > > tpm2-cmd: Use dynamic delay to wait for self test result > > tpm2-cmd: React correctly to RC_TESTING from self tests > > > > drivers/char/tpm/tpm2-cmd.c | 69 +++++++++++++-------------------------------- > > 1 file changed, 20 insertions(+), 49 deletions(-) > > > > -- > > 2.7.4 > > > > Applied to my master for convenient testing. > > /Jarkko Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> /Jarkko
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web