Re: [PATCH] tpm: Add driver for TPM over virtio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 22, 2019 at 02:24:55PM -0800, David Tolnay wrote:
> On 2/22/19 1:50 PM, Jarkko Sakkinen wrote:
> > On Fri, Feb 22, 2019 at 04:25:08PM -0500, Michael S. Tsirkin wrote:
> >> On Fri, Feb 22, 2019 at 09:33:05PM +0200, Jarkko Sakkinen wrote:
> >>> On Fri, Feb 22, 2019 at 09:31:56PM +0200, Jarkko Sakkinen wrote:
> >>>> On Fri, Feb 22, 2019 at 10:23:02AM -0500, Michael S. Tsirkin wrote:
> >>>>> On Fri, Feb 22, 2019 at 12:26:10PM +0200, Jarkko Sakkinen wrote:
> >>>>>> On Thu, Feb 21, 2019 at 06:14:02PM -0800, David Tolnay wrote:
> >>>>>>> Add a config TCG_VIRTIO_VTPM which enables a driver providing the guest
> >>>>>>> kernel side of TPM over virtio.
> >>>>>>>
> >>>>>>> Use case: TPM support is needed for performing trusted work from within
> >>>>>>> a virtual machine launched by Chrome OS.
> >>>>>>>
> >>>>>>> Tested inside crosvm, the Chrome OS virtual machine monitor. Crosvm's
> >>>>>>> implementation of the virtio TPM device can be found in these two source
> >>>>>>> files:
> >>>>>>>
> >>>>>>> - https://chromium.googlesource.com/chromiumos/platform/crosvm/+/18ce5713e6cb99c40aafec52b67c28ba12a44f31/devices/src/virtio/tpm.rs
> >>>>>>> - https://chromium.googlesource.com/chromiumos/platform/crosvm/+/18ce5713e6cb99c40aafec52b67c28ba12a44f31/tpm2/src/lib.rs
> >>>>>>
> >>>>>> These files/links do not make sense for kernel testing. Please remove
> >>>>>> them from the next version.
> >>>>>
> >>>>> To clarify generally for a virtio device we want
> >>>>> - guest support
> >>>>> - device support
> >>>>> - spec
> >>>>>
> >>>>> If the device is implemented in qemu and guest in linux kernel,
> >>>>> then there are lots of people familiar with these
> >>>>> programming environments, so sometimes we merge
> >>>>> guest and host code even if spec isn't written up at all.
> >>>>>
> >>>>> If you don't want to do that there's a small number of people who can
> >>>>> properly review code, e.g. I don't think lots of people on this list are
> >>>>> familiar with crosvm.  One way to address this would be to build a QEMU
> >>>>> implementation. Another would be to write up a spec.  You can do both
> >>>>> too :)
> >>>>
> >>>> I don't really understand your arguments.
> >>>
> >>> ... and I did your response total three times and did not find any
> >>> causality of any sort from anything.
> >>>
> >>> /Jarkko
> >>
> >> Thanks for spending the time reading my response.  What was included in
> >> it was a general suggestion for a virtio based driver to be acceptable
> >> in upstream Linux.
> >>
> >> You pointed out that a pointer to a prototype implementation in Rust
> >> isn't relevant. However, FYI just posting guest code and asking for it
> >> to be merged alone won't work for a virtio driver either. I am merely
> >> trying to speed things up instead of having the contributor repost with
> >> a tweaked commit log just to immediately get another set of nacks.
> > 
> > I did not say anything about relevance of any implementation. I tried to
> > mainly point out that looking at random source files implemented with a
> > relatively alien language to most does not really make a case.
> > 
> > Things that would help to move this forward:
> > 
> > - Documentation of the stack, nothing spectacular but more like how it
> >   works in practical terms.
> > - Sufficiently easy ways to test the code.
> > - Explain in the commit message why we want this.
> > 
> > /Jarkko
> 
> 
> Thanks Jarkko, I respect all of the points you've raised and you are absolutely
> correct to ask for a spec and/or spec-quality documentation, detailed testing
> steps for exercising this driver in qemu or crosvm, and strong justification for
> the new driver.

I do not require spec quality documentation. Just a few paragraphs of
what is in crosvm, kernel etc. and something about inner workings to
get a rough idea. No need for TCG level spec for this :-) Something
in the spirit of what you could bundle under Documentation/ in the
kernel tree. Maybe you could consider putting something there and
make this a patch set?

To get started with testing this properly is there anywhere
documentation on "here's how you compile and run crosvm"? If I can
run it myself it will be easier for me to understand what happens even
without a spec.

Clone the repository and cargo build?

/Jarkko



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux Kernel Hardening]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux