
Move to kernel version 5.10 using source from the Yocto Project. 1. Add STX patches for kernel 5.10. 2. Support git source for linux-yocto. 3. Add build_srpm from build-tools/default_build_srpm and modified for git repo from yocto 4. Modify std and rt config files. 5. Build python-perf instead of python3-perf for std kernel. python-perf is needed by tuned-2.8.0-5.el7.noarch. 6. Modify rt spec to build out package kernel-rt-tools and kernel-rt-kvm. 7. Add kernel-5.10.30-x86_64-rt.config.tis_extra and kernel-5.10.30-x86_64.config.tis_extra 8. Add a dist field to avoid undesired rebuilds. 9. Ensure -unsigned package is populated Story: 2008921 Partial-Task: 42519 Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Vefa Bicakci <vefa.bicakci@windriver.com> Signed-off-by: Jiping Ma <jiping.ma2@windriver.com> Change-Id: Id1f635302f265826f7ff2860a3bed4b7755b2888
101 lines
3.3 KiB
Diff
101 lines
3.3 KiB
Diff
From 7240ac0b8c98c99adc09a46d577c7dd1e8ca46dd Mon Sep 17 00:00:00 2001
|
||
From: Nayna Jain <nayna@linux.vnet.ibm.com>
|
||
Date: Fri, 10 Nov 2017 17:16:35 -0500
|
||
Subject: [PATCH 08/10] tpm: ignore burstcount to improve tpm_tis send()
|
||
performance
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
The TPM burstcount status indicates the number of bytes that can
|
||
be sent to the TPM without causing bus wait states. Effectively,
|
||
it is the number of empty bytes in the command FIFO.
|
||
|
||
This patch optimizes the tpm_tis_send_data() function by checking
|
||
the burstcount only once. And if the burstcount is valid, it writes
|
||
all the bytes at once, permitting wait state.
|
||
|
||
After this change, performance on a TPM 1.2 with an 8 byte
|
||
burstcount for 1000 extends improved from ~41sec to ~14sec.
|
||
|
||
Suggested-by: Ken Goldman <kgold@linux.vnet.ibm.com> in
|
||
conjunction with the TPM Device Driver work group.
|
||
Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
|
||
Acked-by: Mimi Zohar <zohar@linux.vnet.ibm.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>
|
||
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
|
||
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
||
---
|
||
drivers/char/tpm/tpm_tis_core.c | 43 ++++++++++++---------------------
|
||
1 file changed, 15 insertions(+), 28 deletions(-)
|
||
|
||
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
|
||
index a2e0395cbe61..2c69fde1e4e5 100644
|
||
--- a/drivers/char/tpm/tpm_tis_core.c
|
||
+++ b/drivers/char/tpm/tpm_tis_core.c
|
||
@@ -330,7 +330,6 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
|
||
{
|
||
struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
|
||
int rc, status, burstcnt;
|
||
- size_t count = 0;
|
||
bool itpm = priv->flags & TPM_TIS_ITPM_WORKAROUND;
|
||
|
||
status = tpm_tis_status(chip);
|
||
@@ -343,36 +342,24 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
|
||
goto out_err;
|
||
}
|
||
}
|
||
-
|
||
- while (count < len - 1) {
|
||
- burstcnt = get_burstcount(chip);
|
||
- if (burstcnt < 0) {
|
||
- dev_err(&chip->dev, "Unable to read burstcount\n");
|
||
- rc = burstcnt;
|
||
- goto out_err;
|
||
- }
|
||
- burstcnt = min_t(int, burstcnt, len - count - 1);
|
||
- rc = tpm_tis_write_bytes(priv, TPM_DATA_FIFO(priv->locality),
|
||
- burstcnt, buf + count);
|
||
- if (rc < 0)
|
||
- goto out_err;
|
||
-
|
||
- count += burstcnt;
|
||
-
|
||
- if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
|
||
- &priv->int_queue, false) < 0) {
|
||
- rc = -ETIME;
|
||
- goto out_err;
|
||
- }
|
||
- status = tpm_tis_status(chip);
|
||
- if (!itpm && (status & TPM_STS_DATA_EXPECT) == 0) {
|
||
- rc = -EIO;
|
||
- goto out_err;
|
||
- }
|
||
+ /*
|
||
+ * Get the initial burstcount to ensure TPM is ready to
|
||
+ * accept data, even when waiting for burstcount is disabled.
|
||
+ */
|
||
+ burstcnt = get_burstcount(chip);
|
||
+ if (burstcnt < 0) {
|
||
+ dev_err(&chip->dev, "Unable to read burstcount\n");
|
||
+ rc = burstcnt;
|
||
+ goto out_err;
|
||
}
|
||
|
||
+ rc = tpm_tis_write_bytes(priv, TPM_DATA_FIFO(priv->locality),
|
||
+ len -1, buf);
|
||
+ if (rc < 0)
|
||
+ goto out_err;
|
||
+
|
||
/* write last byte */
|
||
- rc = tpm_tis_write8(priv, TPM_DATA_FIFO(priv->locality), buf[count]);
|
||
+ rc = tpm_tis_write8(priv, TPM_DATA_FIFO(priv->locality), buf[len-1]);
|
||
if (rc < 0)
|
||
goto out_err;
|
||
|
||
--
|
||
2.29.2
|
||
|