tpm: reduce poll sleep time in tpm_transmit()
authorNayna Jain <nayna@linux.vnet.ibm.com>
Mon, 7 May 2018 16:07:32 +0000 (12:07 -0400)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 14 May 2018 10:48:29 +0000 (13:48 +0300)
commit59f5a6b07f6434efac0057dc2f303a96b871811b
tree485e5f0bf51df73ce6778bf713d8b8fb2762a5d9
parent33bafe90824bc9584fad535410bebc1fbe382fdf
tpm: reduce poll sleep time in tpm_transmit()

tpm_try_transmit currently checks TPM status every 5 msecs between
send and recv. It does so in a loop for the maximum timeout as defined
in the TPM Interface Specification. However, the TPM may return before
5 msecs. Thus the polling interval for each iteration can be reduced,
which improves overall performance. This patch changes the polling sleep
time from 5 msecs to 1 msec.

Additionally, this patch renames TPM_POLL_SLEEP to TPM_TIMEOUT_POLL and
moves it to tpm.h as an enum value.

After this change, performance on a system[1] with a TPM 1.2 with an 8 byte
burstcount for 1000 extends improved from ~14 sec to ~10.7 sec.

[1] All tests are performed on an x86 based, locked down, single purpose
closed system. It has Infineon TPM 1.2 using LPC Bus.

Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
Acked-by: Jay Freyensee <why2jjj.linux@gmail.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/tpm-interface.c
drivers/char/tpm/tpm.h
drivers/char/tpm/tpm_tis_core.c