linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@armlinux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH net-next v3 02/10] net: mvpp2: phylink support
Date: Fri, 31 Aug 2018 16:21:31 +0100	[thread overview]
Message-ID: <20180831152131.GN30658@n2100.armlinux.org.uk> (raw)
In-Reply-To: <20180831143721.GB19733@lunn.ch>

On Fri, Aug 31, 2018 at 04:37:21PM +0200, Andrew Lunn wrote:
> > Can you see any down-sides to moving the netif_carrier_off() in
> > mvneta_open() to phylink_start() ?
> 
> This sounds like a good idea.
> 
> What happens on the resume path?

Suspend/resume should be safe, because we force the link down when
phylink_stop() is called.

Looking at mvneta again, mvneta_stop_dev() is called in the suspend
path, which then calls phylink_stop().  This causes us to call
mac_link_down() and netif_carrier_off().  So, at the point of suspend,
the netdev carrier is set down and the mac taken down.

When resuming, mvneta_start_dev() calls phylink_start(), which undoes
the changes above, calling mac_link_up() if the link is now up.

So, as long as netdevs don't mess with the carrier state in their
suspend/resume functions, and they call phylink_start()/phylink_stop()
there, everything will work as intended - and that's really the key
issue here.

> I've not looked at any code.... Just thinking aloud. Can we suspend
> with the link up? When we resume, so long as we were not doing WoL,
> the link is down. If phylink_start() is not called, we have this miss
> match again.

It depends what you mean by "link up".  Are you talking about the PHYs
link to the external world (which is normally what's responsible for
handling WOL) or are you talking about keeping the MAC and its rings
alive so it can process packets while suspended.

If the former, that's the responsibility of phylib to manage, if the
latter, the netdev must not call phylink_stop() in its suspend function.

Either way, not messing with the netdev's carrier state is key.

The only exception to this is that the carrier should be down at open()
time.  However, I don't see anything in net/core that fiddles with the
carrier state for a net device, so the default state at boot should be
carrier-off.

I think some questions for Antoine are:

- what is the state of the carrier at the start of mvpp2_start() ?
- when does the missing call to mac_link_up() occur - is it the first
  time the netdev is brought up, or a subsequent time?
- is the carrier always off at the end of mvpp2_stop()?

Having a local reproducer may help, so if you can point to a DT fragment
and set of steps to reproduce, it could be helpful.

Thanks.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 13.8Mbps down 630kbps up
According to speedtest.net: 13Mbps down 490kbps up

  reply	other threads:[~2018-08-31 15:21 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-17  8:29 [PATCH net-next v3 00/10] net: mvpp2: phylink conversion Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 01/10] net: mvpp2: align the ethtool ops definition Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 02/10] net: mvpp2: phylink support Antoine Tenart
2018-08-27 16:50   ` Russell King - ARM Linux
2018-08-31 13:36     ` Antoine Tenart
2018-08-31 14:11       ` Russell King - ARM Linux
2018-08-31 14:37         ` Andrew Lunn
2018-08-31 15:21           ` Russell King - ARM Linux [this message]
2018-09-12 14:34             ` Antoine Tenart
2018-08-31 15:08         ` Antoine Tenart
2018-08-31 14:18       ` Andrew Lunn
2018-08-31 14:23         ` Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 03/10] phy: add 2.5G SGMII mode to the phy_mode enum Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 04/10] phy: cp110-comphy: 2.5G SGMII mode Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 05/10] net: mvpp2: 1000baseX support Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 06/10] net: mvpp2: 2500baseX support Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 07/10] arm64: dts: marvell: mcbin: add 10G SFP support Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 08/10] arm64: dts: marvell: mcbin: enable the fourth network interface Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 09/10] arm64: dts: marvell: 8040-db: describe the 10G interfaces as fixed-link Antoine Tenart
2018-05-17  8:29 ` [PATCH net-next v3 10/10] arm64: dts: marvell: 7040-db: describe the 10G interface " Antoine Tenart
2018-05-17  9:18 ` [PATCH net-next v3 00/10] net: mvpp2: phylink conversion Russell King - ARM Linux
2018-05-17  9:26   ` Antoine Tenart
2018-05-17 12:23 ` Gregory CLEMENT
2018-05-17 20:12 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180831152131.GN30658@n2100.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).