Subject: Re: Regression: Network link not coming up after suspend/resume cycle

From: Jan Janssen <[email-masked]>
Date: Mon, 30 Sep 2019 20:34:33 +0200

On Monday, 30 September 2019 01:26:21 CEST Vladimir Oltean wrote:
> Hi Jan,
>
> On Sun, 29 Sep 2019 at 22:25, Jan Janssen <[email-masked]> wrote:
> > Hi,
> >
> > I've been noticing lately that my network link sometimes does not go up
> > after a suspend resume cycle (roughly 1 or 2 out of 10 times). This also
> > sometimes happens with a fresh boot too. Doing a manual
> > "ip link set down/up" cycle resolves this issue.
> >
> > I was able to bisect it to the commit below (or hope so) and also CCed
> > the maintainer for my driver too.
> >
> > This is happening on a up-to-date Arch Linux system with a Intel I219-V.
> >
> > Jan
> >
> >
> >
> > 7ede7b03484bbb035aa5be98c45a40cfabdc0738 is the first bad commit
> > commit 7ede7b03484bbb035aa5be98c45a40cfabdc0738
> > Author: Vedang Patel <[email-masked]>
> > Date:   Tue Jun 25 15:07:18 2019 -0700
> >
> > taprio: make clock reference conversions easier
> >
> > Later in this series we will need to transform from
> > CLOCK_MONOTONIC (used in TCP) to the clock reference used in TAPRIO.
> >
> > Signed-off-by: Vinicius Costa Gomes <[email-masked]>
> > Signed-off-by: Vedang Patel <[email-masked]>
> > Signed-off-by: David S. Miller <[email-masked]>
> >
> > net/sched/sch_taprio.c | 30 ++++++++++++++++++++++--------
> > 1 file changed, 22 insertions(+), 8 deletions(-)
>
> That is a mechanical patch that produces no behavior change.
> Furthermore, even if distributions were to build with
> CONFIG_NET_SCH_TAPRIO (which there aren't many reasons to), it is
> extremely likely that this qdisc is not enabled by default on your
> interface. Are you voluntarily using taprio?
> You might need to bisect again.
>
> Regards,
> -Vladimir

You were right. The module wasn't even built.

I did a more careful bisection this time and got me this commit:

59653e6497d16f7ac1d9db088f3959f57ee8c3db is the first bad commit
commit 59653e6497d16f7ac1d9db088f3959f57ee8c3db
Author: Detlev Casanova <[email-masked]>
Date:   Sat Jun 22 23:14:37 2019 -0400

    e1000e: Make watchdog use delayed work

    Use delayed work instead of timers to run the watchdog of the e1000e
    driver.

    Simplify the code with one less middle function.

    Signed-off-by: Detlev Casanova <[email-masked]>
    Tested-by: Aaron Brown <[email-masked]>
    Signed-off-by: Jeff Kirsher <[email-masked]>

 drivers/net/ethernet/intel/e1000e/e1000.h  |  5 +--
 drivers/net/ethernet/intel/e1000e/netdev.c | 54 +++++++++++++++
+--------------
 2 files changed, 32 insertions(+), 27 deletions(-)

This time I also went and reverted it on top of v5.3, which successfully made
the issue go away. I've CC'ed the author of the patch.

Jan