qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Corey Bryant <coreyb@linux.vnet.ibm.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	Kent E Yoder <yoder1@us.ibm.com>,
	Stefan Berger <stefanb@linux.vnet.ibm.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	Michael Roth <mdroth@linux.vnet.ibm.com>,
	Joel Schopp <jschopp@linux.vnet.ibm.com>,
	Kenneth Goldman <kgoldman@us.ibm.com>
Subject: Re: [Qemu-devel] vNVRAM / blobstore design
Date: Wed, 27 Mar 2013 11:17:54 -0400	[thread overview]
Message-ID: <51530DA2.2030409@linux.vnet.ibm.com> (raw)
In-Reply-To: <5150CDA8.3020300@linux.vnet.ibm.com>



On 03/25/2013 06:20 PM, Stefan Berger wrote:
> On 03/25/2013 06:05 PM, Anthony Liguori wrote:
>> Stefan Berger <stefanb@linux.vnet.ibm.com> writes:
>>
>>> [argh, just posted this to qemu-trivial -- it's not trivial]
>>>
>>>
>>> Hello!
>>>
>>> I am posting this message to revive the previous discussions about the
>>> design of vNVRAM / blobstore cc'ing (at least) those that participated
>>> in this discussion 'back then'.
>>>
>>> The first goal of the implementation is to provide an vNVRAM storage for
>>> a software implementation of a TPM to store its different blobs into.
>>> Some of the data that the TPM writes into persistent memory needs to
>>> survive a power down / power up cycle of a virtual machine, therefore
>>> this type of persistent storage is needed. For the vNVRAM not to become
>>> a road-block for VM migration, we would make use of block device
>>> migration and layer the vNVRAM on top of the block device, therefore
>>> using virtual machine images for storing the vNVRAM data.
>>>
>>> Besides the TPM blobs the vNVRAM should of course also be able able to
>>> accommodate other use cases where persistent data is stored into
>>> NVRAM,
>> Well let's focus more on the "blob store".  What are the semantics of
>> this?  Is there a max number of blobs?  Are the sizes fixed or variable?
>> How often are new blobs added/removed?

The max number of blobs and frequency of usage depends on the usage 
scenario and NVRAM size.  But that's probably obvious.

I think we should focus on worst case scenarios where NVRAM is filled up 
and used frequently.

One example is that an application can use TSS APIs to define, undefine, 
read, and write to the TPM's NVRAM storage.  (The TPM owner password is 
required to define NVRAM data.)  An application could potentially fill 
up NVRAM and frequently store, change, retrieve data in various places 
within NVRAM.  And the data could have various sizes.

For an example of total NVRAM size, Infineon's TPM has 16K of NVRAM.

-- 
Regards,
Corey Bryant

>
> In case of TPM 1.2 there are 3 blobs that can be written at different
> times for different reasons.
>
> Examples: As with a real-world TPM users loading an owner-evict key into
> the TPM will cause the TPM to write that owner-evict key into is own
> NVRAM. This key survives a power-off of the machine. Further, the TPM
> models its own NVRAM slots. Someone writing into this type of memory
> will cause data to be written into the NVRAM. There are other commands
> that the TPM offers that will cause data to be written into NVRAM which
> users can invoke at any time.
>
> The sizes of the NVRAM blobs of the TPM at least vary in size but I
> handle this in the TPM emulation to pad them to fixed size. Depending on
> how many such owner-evict keys are loaded into the TPM its permanent
> state blob size may vary. Other devices may act differently.
>
> We have a-priori knowledge about  the 3 different types of blobs the TPM
> device produces. They are 'registered' once at the beginning (see API)
> and are not 'removed' as such.
>
> Regards,
>      Stefan
>

  reply	other threads:[~2013-03-27 15:20 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-25 21:39 [Qemu-devel] vNVRAM / blobstore design Stefan Berger
2013-03-25 22:05 ` Anthony Liguori
2013-03-25 22:20   ` Stefan Berger
2013-03-27 15:17     ` Corey Bryant [this message]
2013-03-27 15:20       ` Corey Bryant
2013-03-27 15:30         ` Michael S. Tsirkin
2013-03-27 16:07           ` mdroth
2013-03-27 15:43         ` Kenneth Goldman
2013-03-27 15:53           ` Michael S. Tsirkin
2013-03-27 16:12             ` Joel Schopp
2013-03-27 16:46               ` Stefan Berger
2013-03-27 17:14                 ` Anthony Liguori
2013-03-27 17:27                   ` Stefan Berger
2013-03-27 18:27                     ` Anthony Liguori
2013-03-27 19:12                       ` Stefan Berger
2013-03-28 16:11                         ` Stefan Berger
2013-03-28 16:31                           ` Michael S. Tsirkin
2013-03-28 17:02                             ` Stefan Berger
2013-03-28 17:27                           ` Anthony Liguori
2013-03-28 17:36                             ` Stefan Berger
2013-03-28 17:39                             ` Michael S. Tsirkin
2013-03-29 13:55                               ` Stefan Berger
2013-03-29 15:12                                 ` Anthony Liguori
2013-03-29 17:33                           ` Kenneth Goldman
2013-03-31  8:17                             ` Michael S. Tsirkin
2013-03-31 20:48                               ` Kenneth Goldman
2013-04-02 12:06                                 ` Michael S. Tsirkin
2013-04-02 13:24                                   ` Kenneth Goldman
2013-04-02 13:37                                     ` Michael S. Tsirkin
2013-03-27 18:04                   ` Michael S. Tsirkin
2013-03-27 16:20             ` Kenneth Goldman

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=51530DA2.2030409@linux.vnet.ibm.com \
    --to=coreyb@linux.vnet.ibm.com \
    --cc=anthony@codemonkey.ws \
    --cc=jschopp@linux.vnet.ibm.com \
    --cc=kgoldman@us.ibm.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanb@linux.vnet.ibm.com \
    --cc=stefanha@gmail.com \
    --cc=yoder1@us.ibm.com \
    /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).