RE: [PATCH net-next] hyperv: Add handler for RNDIS_STATUS_NETWORK_CHANGE event

From: Haiyang Zhang
Date: Fri Jun 20 2014 - 12:10:50 EST




> -----Original Message-----
> From: Greg KH [mailto:greg@xxxxxxxxx]
> Sent: Friday, June 20, 2014 1:12 AM
> To: Olaf Hering
> Cc: Haiyang Zhang; netdev@xxxxxxxxxxxxxxx; jasowang@xxxxxxxxxx;
> driverdev-devel@xxxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> davem@xxxxxxxxxxxxx
> Subject: Re: [PATCH net-next] hyperv: Add handler for
> RNDIS_STATUS_NETWORK_CHANGE event
>
> On Fri, Jun 20, 2014 at 06:57:04AM +0200, Olaf Hering wrote:
> > On Thu, Jun 19, Haiyang Zhang wrote:
> >
> > > The RNDIS_STATUS_NETWORK_CHANGE event is received after the Hyper-V
> host
> > > sleep or hibernation. We refresh network at this time.
> >
> > > + char *argv[] = { "/etc/init.d/network", "restart", NULL };
> >
> > What happens if that file does not exist? Dead network in the guest?
> > I tend to think if a VM with PV drivers goes to sleep it has to go
> > through the whole suspend/resume cycle, very much like the "LID
> closed"
> > event. So I think this and the other fbdev change that is floating
> > around is wrong.
>
> Ah, and what about systems with no /etc/init.d/ at all (like
> systemd-based ones)? You can't have a kernel driver ask userspace to
> restart all networking connections, that seems really wrong.

Olaf and Greg,

Thanks for your reviews.
On Server Hyper-V, the host sleep/hibernation is not supported. So this
event won't happen on most deployment of Hyper-V.

On Client Hyper-V (e.g. Windows 8+ on a laptop), the host sleep/hibernation
is supported. If the laptop is moved to another network during sleep, we
previously need to manually refresh the network (network restart) to renew
DHCP. With this patch, the network is refreshed on the event.

This command ("/etc/init.d/network restart") exists on our supported distros
currently. We will also look into some better ways to refresh the network for
the distros without this command. I have tried setting IF_OPER_DORMANT then
IF_OPER_UP, but not working. I will look into the suspend/resume cycle as
well.

Thanks,
- Haiyang


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/