[dpdk-dev] [PATCH v4 5/8] net/vdev_netvsc: implement core functionality

Matan Azrad matan at mellanox.com
Thu Jan 18 19:28:12 CET 2018



From: Stephen Hemminger, Thursday, January 18, 2018 8:26 PM
> On Thu, 18 Jan 2018 08:43:43 +0000
> Matan Azrad <matan at mellanox.com> wrote:
> 
> > +
> > +/**
> > + * Alarm callback that regularly probes system network interfaces.
> > + *
> > + * This callback runs at a frequency determined by
> > +VDEV_NETVSC_PROBE_MS as
> > + * long as an vdev_netvsc context instance exists.
> > + *
> > + * @param arg
> > + *   Ignored.
> > + */
> > +static void
> > +vdev_netvsc_alarm(__rte_unused void *arg) {
> > +	struct vdev_netvsc_ctx *ctx;
> > +	int ret;
> > +
> > +	LIST_FOREACH(ctx, &vdev_netvsc_ctx_list, entry) {
> > +		ret =
> vdev_netvsc_foreach_iface(vdev_netvsc_device_probe, ctx);
> > +		if (ret)
> > +			break;
> > +	}
> > +	if (!vdev_netvsc_ctx_count)
> > +		return;
> > +	ret = rte_eal_alarm_set(VDEV_NETVSC_PROBE_MS * 1000,
> > +				vdev_netvsc_alarm, NULL);
> > +	if (ret < 0) {
> > +		DRV_LOG(ERR, "unable to reschedule alarm callback: %s",
> > +			rte_strerror(-ret));
> > +	}
> > +}
> > +
> 
> Not a fan of polling for network interface changes.
> Alarms in core code make life difficult for applications.
> 

What is the connection to application? It is netvsc driver alarm.

> Also, at least on current Azure infrastructure hotplug of netvsc devices is not
> supported.
> 
It detects the PCI device hotplug, no netvsc device.

> Can we just wait until proper hotplug API from kernel (ie read netlink
> uevent) is done?

Why?


More information about the dev mailing list