All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfram Sang <wsa@kernel.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Jie Deng" <jie.deng@intel.com>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	virtualization@lists.linux-foundation.org,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	conghui.chen@intel.com, kblaiech@mellanox.com,
	jarkko.nikula@linux.intel.com,
	"Sergey Semin" <Sergey.Semin@baikalelectronics.ru>,
	"Mike Rapoport" <rppt@kernel.org>,
	loic.poulain@linaro.org, "Tali Perry" <tali.perry1@gmail.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	yu1.wang@intel.com, shuo.a.liu@intel.com,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH v10] i2c: virtio: add a virtio i2c frontend driver
Date: Mon, 28 Jun 2021 11:25:23 +0200	[thread overview]
Message-ID: <YNmVg3ZhshshlbSx@ninjato> (raw)
In-Reply-To: <CAK8P3a2qrfhyfZA-8qPVQ252tZXSBKVT==GigJMVvX5_XLPrCQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3070 bytes --]

Hi Arnd,

> You probably know this already, but just in case for clarification
> these are two different things:

Ah, yes. I mistyped VFIO. Shows that I am not really fluent with these
terms. But as I spoke of paravirtualized later, I think I meant the
right thing.

> 
> > I2C transactions can have an arbitrary number of messages which can
> > arbitrarily be read or write. As I understand the above, only one read,
> > write or read-write transaction is supported. If that is the case, it
> > would be not very much I2C but more SMBus. If my assumptions are true,
> > we first need to decide if you want to go the I2C way or SMBus subset.
> 
> This has come up in previous reviews already. I think it comes down
> to the requirement that the virtio i2c protocol should allow passthrough
> access to any client devices connected to a physical i2c bus on the host,
> and this should ideally be independent of whether the host driver
> exposes I2C_RDWR or I2C_SMBUS ioctl interface, or both.

If a host driver supports I2C_RDWR (i.e. I2C bus transactions) it will
support I2C_SMBUS (i.e. SMBus transactions), too. It can be emulated and
host drivers just need to set I2C_FUNC_SMBUS_EMUL. With the notable
excaption of zero length transfers. Some cannot do this, so they use
I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK).

The other way around is not possible, SMBus is a subset of I2C.

> This can be done either by having both interface types in the transport,
> or picking one of the two, and translating to the host interface type
> in software.

If you have I2C, you have SMBus as well.

> As far as I understand me (please clarify), implementing only the smbus
> subset would mean that we cannot communicate with all client devices,
> while implementing both would add more complexity than the lower-level
> protocol.

Correct. You need to pick I2C if you want to support all devices. SMBus
will give you only a lot of devices.

> > Also, as I read it, a whole bus is para-virtualized to the guest, or?
> > Wouldn't it be better to allow just specific devices on a bus? Again, I
> > am kinda new to this, so I may have overlooked things.
> 
> Do you mean just allowing a single device per bus (as opposed to
> having multiple devices as on a real bus), or just allowing
> a particular set of client devices that can be identified using
> virtio specific configuration (as opposed to relying on device
> tree or similar for probing). Both of these are valid questions that
> have been discussed before, but that could be revisited.

I am just thinking that a physical bus on the host may have devices that
should be shared with the guest while other devices on the same bus
should not be shared (PMIC!). I'd think this is a minimal requirement
for security. I also wonder if it is possible to have a paravirtualized
bus in the guest which has multiple devices from the host sitting on
different physical busses there. But that may be the cherry on the top.

All the best,

   Wolfram


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-06-28  9:25 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-23 14:19 [PATCH v10] i2c: virtio: add a virtio i2c frontend driver Jie Deng
2021-03-23 14:19 ` Jie Deng
2021-03-23  7:27 ` Viresh Kumar
2021-03-23  8:33   ` Jie Deng
2021-03-23  8:33     ` Jie Deng
2021-03-23  8:37     ` Viresh Kumar
2021-03-23  9:27     ` Arnd Bergmann
2021-03-23  9:27       ` Arnd Bergmann
2021-03-24  1:17       ` Jie Deng
2021-03-24  1:17         ` Jie Deng
2021-03-24  4:00         ` Viresh Kumar
2021-04-15  6:45       ` Viresh Kumar
2021-04-15  6:56         ` Jie Deng
2021-04-15  6:56           ` Jie Deng
2021-04-15  7:15           ` Viresh Kumar
2021-04-15  7:21           ` Wolfram Sang
2021-04-15  7:24             ` Viresh Kumar
2021-04-15  7:28               ` Wolfram Sang
2021-04-15  7:37                 ` Viresh Kumar
2021-04-15  8:15                 ` Jie Deng
2021-04-15  8:15                   ` Jie Deng
2021-04-15  8:18                   ` Wolfram Sang
2021-04-15  8:20                     ` Jie Deng
2021-04-15  8:20                       ` Jie Deng
2021-05-27  6:49                     ` Jie Deng
2021-05-27  6:49                       ` Jie Deng
2021-05-12  1:37             ` Jie Deng
2021-05-12  1:37               ` Jie Deng
2021-03-23  9:01 ` Viresh Kumar
2021-03-23  9:38   ` Viresh Kumar
2021-03-24  0:53     ` Jie Deng
2021-03-24  0:53       ` Jie Deng
2021-03-24  3:52       ` Viresh Kumar
2021-03-24  4:00         ` Jie Deng
2021-03-24  4:00           ` Jie Deng
2021-03-24  4:02           ` Viresh Kumar
2021-03-24  4:20 ` Viresh Kumar
2021-03-24  6:05   ` Jie Deng
2021-03-24  6:05     ` Jie Deng
2021-03-24  6:09     ` Viresh Kumar
2021-03-24  6:41       ` Jie Deng
2021-03-24  6:41         ` Jie Deng
2021-03-24  6:44         ` Viresh Kumar
2021-04-14  2:07 ` Jie Deng
2021-04-14  2:07   ` Jie Deng
2021-04-14  3:52   ` Viresh Kumar
2021-04-15  6:25     ` Jie Deng
2021-04-15  6:25       ` Jie Deng
2021-04-15  3:51 ` Jason Wang
2021-04-15  3:51   ` Jason Wang
2021-04-15  6:17   ` Jie Deng
2021-04-15  6:17     ` Jie Deng
2021-06-28  8:39 ` Wolfram Sang
2021-06-28  9:01   ` Arnd Bergmann
2021-06-28  9:01     ` Arnd Bergmann
2021-06-28  9:25     ` Wolfram Sang [this message]
2021-06-28  9:51       ` Arnd Bergmann
2021-06-28  9:51         ` Arnd Bergmann
2021-06-28 10:13         ` Wolfram Sang
2021-06-28 11:50           ` Arnd Bergmann
2021-06-28 11:50             ` Arnd Bergmann
2021-06-28 14:58             ` Wolfram Sang
2021-06-29  3:04               ` Jie Deng
2021-06-29  3:04                 ` Jie Deng
2021-06-29  8:30                 ` Wolfram Sang
2021-06-29  9:13                   ` Viresh Kumar
2021-06-29  9:13                     ` Viresh Kumar
2021-06-29  9:36                     ` Wolfram Sang
2021-06-29  4:10               ` Viresh Kumar
2021-06-29  4:10                 ` Viresh Kumar
2021-06-29  8:27                 ` Wolfram Sang
2021-06-29  8:52                   ` Viresh Kumar
2021-06-29  8:52                     ` Viresh Kumar
2021-06-29  9:07                     ` Wolfram Sang
2021-06-30 14:38                 ` Wolfram Sang
2021-06-30 15:09                   ` Viresh Kumar
2021-06-30 15:09                     ` Viresh Kumar
2021-06-29  3:03     ` Jie Deng
2021-06-29  3:03       ` Jie Deng
2021-06-29 10:07 ` Wolfram Sang
2021-06-29 10:16   ` Viresh Kumar
2021-06-29 10:16     ` Viresh Kumar
2021-06-29 10:23     ` Wolfram Sang
2021-06-29 10:30       ` Viresh Kumar
2021-06-29 10:30         ` Viresh Kumar
2021-06-29 10:42         ` Wolfram Sang
2021-06-29 10:43           ` Wolfram Sang
2021-06-29 10:56             ` Viresh Kumar
2021-06-29 10:56               ` Viresh Kumar
2021-06-29 11:11               ` Wolfram Sang
2021-06-29 11:16                 ` Viresh Kumar
2021-06-29 11:16                   ` Viresh Kumar
2021-06-29 11:48                   ` Wolfram Sang
2021-07-05 12:18             ` Viresh Kumar
2021-07-05 12:18               ` Viresh Kumar
2021-07-06  1:50               ` Jie Deng
2021-07-06  1:50                 ` Jie Deng
2021-07-22 15:15               ` Wolfram Sang
2021-07-23  2:28                 ` Viresh Kumar
2021-07-23  2:28                   ` Viresh Kumar
2021-07-23  5:28                   ` Viresh Kumar
2021-07-23  5:28                     ` Viresh Kumar
2021-06-30  6:45   ` Jie Deng
2021-06-30  6:45     ` Jie Deng
2021-06-30  7:32     ` Wolfram Sang
2021-06-30  7:51       ` Jie Deng
2021-06-30  7:51         ` Jie Deng
2021-06-30  7:55         ` Arnd Bergmann
2021-06-30  7:55           ` Arnd Bergmann
2021-06-30  8:04           ` Wolfram Sang
2021-06-30  8:07           ` Andy Shevchenko
2021-06-30  8:07             ` Andy Shevchenko
2021-06-30  8:29             ` Arnd Bergmann
2021-06-30  8:29               ` Arnd Bergmann

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=YNmVg3ZhshshlbSx@ninjato \
    --to=wsa@kernel.org \
    --cc=Sergey.Semin@baikalelectronics.ru \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=bjorn.andersson@linaro.org \
    --cc=conghui.chen@intel.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=jasowang@redhat.com \
    --cc=jie.deng@intel.com \
    --cc=kblaiech@mellanox.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=rppt@kernel.org \
    --cc=shuo.a.liu@intel.com \
    --cc=stefanha@redhat.com \
    --cc=tali.perry1@gmail.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=viresh.kumar@linaro.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=yu1.wang@intel.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.