All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Jason Wang <jasowang@redhat.com>,
	"virtio-comment@lists.oasis-open.org"
	<virtio-comment@lists.oasis-open.org>,
	"cohuck@redhat.com" <cohuck@redhat.com>,
	"sburla@marvell.com" <sburla@marvell.com>,
	Shahaf Shuler <shahafs@nvidia.com>,
	Maor Gottlieb <maorg@nvidia.com>,
	Yishai Hadas <yishaih@nvidia.com>,
	"lingshan.zhu@intel.com" <lingshan.zhu@intel.com>
Subject: [virtio-comment] Re: [PATCH v3 6/8] admin: Add theory of operation for write recording commands
Date: Wed, 15 Nov 2023 02:59:36 -0500	[thread overview]
Message-ID: <20231115025214-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <DM8PR12MB548057EA201EE985DE6C99C9DCAFA@DM8PR12MB5480.namprd12.prod.outlook.com>

On Thu, Nov 09, 2023 at 06:26:44AM +0000, Parav Pandit wrote:
> 
> > From: Jason Wang <jasowang@redhat.com>
> > Sent: Wednesday, November 8, 2023 9:59 AM
> > 
> > On Tue, Nov 7, 2023 at 3:05 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> > >
> > > On Tue, Nov 07, 2023 at 12:04:29PM +0800, Jason Wang wrote:
> > > > > > > Each virtio and non virtio devices who wants to report their
> > > > > > > dirty page report,
> > > > > > will do their way.
> > > > > > >
> > > > > > > > 3) inventing it in the virtio layer will be deprecated in
> > > > > > > > the future for sure, as platform will provide much rich
> > > > > > > > features for logging e.g it can do it per PASID etc, I don't
> > > > > > > > see any reason virtio need to compete with the features that
> > > > > > > > will be provided by the platform
> > > > > > > Can you bring the cpu vendors and committement to virtio tc
> > > > > > > with timelines
> > > > > > so that virtio TC can omit?
> > > > > >
> > > > > > Why do we need to bring CPU vendors in the virtio TC? Virtio
> > > > > > needs to be built on top of transport or platform. There's no need to
> > duplicate their job.
> > > > > > Especially considering that virtio can't do better than them.
> > > > > >
> > > > > I wanted to see a strong commitment for the cpu vendors to support dirty
> > page tracking.
> > > >
> > > > The RFC of IOMMUFD support can go back to early 2022. Intel, AMD and
> > > > ARM are all supporting that now.
> > > >
> > > > > And the work seems to have started for some platforms.
> > > >
> > > > Let me quote from the above link:
> > > >
> > > > """
> > > > Today, AMD Milan (or more recent) supports it while ARM SMMUv3.2
> > > > alongside VT-D rev3.x also do support.
> > > > """
> > > >
> > > > > Without such platform commitment, virtio also skipping it would not work.
> > > >
> > > > Is the above sufficient? I'm a little bit more familiar with vtd,
> > > > the hw feature has been there for years.
> > >
> > >
> > > Repeating myself - I'm not sure that will work well for all workloads.
> > 
> > I think this comment applies to this proposal as well.
> > 
> > > Definitely KVM did
> > > not scan PTEs. It used pagefaults with bit per page and later as VM
> > > size grew switched to PLM.  This interface is analogous to PLM,
> > 
> > I think you meant PML actually. And it doesn't work like PML. To behave like
> > PML it needs to
> > 
> > 1) log buffers were organized as a queue with indices
> > 2) device needs to suspend (as a #vmexit in PML) if it runs out of the buffers
> > 3) device need to send a notification to the driver if it runs out of the buffer
> > 
> > I don't see any of the above in this proposal. If we do that it would be less
> > problematic than what is being proposed here.
> > 
> In this proposal, its slightly different than PML.
> The log buffer is a write record with the device. It keeps recording it.
> And owner driver queries the recorded pages.
> The device internally can do PML or other different implementations as it finds suitable.

I personally like it that this detail is hidden inside the device.
One important functionality that PML has and that this does not
have is ability to interrupt host e.g. if is running low on
space to record these info. Want to add it in some way?
E.g. a special command that is only used if device is low
on buffers.


> > Even if we manage to do that, it doesn't mean we won't have issues.
> > 
> > 1) For many reasons it can neither see nor log via GPA, so this requires a
> > traversal of the vIOMMU mapping tables by the hypervisor afterwards, it would
> > be expensive and need synchronization with the guest modification of the IO
> > page table which looks very hard.
> > 2) There are a lot of special or reserved IOVA ranges (for example the interrupt
> > areas in x86) that need special care which is architectural and where it is
> > beyond the scope or knowledge of the virtio device but the platform IOMMU.
> > Things would be more complicated when SVA is enabled. And there could be
> > other architecte specific knowledge (e.g
> > PAGE_SIZE) that might be needed. There's no easy way to deal with those cases.
> > 
> 
> Current and future iommufd and OS interface likely can support this already.
> In current proposal, multiple ranges are supplied to the device, the reserved ranges are not part of it.
> 
> > We wouldn't need to care about all of them if it is done at platform IOMMU
> > level.
> > 
> I agree that when platform IOMMU has support and if its better it should be first priority to use by the hypervisor.
> Mainly because the D bit of the page already there, and not a special PML queue or a racy bitmap like what was proposed in other series.

BTW your bitmap is also racy if there's a vIOMMU, unless hypervisor is
very careful to empty the bitmap when mappings change.
You should document this requirement.


-- 
MST


This publicly archived list offers a means to provide input to the
OASIS Virtual I/O Device (VIRTIO) TC.

In order to verify user consent to the Feedback License terms and
to minimize spam in the list archive, subscription is required
before posting.

Subscribe: virtio-comment-subscribe@lists.oasis-open.org
Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
List help: virtio-comment-help@lists.oasis-open.org
List archive: https://lists.oasis-open.org/archives/virtio-comment/
Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
Committee: https://www.oasis-open.org/committees/virtio/
Join OASIS: https://www.oasis-open.org/join/


  reply	other threads:[~2023-11-15  7:59 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-30 13:19 [virtio-comment] [PATCH v3 0/8] Introduce device migration support commands Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 1/8] admin: Add theory of operation for device migration Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 2/8] admin: Redefine reserved2 as command specific output Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 3/8] device-context: Define the device context fields for device migration Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 4/8] admin: Add device migration admin commands Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 5/8] admin: Add requirements of device migration commands Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 6/8] admin: Add theory of operation for write recording commands Parav Pandit
2023-10-31  1:43   ` [virtio-comment] " Jason Wang
2023-10-31  3:27     ` [virtio-comment] " Parav Pandit
2023-10-31  7:45       ` [virtio-comment] " Michael S. Tsirkin
2023-10-31  9:32         ` Zhu, Lingshan
2023-10-31  9:41           ` Michael S. Tsirkin
2023-10-31  9:47             ` Zhu, Lingshan
2023-11-01  0:29       ` Jason Wang
2023-11-01  3:02         ` [virtio-comment] " Parav Pandit
2023-11-02  4:24           ` [virtio-comment] " Jason Wang
2023-11-02  6:10             ` [virtio-comment] " Parav Pandit
2023-11-06  6:34               ` [virtio-comment] " Jason Wang
2023-11-06  6:53                 ` [virtio-comment] " Parav Pandit
2023-11-07  4:04                   ` [virtio-comment] " Jason Wang
2023-11-07  7:05                     ` Michael S. Tsirkin
2023-11-08  4:28                       ` Jason Wang
2023-11-08  8:17                         ` Michael S. Tsirkin
2023-11-08  9:00                           ` [virtio-comment] " Parav Pandit
2023-11-08 17:16                             ` [virtio-comment] " Michael S. Tsirkin
2023-11-09  6:27                               ` Parav Pandit
2023-11-09  3:31                           ` Jason Wang
2023-11-09  7:59                             ` Michael S. Tsirkin
2023-11-10  6:46                               ` [virtio-comment] " Parav Pandit
2023-11-13  3:41                                 ` [virtio-comment] " Jason Wang
2023-11-13 14:30                                   ` Michael S. Tsirkin
2023-11-14  2:03                                     ` Zhu, Lingshan
2023-11-14  7:52                                       ` Jason Wang
2023-11-15 17:37                                   ` [virtio-comment] " Parav Pandit
2023-11-16  4:24                                     ` [virtio-comment] " Jason Wang
2023-11-16  6:49                                       ` Michael S. Tsirkin
2023-11-21  4:21                                         ` Jason Wang
2023-11-21 16:24                                           ` [virtio-comment] " Parav Pandit
2023-11-22  4:11                                             ` [virtio-comment] " Jason Wang
2023-11-16  6:50                                     ` Michael S. Tsirkin
2023-11-13  3:31                               ` Jason Wang
2023-11-13  6:57                                 ` Michael S. Tsirkin
2023-11-14  7:34                                   ` Zhu, Lingshan
2023-11-14  7:59                                     ` Jason Wang
2023-11-14  8:27                                     ` Michael S. Tsirkin
2023-11-15  4:05                                       ` Zhu, Lingshan
2023-11-15  7:51                                         ` Michael S. Tsirkin
2023-11-15  7:59                                           ` Zhu, Lingshan
2023-11-15  8:05                                             ` Michael S. Tsirkin
2023-11-15  8:42                                               ` Zhu, Lingshan
2023-11-15 11:52                                                 ` Michael S. Tsirkin
2023-11-16  9:38                                                   ` Zhu, Lingshan
2023-11-16 12:18                                                     ` Michael S. Tsirkin
2023-11-17  9:50                                                       ` Zhu, Lingshan
2023-11-17  9:55                                                         ` Michael S. Tsirkin
2023-11-14  7:57                                   ` Jason Wang
2023-11-14  9:16                                     ` Michael S. Tsirkin
2023-11-15 17:42                                 ` [virtio-comment] " Parav Pandit
2023-11-16  4:18                                   ` [virtio-comment] " Jason Wang
2023-11-16  5:27                                     ` [virtio-comment] " Parav Pandit
2023-11-17 10:15                                   ` [virtio-comment] " Michael S. Tsirkin
2023-11-17 10:48                                     ` Parav Pandit
2023-11-17 11:19                                       ` Michael S. Tsirkin
2023-11-17 11:32                                         ` Parav Pandit
2023-11-17 11:49                                           ` Michael S. Tsirkin
2023-11-17 12:15                                             ` Parav Pandit
2023-11-17 12:37                                               ` Michael S. Tsirkin
2023-11-17 12:49                                                 ` Parav Pandit
2023-11-17 13:58                                                   ` Michael S. Tsirkin
2023-11-17 14:49                                                     ` Parav Pandit
2023-11-17 15:00                                                       ` Michael S. Tsirkin
2023-11-09  6:26                         ` [virtio-comment] " Parav Pandit
2023-11-15  7:59                           ` Michael S. Tsirkin [this message]
2023-11-15 17:42                             ` Parav Pandit
2023-11-09  6:24                     ` Parav Pandit
2023-11-13  3:37                       ` [virtio-comment] " Jason Wang
2023-11-15 17:38                         ` [virtio-comment] " Parav Pandit
2023-11-16  4:23                           ` [virtio-comment] " Jason Wang
2023-11-16  5:29                             ` [virtio-comment] " Parav Pandit
2023-11-16  5:51                               ` [virtio-comment] " Michael S. Tsirkin
2023-11-16  7:35                                 ` Michael S. Tsirkin
2023-11-16  7:40                                   ` [virtio-comment] " Parav Pandit
2023-11-16 11:48                                     ` [virtio-comment] " Michael S. Tsirkin
2023-11-16 16:26                                       ` [virtio-comment] " Parav Pandit
2023-11-16 17:25                                         ` [virtio-comment] " Michael S. Tsirkin
2023-11-16 17:29                                           ` [virtio-comment] " Parav Pandit
2023-11-16 18:20                                             ` [virtio-comment] " Michael S. Tsirkin
2023-11-17  3:02                                               ` [virtio-comment] " Parav Pandit
2023-11-17  8:46                                                 ` [virtio-comment] " Michael S. Tsirkin
2023-11-17  9:14                                                   ` [virtio-comment] " Parav Pandit
2023-11-17  9:37                                                     ` [virtio-comment] " Michael S. Tsirkin
2023-11-17  9:41                                                       ` [virtio-comment] " Parav Pandit
2023-11-17  9:44                                                         ` Parav Pandit
2023-11-17  9:51                                                         ` [virtio-comment] " Michael S. Tsirkin
2023-11-17  9:54                                                           ` Zhu, Lingshan
2023-11-17 10:02                                                             ` Michael S. Tsirkin
2023-11-17 10:10                                                               ` Parav Pandit
2023-11-17  9:57                                                           ` Parav Pandit
2023-11-17 10:37                                                             ` Michael S. Tsirkin
2023-11-17 10:52                                                               ` Parav Pandit
2023-11-17 11:32                                                                 ` Michael S. Tsirkin
2023-11-17 12:22                                                                   ` Parav Pandit
2023-11-17 12:40                                                                     ` Michael S. Tsirkin
2023-11-17 12:51                                                                       ` Parav Pandit
2023-11-21  5:16                                                                         ` Jason Wang
2023-11-21 16:29                                                                           ` Parav Pandit
2023-11-21 21:00                                                                             ` Michael S. Tsirkin
2023-11-22  3:46                                                                               ` Parav Pandit
2023-11-22  7:44                                                                                 ` Michael S. Tsirkin
2023-11-22  4:17                                                                             ` Jason Wang
2023-11-22  4:34                                                                               ` Parav Pandit
2023-11-24  3:15                                                                                 ` Jason Wang
2023-11-17  9:52                                                         ` Zhu, Lingshan
2023-11-17  9:59                                                           ` [virtio-comment] " Parav Pandit
2023-11-17 10:00                                                             ` [virtio-comment] " Zhu, Lingshan
2023-11-21  4:24                                                 ` Jason Wang
2023-11-21 16:26                                                   ` [virtio-comment] " Parav Pandit
2023-11-22  4:14                                                     ` [virtio-comment] " Jason Wang
2023-11-22  4:19                                                       ` [virtio-comment] " Parav Pandit
2023-11-24  3:09                                                         ` [virtio-comment] " Jason Wang
2023-11-16 10:28                                 ` Zhu, Lingshan
2023-11-16 11:59                                   ` Michael S. Tsirkin
2023-11-17  9:59                                     ` Zhu, Lingshan
2023-11-17 10:03                                       ` Parav Pandit
2023-11-17 11:00                                         ` Michael S. Tsirkin
2023-11-17 11:05                                           ` Parav Pandit
2023-11-17 11:33                                             ` Michael S. Tsirkin
2023-11-17 11:45                                               ` Parav Pandit
2023-11-17 12:04                                                 ` Michael S. Tsirkin
2023-11-17 12:11                                                   ` Parav Pandit
2023-11-17 12:32                                                     ` Michael S. Tsirkin
2023-11-17 13:03                                                       ` Parav Pandit
2023-11-17 14:00                                                         ` Michael S. Tsirkin
2023-11-17 14:48                                                           ` Parav Pandit
2023-11-17 14:59                                                             ` Michael S. Tsirkin
2023-11-21  6:55                                                             ` Jason Wang
2023-11-21 16:30                                                               ` Parav Pandit
2023-11-22  4:19                                                                 ` Jason Wang
2023-11-22  4:28                                                                   ` Parav Pandit
2023-11-24  3:08                                                                     ` Jason Wang
2023-11-22  2:31                                                               ` Si-Wei Liu
2023-11-22  5:31                                                                 ` Jason Wang
2023-11-23 13:19                                                                   ` Si-Wei Liu
2023-11-23 14:39                                                                     ` Michael S. Tsirkin
2023-11-24  2:29                                                                     ` Jason Wang
2023-11-28  3:00                                                                       ` Si-Wei Liu
2023-11-29  5:12                                                                         ` Jason Wang
2023-11-17 10:40                                       ` Michael S. Tsirkin
2023-11-21  4:23                                 ` Jason Wang
2023-11-21  7:14                               ` Jason Wang
2023-11-21 16:31                                 ` [virtio-comment] " Parav Pandit
2023-11-22  4:28                                   ` [virtio-comment] " Jason Wang
2023-11-22  6:41                                     ` [virtio-comment] " Parav Pandit
2023-11-24  3:06                                       ` [virtio-comment] " Jason Wang
2023-11-15  7:58                       ` Michael S. Tsirkin
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 7/8] admin: Add " Parav Pandit
2023-10-30 13:19 ` [virtio-comment] [PATCH v3 8/8] admin: Add requirements of write reporting commands Parav Pandit

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=20231115025214-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=lingshan.zhu@intel.com \
    --cc=maorg@nvidia.com \
    --cc=parav@nvidia.com \
    --cc=sburla@marvell.com \
    --cc=shahafs@nvidia.com \
    --cc=virtio-comment@lists.oasis-open.org \
    --cc=yishaih@nvidia.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.