Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4926520ybb; Tue, 24 Mar 2020 07:50:48 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvcsh2+riP50tTRHQYSJFEiP/WGtFAHZD2yhm+XemgSp+2UF4GoXDjskKK3nOOfCLy/5NRv X-Received: by 2002:a9d:544:: with SMTP id 62mr20717818otw.355.1585061448251; Tue, 24 Mar 2020 07:50:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585061448; cv=none; d=google.com; s=arc-20160816; b=s0rLiYkZoBzQ+gzBfiB1UCGTpoFKmSV2upOC+MDH/5/+jmXqwqEpOA2SFJt6wojcsN jp2TviqkbNR3mW3VLHdIR/zmkP++ho1+k0r1tzNSbJEYmk1u1Gt8wEfTNvZYaYEO8a3y bflYNL1cDBZWyzjati9HRma40wJbehzfXQE66qrGnprxh0FkHU4JQqazucydO+RUtz9c yCwTO+xRLWD6YQMc+9IO2W/iXU7jiPY3x6rRxwj8NjPvHop+MTko8IPYM8D4Z8qK5wTu E3Dg1mh+C1PonvfTUQNXQgeMsVNf5Ixjpo8F5QDksaiyh0lW4gCFHpwjAS+7F/7omMKi wP+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=zI1iQYeYC9lt1kBrjAHropMSeNOxmOibl4mmPnXMvvM=; b=D2UjvkVwSmbNdRn6vWhuFXZSDzTFJKSmF3n5C8Q1ue46Bfv//W5uPEvZWRAa+xG/Wk EEf4hSqeDEUHB72sr98PVeonI8CKMlMmPSd/i/f1U/8hRO0o4Hiuf5Kzb/WYMJ76S78b V7jHCo3T2nEhEe+6pb490P5rT9tQeVaBMmuCchBmXBv37ch27PFf19KWwX3zenk44QXX EwR8tRYtpPVlCoFWi6kEm6QFc8AGFT8ecoEmKXFyB1Dlu3rn6rA22jrcSFDAZZCDcteQ XvyWzuQyQ6W7ov38hAYSu15j1LW9wTEO2gU0xXoGhuG8udQ9oQEvF4xPYhw2UAFq7u8+ oAaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=ekq2UcYP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f6si9629442otq.50.2020.03.24.07.50.34; Tue, 24 Mar 2020 07:50:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=ekq2UcYP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728089AbgCXOuP (ORCPT + 99 others); Tue, 24 Mar 2020 10:50:15 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:29816 "EHLO us-smtp-delivery-74.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727065AbgCXOuO (ORCPT ); Tue, 24 Mar 2020 10:50:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585061412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zI1iQYeYC9lt1kBrjAHropMSeNOxmOibl4mmPnXMvvM=; b=ekq2UcYP+UPerQIq4lgF2ENtrMjxRPcI49yhNpx+yD0xmG0DyWFL+7WF6hEaYkwzVQPFAF G5qiXLHQWdcwhUKLATWMkt9pzzH1EBubZhL9wcebnMSzjim1dNMVclR8/Q+UOENqlJDwr5 OtteiYk1fD3utmBepJswBqK1sR0lkoE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-401-dxBHpPlMMnKjecfa07nMQw-1; Tue, 24 Mar 2020 10:50:08 -0400 X-MC-Unique: dxBHpPlMMnKjecfa07nMQw-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 41EB58018A2; Tue, 24 Mar 2020 14:50:05 +0000 (UTC) Received: from w520.home (ovpn-112-162.phx2.redhat.com [10.3.112.162]) by smtp.corp.redhat.com (Postfix) with ESMTP id A77B4171B1; Tue, 24 Mar 2020 14:49:54 +0000 (UTC) Date: Tue, 24 Mar 2020 08:49:54 -0600 From: Alex Williamson To: "Dr. David Alan Gilbert" Cc: Yan Zhao , "intel-gvt-dev@lists.freedesktop.org" , "aik@ozlabs.ru" , "Zhengxiao.zx@alibaba-inc.com" , "shuangtai.tst@alibaba-inc.com" , "qemu-devel@nongnu.org" , "eauger@redhat.com" , "Liu, Yi L" , "Yang, Ziye" , "mlevitsk@redhat.com" , "pasic@linux.ibm.com" , "felipe@nutanix.com" , "Liu, Changpeng" , "Ken.Xue@amd.com" , "jonathan.davies@nutanix.com" , "He, Shaopeng" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "libvir-list@redhat.com" , "cohuck@redhat.com" , "Tian, Kevin" , "zhenyuw@linux.intel.com" , "Wang, Zhi A" , "cjia@nvidia.com" , "kwankhede@nvidia.com" , "berrange@redhat.com" , "dinechin@redhat.com" Subject: Re: [PATCH v4 0/2] introduction of migration_version attribute for VFIO live migration Message-ID: <20200324084954.0dd835e2@w520.home> In-Reply-To: <20200324092331.GA2645@work-vm> References: <20190531004438.24528-1-yan.y.zhao@intel.com> <20190603132932.1b5dc7fe@x1.home> <20190604003422.GA30229@joy-OptiPlex-7040> <20200323152959.1c39e9a7@w520.home> <20200324035316.GE5456@joy-OptiPlex-7040> <20200324092331.GA2645@work-vm> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 24 Mar 2020 09:23:31 +0000 "Dr. David Alan Gilbert" wrote: > * Yan Zhao (yan.y.zhao@intel.com) wrote: > > On Tue, Mar 24, 2020 at 05:29:59AM +0800, Alex Williamson wrote: > > > On Mon, 3 Jun 2019 20:34:22 -0400 > > > Yan Zhao wrote: > > > > > > > On Tue, Jun 04, 2019 at 03:29:32AM +0800, Alex Williamson wrote: > > > > > On Thu, 30 May 2019 20:44:38 -0400 > > > > > Yan Zhao wrote: > > > > > > > > > > > This patchset introduces a migration_version attribute under sysfs of VFIO > > > > > > Mediated devices. > > > > > > > > > > > > This migration_version attribute is used to check migration compatibility > > > > > > between two mdev devices of the same mdev type. > > > > > > > > > > > > Patch 1 defines migration_version attribute in > > > > > > Documentation/vfio-mediated-device.txt > > > > > > > > > > > > Patch 2 uses GVT as an example to show how to expose migration_version > > > > > > attribute and check migration compatibility in vendor driver. > > > > > > > > > > Thanks for iterating through this, it looks like we've settled on > > > > > something reasonable, but now what? This is one piece of the puzzle to > > > > > supporting mdev migration, but I don't think it makes sense to commit > > > > > this upstream on its own without also defining the remainder of how we > > > > > actually do migration, preferably with more than one working > > > > > implementation and at least prototyped, if not final, QEMU support. I > > > > > hope that was the intent, and maybe it's now time to look at the next > > > > > piece of the puzzle. Thanks, > > > > > > > > > > Alex > > > > > > > > Got it. > > > > Also thank you and all for discussing and guiding all along:) > > > > We'll move to the next episode now. > > > > > > Hi Yan, > > > > > > As we're hopefully moving towards a migration API, would it make sense > > > to refresh this series at the same time? I think we're still expecting > > > a vendor driver implementing Kirti's migration API to also implement > > > this sysfs interface for compatibility verification. Thanks, > > > > > Hi Alex > > Got it! > > Thanks for reminding of this. And as now we have vfio-pci implementing > > vendor ops to allow live migration of pass-through devices, is it > > necessary to implement similar sysfs node for those devices? > > or do you think just PCI IDs of those devices are enough for libvirt to > > know device compatibility ? > > Wasn't the problem that we'd have to know how to check for things like: > a) Whether different firmware versions in the device were actually > compatible > b) Whether minor hardware differences were compatible - e.g. some > hardware might let you migrate to the next version of hardware up. Yes, minor changes in hardware or firmware that may not be represented in the device ID or hardware revision. Also the version is as much for indicating the compatibility of the vendor defined migration protocol as it is for the hardware itself. I certainly wouldn't be so bold as to create a protocol that is guaranteed compatible forever. We'll need to expose the same sysfs attribute in some standard location for non-mdev devices. I assume vfio-pci would provide the vendor ops some mechanism to expose these in a standard namespace of sysfs attributes under the device itself. Perhaps that indicates we need to link the mdev type version under the mdev device as well to make this transparent to userspace tools like libvirt. Thanks, Alex