tpmdd-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
From: "Peter Huewe" <PeterHuewe@gmx.de>
To: Ken Goldman <kgold@linux.vnet.ibm.com>
Cc: linux-ima-devel@lists.sourceforge.net,
	linux-security-module@vger.kernel.org,
	tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Aw: Re: [tpmdd-devel] [PATCH] tpm: improve tpm_tis send() performance by ignoring burstcount
Date: Wed, 9 Aug 2017 22:43:07 +0200	[thread overview]
Message-ID: <trinity-56ff4f3f-5e08-4aac-9353-a7b88fe91f01-1502311387207@3c-app-gmx-bs76> (raw)
In-Reply-To: <819e3d38-3f16-a32b-1928-c425b763d5f8@linux.vnet.ibm.com>

Hi Ken,

(speaking on behalf of myself here, not my employer :) )
> On Mon, Aug 07, 2017 at 01:52:34PM +0200, Peter Huewe wrote:
>> Imho: NACK from my side.
> After these viewpoints definitive NACK from my side too...


> I responded to the thread comments separately. However, assuming NACK
> is the final response, I have a question.

Nothing is ever final :)

> The problem is the 5 msec sleep between polls of burst count. In the
> case of one TPM with an 8 byte FIFO, a 32 byte transfer incurs 4 of
> these sleeps.

Yes that's bad, especially with current msleep(5) is actually msleep(20).
However, please also keep in mind SPI tpms show a much higher burst count value,  (255)
our I2C TPM SLB9645 even shows something in the range of 1k. :)


> Would another solution be to reduce the burst count poll and sleep to,
> e.g., 100 usec or even 10 usec? This would probably help greatly, but
> till not incur the wait states that triggered the NACK.

Imho the 5ms were an arbitrary chosen value for old old tpms.
Back then also only msleep was available which was msleep(20) anyway.


> My worry is that the scheduler would not be able to context switch that
> fast, and so we wouldn't actually see usec speed polling.
> Can a kernel expert offer an opinion?
If you use sleep it's not guaranteed that you wakeup after exactly xx specified amount of time.
Just that you sleep at least xx amount of time. Otherwise you would have to do delay/busywaiting.

https://www.kernel.org/doc/Documentation/timers/timers-howto.txt


Imho the best option is to
figure out whether any vendor can determine the "FIFO flush time" i.e. how much time does it take to empty the fifo and fillup the burstcount and use this on the lower bound of an usleep range.
I don't think tpms are in the range of < 10 us...

@Ken: Maybe can you check in DDWG?

What we often see/saw during some performance optimization tests is something like 
burstcount 7, burstcount 1, burstcount 7, burstcount 1...
which is the oposite of what you want to achieve.

You'd like to have something like
burstcount 8, burstcount 8, burstcount 8....

Unfortunately TPMS don't report their max burstcount (afaik),
otherwise it would be easy to write a calibration routine for the poll times.


Thanks,
Peter

  reply	other threads:[~2017-08-09 20:43 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-07 11:46 [PATCH] tpm: improve tpm_tis send() performance by ignoring burstcount Nayna Jain
2017-08-07 11:52 ` Peter Huewe
2017-08-07 14:25   ` Nayna
2017-08-08 21:50     ` Jarkko Sakkinen
2017-08-08 19:11   ` Jarkko Sakkinen
2017-08-09 20:23     ` [tpmdd-devel] " Ken Goldman
2017-08-09 20:43       ` Peter Huewe [this message]
2017-08-11 21:54         ` Aw: " Ken Goldman
     [not found]           ` <20170814101046.5hqrkaqmfvl7ugwj@linux.intel.com>
2017-08-16 19:51             ` Ken Goldman
2017-08-09 20:25     ` Ken Goldman
2017-08-09 21:00       ` Aw: " Peter Huewe
2017-08-11 11:14         ` Jarkko Sakkinen
2017-08-11 15:30           ` Mimi Zohar
2017-08-14 10:51             ` Jarkko Sakkinen
2017-08-14 10:56               ` Jarkko Sakkinen
2017-08-14 12:03                 ` Mimi Zohar
2017-08-15  6:08                   ` Jarkko Sakkinen
2017-08-14 12:12                 ` Mimi Zohar
2017-08-15  6:09                   ` Jarkko Sakkinen
2017-08-11 21:32         ` Aw: " Ken Goldman
2017-08-13 23:53           ` msuchanek
2017-08-15 22:02             ` Ken Goldman
2017-08-16 10:24               ` Michal Suchánek
2017-08-11 21:42       ` [Linux-ima-devel] " Ken Goldman
2017-08-08 19:07 ` Jarkko Sakkinen

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=trinity-56ff4f3f-5e08-4aac-9353-a7b88fe91f01-1502311387207@3c-app-gmx-bs76 \
    --to=peterhuewe@gmx.de \
    --cc=kgold@linux.vnet.ibm.com \
    --cc=linux-ima-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=tpmdd-devel@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).