Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753536AbcCJRa5 (ORCPT ); Thu, 10 Mar 2016 12:30:57 -0500 Received: from e38.co.us.ibm.com ([32.97.110.159]:55975 "EHLO e38.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752686AbcCJRax (ORCPT ); Thu, 10 Mar 2016 12:30:53 -0500 X-IBM-Helo: d03dlp01.boulder.ibm.com X-IBM-MailFrom: stefanb@linux.vnet.ibm.com X-IBM-RcptTo: linux-api@vger.kernel.org;linux-doc@vger.kernel.org;linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 08/11] tpm: Driver for supporting multiple emulated TPMs To: Jarkko Sakkinen References: <1457545170-30120-1-git-send-email-stefanb@linux.vnet.ibm.com> <1457545170-30120-9-git-send-email-stefanb@linux.vnet.ibm.com> <20160310163915.GA4863@intel.com> Cc: tpmdd-devel@lists.sourceforge.net, jgunthorpe@obsidianresearch.com, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-api@vger.kernel.org From: Stefan Berger Message-ID: <56E1AF44.9040807@linux.vnet.ibm.com> Date: Thu, 10 Mar 2016 12:30:44 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <20160310163915.GA4863@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16031017-0029-0000-0000-0000116AD19A Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1773 Lines: 43 > On Wed, Mar 09, 2016 at 12:39:27PM -0500, Stefan Berger wrote: > > This patch implements a driver for supporting multiple emulated TPMs in a > > system. > > > > The driver implements a device /dev/vtpmx that is used to created > > a client device pair /dev/tpmX (e.g., /dev/tpm10) and a server side that > > is accessed using a file descriptor returned by an ioctl. > > The device /dev/tpmX is the usual TPM device created by the core TPM > > driver. Applications or kernel subsystems can send TPM commands to it > > and the corresponding server-side file descriptor receives these > > commands and delivers them to an emulated TPM. > > I wrote my first test program 'tpm2-simulator-vtpm' that at the moment > opens /dev/vtpmx and creates a device. As next step I'm going to > extend this script to connect MS TPM 2.0 simulator based on the work > by Peter Huewe. > > It is available here: > > git://git.infradead.org/users/jjs/tpm2-scripts.git > > The first obvious thing that I observed is that the device is closed > when /dev/vtpmx is closed. I don't see how closing the /dev/vtpmx file descriptor would influence the device pair, if that's what you are referring to with 'device'? I tried that with vtpmctrl.c and the device pair stays unaffected. When the applications terminates, the device disappears, unless the server side file descriptor has been passed to an external program, so that is expected behavior. > > Some might want to use this in a way that the created virtual device > is not closed when /dev/vtpmx is closed. I don't see that happening. If you want the device pair to stay around after an application terminates, you have to pass the file descriptor returned from the ioctl to an application. Stefan