Hi Yuanhan, On 01/23/2017 02:04 PM, Yuanhan Liu wrote:
I made a vhost ABI/API refactoring at v16.04, meant to avoid such issue forever. Well, apparently, I lied.People are looking for more vhost-user options now days, other than vhost-user net only. For example, SPDK (Storage Performance Development Kit) are looking for chance of vhost-user SCSI and vhost-user block. Apparently, they also need a vhost-user backend, while DPDK already has a (mature enough) backend, they don't want to implement it again from scratch. They want to leverage the one DPDK provides. However, the last refactoring hasn't done that right, at least it's not friendly for extending vhost-user to add more devices support. For example, different virtio devices has its own feature set, while APIs like rte_vhost_feature_disable(feature_mask) have no option to tell the device type. Thus, a more proper API should look like: rte_vhost_feature_disable(device_type, feature_mask);
I wonder if we could also change it to be per-instance, instead of disabling features globally: rte_vhost_feature_disable(vid, device_type, feature_mask); It could be useful for live-migration with different backend versions on the hosts, as it would allow to run instances with different compat modes (like running vhost's DPDK v17.08 with v17.05-only supported features). I made a proposal about cross-version migration, but we are far from a conclusion on the design.
Besides that, few public files and structures should be renamed, to not let it bind to virtio-net. Specifically, they are: - virtio_net_device_ops --> vhost_device_ops - rte_virtio_net.h --> rte_vhost.h Signed-off-by: Yuanhan Liu <[email protected]>
Anyway, the change you propose is necessary: Acked-by: Maxime Coquelin <[email protected]> Thanks, Maxime

