On Mon, 2020-07-20 at 11:41 +0800, Jason Wang wrote:
On 2020/7/18 上午12:12, Alex Williamson wrote:
> On Thu, 16 Jul 2020 16:32:30 +0800
> Yan Zhao <yan.y.zhao(a)intel.com> wrote:
>
> > On Thu, Jul 16, 2020 at 12:16:26PM +0800, Jason Wang wrote:
> > > On 2020/7/14 上午7:29, Yan Zhao wrote:
> > > > hi folks,
> > > > we are defining a device migration compatibility interface that helps
upper
> > > > layer stack like openstack/ovirt/libvirt to check if two devices are
> > > > live migration compatible.
> > > > The "devices" here could be MDEVs, physical devices, or
hybrid of the two.
> > > > e.g. we could use it to check whether
> > > > - a src MDEV can migrate to a target MDEV,
> > > > - a src VF in SRIOV can migrate to a target VF in SRIOV,
> > > > - a src MDEV can migration to a target VF in SRIOV.
> > > > (e.g. SIOV/SRIOV backward compatibility case)
> > > >
> > > > The upper layer stack could use this interface as the last step to
check
> > > > if one device is able to migrate to another device before triggering
a real
> > > > live migration procedure.
> > > > we are not sure if this interface is of value or help to you. please
don't
> > > > hesitate to drop your valuable comments.
> > > >
> > > >
> > > > (1) interface definition
> > > > The interface is defined in below way:
> > > >
> > > > __ userspace
> > > > /\ \
> > > > / \write
> > > > / read \
> > > > ________/__________ ___\|/_____________
> > > > | migration_version | | migration_version |-->check
migration
> > > > --------------------- --------------------- compatibility
> > > > device A device B
> > > >
> > > >
> > > > a device attribute named migration_version is defined under each
device's
> > > > sysfs node. e.g.
(/sys/bus/pci/devices/0000\:00\:02.0/$mdev_UUID/migration_version).
> > >
> > > Are you aware of the devlink based device management interface that is
> > > proposed upstream? I think it has many advantages over sysfs, do you
> > > consider to switch to that?
>
> Advantages, such as?
My understanding for devlink(netlink) over sysfs (some are mentioned at
the time of vDPA sysfs mgmt API discussion) are:
i tought netlink was used more a
as a configuration protocoal to qurry and confire nic and i guess
other devices in its devlink form requireint a tool to be witten that can speak the
protocal to interact with.
the primary advantate of sysfs is that everything is just a file. there are no addtional
depleenceis
needed and unlike netlink there are not interoperatblity issues in a coanitnerised env. if
you are using diffrenet
version of libc and gcc in the contaienr vs the host my understanding is tools like
ethtool from ubuntu deployed
in a container on a centos host can have issue communicating with the host kernel. if its
jsut a file unless
the format the data is returnin in chagnes or the layout of sysfs changes its compatiable
regardless of what you
use to read it.
- existing users (NIC, crypto, SCSI, ib), mature and stable
- much better error reporting (ext_ack other than string or errno)
- namespace aware
- do not couple with kobject
Thanks