All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>,
	Tony Nguyen <anthony.l.nguyen@intel.com>,
	"David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Konstantin Khlebnikov <khlebnikov@openvz.org>,
	Zheng Yan <zheng.z.yan@intel.com>,
	Sasha Neftin <sasha.neftin@intel.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH 1/3] e1000e: Remove redundant runtime resume for ethtool_ops
Date: Tue, 26 Mar 2024 14:35:44 +0000	[thread overview]
Message-ID: <20240326143544.GY403975@kernel.org> (raw)
In-Reply-To: <20240325222951.1460656-2-helgaas@kernel.org>

On Mon, Mar 25, 2024 at 05:29:49PM -0500, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> e60b22c5b7e5 ("e1000e: fix accessing to suspended device") added
> ethtool_ops.begin() and .complete(), which used pm_runtime_get_sync() to
> resume suspended devices before any ethtool_ops callback and allow suspend
> after it completed.
> 
> 3ef672ab1862 ("e1000e: ethtool unnecessarily takes device out of RPM
> suspend") removed ethtool_ops.begin() and .complete() and instead did
> pm_runtime_get_sync() only in the individual ethtool_ops callbacks that
> access device registers.
> 
> Subsequently, f32a21376573 ("ethtool: runtime-resume netdev parent before
> ethtool ioctl ops") added pm_runtime_get_sync() in the dev_ethtool() path,
> so the device is resumed before *any* ethtool_ops callback, as it was
> before 3ef672ab1862.
> 
> Remove most runtime resumes from ethtool_ops, which are now redundant
> because the resume has already been done by dev_ethtool().  This is
> essentially a revert of 3ef672ab1862 ("e1000e: ethtool unnecessarily takes
> device out of RPM suspend").
> 
> There are a couple subtleties:
> 
>   - Prior to 3ef672ab1862, the device was resumed only for the duration of
>     a single ethtool callback.  3ef672ab1862 changed e1000_set_phys_id() so
>     the device was resumed for ETHTOOL_ID_ACTIVE and remained resumed until
>     a subsequent callback for ETHTOOL_ID_INACTIVE.  Preserve that part of
>     3ef672ab1862 so the device will not be runtime suspended while in the
>     ETHTOOL_ID_ACTIVE state.
> 
>   - 3ef672ab1862 added "if (!pm_runtime_suspended())" in before reading the
>     STATUS register in e1000_get_settings().  This was racy and is now
>     unnecessary because dev_ethtool() has resumed the device already, so
>     revert that.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Reviewed-by: Simon Horman <horms@kernel.org>


WARNING: multiple messages have this Message-ID (diff)
From: Simon Horman <horms@kernel.org>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>,
	Sasha Neftin <sasha.neftin@intel.com>,
	intel-wired-lan@lists.osuosl.org,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	Eric Dumazet <edumazet@google.com>,
	Tony Nguyen <anthony.l.nguyen@intel.com>,
	netdev@vger.kernel.org, Zheng Yan <zheng.z.yan@intel.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	"David S . Miller" <davem@davemloft.net>,
	Heiner Kallweit <hkallweit1@gmail.com>
Subject: Re: [Intel-wired-lan] [PATCH 1/3] e1000e: Remove redundant runtime resume for ethtool_ops
Date: Tue, 26 Mar 2024 14:35:44 +0000	[thread overview]
Message-ID: <20240326143544.GY403975@kernel.org> (raw)
In-Reply-To: <20240325222951.1460656-2-helgaas@kernel.org>

On Mon, Mar 25, 2024 at 05:29:49PM -0500, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> e60b22c5b7e5 ("e1000e: fix accessing to suspended device") added
> ethtool_ops.begin() and .complete(), which used pm_runtime_get_sync() to
> resume suspended devices before any ethtool_ops callback and allow suspend
> after it completed.
> 
> 3ef672ab1862 ("e1000e: ethtool unnecessarily takes device out of RPM
> suspend") removed ethtool_ops.begin() and .complete() and instead did
> pm_runtime_get_sync() only in the individual ethtool_ops callbacks that
> access device registers.
> 
> Subsequently, f32a21376573 ("ethtool: runtime-resume netdev parent before
> ethtool ioctl ops") added pm_runtime_get_sync() in the dev_ethtool() path,
> so the device is resumed before *any* ethtool_ops callback, as it was
> before 3ef672ab1862.
> 
> Remove most runtime resumes from ethtool_ops, which are now redundant
> because the resume has already been done by dev_ethtool().  This is
> essentially a revert of 3ef672ab1862 ("e1000e: ethtool unnecessarily takes
> device out of RPM suspend").
> 
> There are a couple subtleties:
> 
>   - Prior to 3ef672ab1862, the device was resumed only for the duration of
>     a single ethtool callback.  3ef672ab1862 changed e1000_set_phys_id() so
>     the device was resumed for ETHTOOL_ID_ACTIVE and remained resumed until
>     a subsequent callback for ETHTOOL_ID_INACTIVE.  Preserve that part of
>     3ef672ab1862 so the device will not be runtime suspended while in the
>     ETHTOOL_ID_ACTIVE state.
> 
>   - 3ef672ab1862 added "if (!pm_runtime_suspended())" in before reading the
>     STATUS register in e1000_get_settings().  This was racy and is now
>     unnecessary because dev_ethtool() has resumed the device already, so
>     revert that.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Reviewed-by: Simon Horman <horms@kernel.org>


  reply	other threads:[~2024-03-26 14:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-25 22:29 [PATCH 0/3] net/e1000e, igb, igc: Remove redundant runtime resume Bjorn Helgaas
2024-03-25 22:29 ` [Intel-wired-lan] " Bjorn Helgaas
2024-03-25 22:29 ` [PATCH 1/3] e1000e: Remove redundant runtime resume for ethtool_ops Bjorn Helgaas
2024-03-25 22:29   ` [Intel-wired-lan] " Bjorn Helgaas
2024-03-26 14:35   ` Simon Horman [this message]
2024-03-26 14:35     ` Simon Horman
2024-04-02 18:32   ` naamax.meir
2024-04-02 18:32     ` naamax.meir
2024-03-25 22:29 ` [PATCH 2/3] igb: " Bjorn Helgaas
2024-03-25 22:29   ` [Intel-wired-lan] " Bjorn Helgaas
2024-03-26 14:36   ` Simon Horman
2024-03-26 14:36     ` [Intel-wired-lan] " Simon Horman
2024-04-05 20:41   ` Mekala, SunithaX D
2024-04-05 20:41     ` Mekala, SunithaX D
2024-03-25 22:29 ` [Intel-wired-lan] [PATCH 3/3] igc: Remove redundant runtime resume for ethtool ops Bjorn Helgaas
2024-03-25 22:29   ` Bjorn Helgaas
2024-03-26 14:36   ` Simon Horman
2024-03-26 14:36     ` [Intel-wired-lan] " Simon Horman
2024-04-08 11:32   ` naamax.meir
2024-04-08 11:32     ` naamax.meir

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=20240326143544.GY403975@kernel.org \
    --to=horms@kernel.org \
    --cc=anthony.l.nguyen@intel.com \
    --cc=bhelgaas@google.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=helgaas@kernel.org \
    --cc=hkallweit1@gmail.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jesse.brandeburg@intel.com \
    --cc=khlebnikov@openvz.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=sasha.neftin@intel.com \
    --cc=zheng.z.yan@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.