Thread (27 messages) 27 messages, 6 authors, 2017-09-15

[PATCH v2 3/4] tpm: reduce tpm_msleep() time in get_burstcount()

From: Nayna Jain <hidden>
Date: 2017-09-15 12:41:06
Also in: lkml


On 09/13/2017 06:30 AM, Jarkko Sakkinen wrote:
On Wed, Sep 06, 2017 at 08:56:38AM -0400, Nayna Jain wrote:
quoted
Currently, get_burstcount() function sleeps for 5msec in a loop
before retrying for next query to burstcount. However, if it takes
lesser time for TPM to return, this 5 msec delay is longer
than necessary.

This patch replaces the tpm_msleep time from 5msec to 1msec.

After this change, performance on a TPM 1.2 with an 8 byte
burstcount for 1000 extends improved from ~10sec to ~9sec.

Signed-off-by: Nayna Jain <redacted>
Acked-by: Mimi Zohar <redacted>
---
  drivers/char/tpm/tpm_tis_core.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index d1eab29cb447..d710bbc4608b 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -169,7 +169,7 @@ static int get_burstcount(struct tpm_chip *chip)
  		burstcnt = (value >> 8) & 0xFFFF;
  		if (burstcnt)
  			return burstcnt;
-		tpm_msleep(TPM_TIMEOUT);
+		tpm_msleep(1);
  	} while (time_before(jiffies, stop));
  	return -EBUSY;
  }
-- 
2.13.3
How did you pick 1 ms delay? Should there be a constant defining it?
As per ddwg input, the command may not take more than a few
microseconds. The minimum tpm_msleep() value is 1 msec, so we really
don't have a choice. ?(We're working on a patch set to lower this
value even more.)

Thanks & Regards,
     - Nayna
/Jarkko
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help