On Thu, Mar 16, 2017 at 10:22:27AM +0100, Maxime Coquelin wrote: > > > On 03/16/2017 08:35 AM, Yuanhan Liu wrote: > >On Tue, Mar 14, 2017 at 12:02:59PM +0100, Maxime Coquelin wrote: > >>>+uint64_t > >>>+rte_vhost_get_negotiated_features(int vid) > >>>+{ > >>>+ struct virtio_net *dev; > >>>+ > >>>+ dev = get_device(vid); > >>>+ if (!dev) > >>>+ return -1; > >>>+ > >>>+ return dev->features; > >>>+} > >>Are we sure the negotiation is done when we can get the device? > > > >Yes. However, one thing worth noting is that the features may change > >after the new_device() callback. Notablely, when live migration starts > >/ends, the VHOST_F_LOG_ALL will be set/cleared, respectively. > > Good point. > > >From that point of view, we need a new callback, something like > >features_changed(), or live_migration_starts()? Or a better name? > > I would name it features_changed() to be future-proof (even if I don't > foresee other cases than live migration right now).
Right, it will be "features_changed()" then. --yliu