All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Stefan Berger <stefanb@us.ibm.com>
Cc: "SERBAN, CRISTINA" <cs1731@att.com>,
	"SHIH, CHING C" <cs1815@att.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"hagen.lauer@huawei.com" <hagen.lauer@huawei.com>,
	"mst@redhat.com" <mst@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"Xu, Quan" <quan.xu@intel.com>,
	"silviu.vlasceanu@gmail.com" <silviu.vlasceanu@gmail.com>,
	Stefan Berger <stefanb@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH v5 1/4] Provide support for the CUSE TPM
Date: Wed, 1 Mar 2017 15:18:03 +0000	[thread overview]
Message-ID: <20170301151803.GF10160@redhat.com> (raw)
In-Reply-To: <OF00CA88E0.A7212243-ON002580D6.00498E3C-852580D6.0049CA7A@notes.na.collabserv.com>

On Wed, Mar 01, 2017 at 08:25:43AM -0500, Stefan Berger wrote:
> "Daniel P. Berrange" <berrange@redhat.com> wrote on 03/01/2017 07:54:14 
> AM:
> 
> > From: "Daniel P. Berrange" <berrange@redhat.com>
> > To: Stefan Berger <stefanb@linux.vnet.ibm.com>
> > Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Stefan Berger/
> > Watson/IBM@IBMUS, "mst@redhat.com" <mst@redhat.com>, "qemu-
> > devel@nongnu.org" <qemu-devel@nongnu.org>, "SERBAN, CRISTINA" 
> > <cs1731@att.com>, "Xu, Quan" <quan.xu@intel.com>, 
> > "silviu.vlasceanu@gmail.com" <silviu.vlasceanu@gmail.com>, 
> > "hagen.lauer@huawei.com" <hagen.lauer@huawei.com>, "SHIH, CHING C" 
> > <cs1815@att.com>
> > Date: 03/01/2017 08:03 AM
> > Subject: Re: [Qemu-devel] [PATCH v5 1/4] Provide support for the CUSE 
> TPM
> > 
> > On Wed, Mar 01, 2017 at 07:25:28AM -0500, Stefan Berger wrote:
> > > On 06/16/2016 04:25 AM, Daniel P. Berrange wrote:
> > > > On Thu, Jun 16, 2016 at 09:05:20AM +0100, Dr. David Alan Gilbert 
> wrote:
> > > > > * Stefan Berger (stefanb@linux.vnet.ibm.com) wrote:
> > > > > > On 06/15/2016 03:30 PM, Dr. David Alan Gilbert wrote:
> > > > > <snip>
> > > > > 
> > > > > > > So what was the multi-instance vTPM proxy driver patch set 
> about?
> > > > > > That's for containers.
> > > > > Why have the two mechanisms? Can you explain how the 
> multi-instance
> > > > > proxy works; my brief reading when I saw your patch series seemed
> > > > > to suggest it could be used instead of CUSE for the non-container 
> case.
> > > > One of the key things that was/is not appealing about this CUSE 
> approach
> > > > is that it basically invents a new ioctl() mechanism for talking to
> > > > a TPM chardev. With in-kernel vTPM support, QEMU probably doesn't 
> need
> > > > to have any changes at all - its existing driver for talking to TPM
> > > 
> > > We still need the control channel with the vTPM to reset it upon VM 
> reset,
> > > for getting and setting the state of the vTPM upon 
> snapshot/suspend/resume,
> > > changing locality, etc.
> > 
> > You ultimately need the same mechanisms if using in-kernel vTPM with
> > containers as containers can support snapshot/suspend/resume/etc too.
> 
> The vTPM running on the backend side of the vTPM proxy driver is 
> essentially the same as the CUSE TPM used for QEMU. I has the same control 
> channel through sockets. So on that level we would have support for the 
> operations but not integrated with anything that would support container 
> migration.

This goes back to the question Dave mentions above ? Ignoring the control
channel aspect temporarily, can the CUSE TPM support the exact same ioctl
interface as the existing kernel TPM device ? It feels like this should
be possible, and if so, then this virtal TPM feature can be considered to
have two separate pieces.

First enabling basic CUSE TPM device support would not require QEMU changes,
as we could just use the existing tpm-passthrough driver against the CUSE
device, albeit with the limitations around migration, snapshot etc.

Second we could consider the question of supporting a control channel as
a separate topic. IIUC, QEMU essentially needs a way to trigger various
operations in the underlying TPM implementation, when certain lifecycle
operations are performed on the VM. I could see this being done as a
simple network protocol over a UNIX socket. So, you could then add a
new 'chardev' property to the tpm-passthrough device, which gives the
ID of a character device that provides the control channel.

This way QEMU does not need to have any special code to deal with CUSE
directly. QEMU could be used with a real TPM device, a vTPM device or
a CUSE TPM device, with the same driver. With both the vTPM and the
CUSE TPM device, QEMU would have the ability to use a out of band
control channel when migration/snapshot/etc take place.

This cleanly isolates QEMU from the particular design & implementation
that is currently used by the current swtpm code.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|

  parent reply	other threads:[~2017-03-01 15:18 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-04 15:23 [Qemu-devel] [PATCH v5 0/4] Extend TPM support with a QEMU-external TPM Stefan Berger
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 1/4] Provide support for the CUSE TPM Stefan Berger
2016-01-20 15:00   ` Daniel P. Berrange
2016-01-20 15:31     ` Stefan Berger
     [not found]     ` <201601201532.u0KFW2q2019737@d03av03.boulder.ibm.com>
2016-01-20 15:46       ` Daniel P. Berrange
2016-01-20 15:54         ` Stefan Berger
2016-01-20 16:03           ` Michael S. Tsirkin
2016-01-20 16:13             ` Stefan Berger
2016-01-20 16:22           ` Daniel P. Berrange
2016-01-21 11:36             ` Dr. David Alan Gilbert
2016-05-31 18:58               ` BICKFORD, JEFFREY E
2016-05-31 19:10                 ` Dr. David Alan Gilbert
2016-06-01 22:54                   ` BICKFORD, JEFFREY E
2016-06-13 10:56                   ` Stefan Berger
2016-06-01  1:58                 ` Xu, Quan
2016-06-13 11:02                   ` Stefan Berger
2016-06-15 19:30                     ` Dr. David Alan Gilbert
2016-06-15 20:54                       ` Stefan Berger
2016-06-16  8:05                         ` Dr. David Alan Gilbert
2016-06-16  8:25                           ` Daniel P. Berrange
2016-06-16 15:20                             ` Stefan Berger
2017-03-01 12:25                             ` Stefan Berger
2017-03-01 12:54                               ` Daniel P. Berrange
2017-03-01 13:25                                 ` Stefan Berger
2017-03-01 14:17                                   ` Marc-André Lureau
2017-03-01 14:50                                     ` Stefan Berger
2017-03-01 15:24                                       ` Marc-André Lureau
2017-03-01 15:58                                         ` Stefan Berger
2017-03-01 16:22                                       ` Michael S. Tsirkin
2017-03-01 16:31                                         ` Daniel P. Berrange
2017-03-01 16:57                                           ` Dr. David Alan Gilbert
2017-03-01 17:02                                           ` Michael S. Tsirkin
2017-03-01 17:12                                             ` Stefan Berger
2017-03-01 17:16                                               ` Michael S. Tsirkin
2017-03-01 17:20                                                 ` Daniel P. Berrange
2017-03-01 18:03                                                   ` Michael S. Tsirkin
2017-03-01 17:25                                                 ` Stefan Berger
2017-03-01 17:38                                                   ` Daniel P. Berrange
2017-03-01 17:58                                                     ` Michael S. Tsirkin
2017-03-01 18:06                                                       ` Dr. David Alan Gilbert
2017-03-01 18:09                                                         ` Michael S. Tsirkin
2017-03-01 18:18                                                           ` Dr. David Alan Gilbert
2017-03-01 18:30                                                             ` Michael S. Tsirkin
2017-03-01 19:24                                                               ` Stefan Berger
2017-03-01 23:36                                                                 ` Michael S. Tsirkin
2017-03-01 23:42                                                                   ` Michael S. Tsirkin
2017-03-01 18:11                                                       ` Daniel P. Berrange
2017-03-01 18:20                                                         ` Michael S. Tsirkin
2017-03-01 18:32                                                           ` Marc-André Lureau
2017-03-01 18:56                                                             ` Daniel P. Berrange
2017-03-01 19:18                                                               ` Marc-André Lureau
2017-03-01 22:22                                                               ` Michael S. Tsirkin
2017-03-01 17:36                                               ` Daniel P. Berrange
2017-03-01 15:18                                   ` Daniel P. Berrange [this message]
2017-03-01 15:40                                     ` Stefan Berger
2017-03-01 16:13                                       ` Daniel P. Berrange
2016-06-16 13:58                           ` SERBAN, CRISTINA
2016-06-16 15:04                           ` Stefan Berger
2016-06-16 15:22                             ` Dr. David Alan Gilbert
2016-06-16 15:35                               ` Stefan Berger
2016-06-16 17:54                                 ` Dr. David Alan Gilbert
2016-06-16 18:43                                   ` Stefan Berger
2016-06-16 19:24                                     ` Dr. David Alan Gilbert
2016-06-16 21:28                                       ` Stefan Berger
2017-02-28 18:31                                         ` Marc-André Lureau
2017-03-01 12:32                                           ` Stefan Berger
2016-01-28 13:15       ` Daniel P. Berrange
2016-01-28 14:51         ` Stefan Berger
2016-01-20 15:20   ` Michael S. Tsirkin
2016-01-20 15:36     ` Stefan Berger
     [not found]     ` <201601201536.u0KFanwG004844@d01av04.pok.ibm.com>
2016-01-20 15:58       ` Michael S. Tsirkin
2016-01-20 16:06         ` Stefan Berger
2016-01-20 18:54           ` Michael S. Tsirkin
2016-01-20 21:25             ` Stefan Berger
2016-01-21  5:08               ` Michael S. Tsirkin
2016-01-21  5:41                 ` Xu, Quan
2016-01-21  9:19                   ` Michael S. Tsirkin
2016-01-21 12:09                 ` Stefan Berger
2016-01-20 16:15         ` Daniel P. Berrange
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 2/4] Introduce condition to notify waiters of completed command Stefan Berger
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 3/4] Introduce condition in TPM backend for notification Stefan Berger
2016-01-04 15:23 ` [Qemu-devel] [PATCH v5 4/4] Add support for VM suspend/resume for TPM TIS Stefan Berger
2016-01-05  1:26 ` [Qemu-devel] [PATCH v5 0/4] Extend TPM support with a QEMU-external TPM Xu, Quan
2016-01-05  3:36   ` Stefan Berger
2016-01-20  1:40 ` Xu, Quan
2016-01-20  9:23   ` Hagen Lauer
2016-01-20  9:41     ` Xu, Quan
2016-01-20 14:58 ` Daniel P. Berrange
2016-01-20 15:23   ` Stefan Berger
     [not found]   ` <201601201523.u0KFNwOH000398@d01av04.pok.ibm.com>
2016-01-20 15:42     ` Daniel P. Berrange
2016-01-20 19:51       ` Stefan Berger
     [not found]       ` <OF1010A111.39918A93-ON00257F40.006CA5ED-85257F40.006D2225@LocalDomain>
2016-01-20 20:16         ` Stefan Berger
2016-01-21 11:40           ` Dr. David Alan Gilbert
2016-01-21 12:31             ` Stefan Berger
     [not found]             ` <201601211231.u0LCVGCZ021111@d01av01.pok.ibm.com>
2016-01-21 14:53               ` Dr. David Alan Gilbert
     [not found]             ` <OF7ED031CA.CDD3196F-ON00257F41.004305BB-85257F41.0044C71A@LocalDomain>
2016-02-01 17:40               ` Stefan Berger

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=20170301151803.GF10160@redhat.com \
    --to=berrange@redhat.com \
    --cc=cs1731@att.com \
    --cc=cs1815@att.com \
    --cc=dgilbert@redhat.com \
    --cc=hagen.lauer@huawei.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quan.xu@intel.com \
    --cc=silviu.vlasceanu@gmail.com \
    --cc=stefanb@linux.vnet.ibm.com \
    --cc=stefanb@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.