All of lore.kernel.org
 help / color / mirror / Atom feed
From: "naamax.meir" <naamax.meir@linux.intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>,
	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>
Cc: Sasha Neftin <sasha.neftin@intel.com>,
	netdev@vger.kernel.org,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	intel-wired-lan@lists.osuosl.org,
	Zheng Yan <zheng.z.yan@intel.com>,
	Konstantin Khlebnikov <khlebnikov@openvz.org>,
	Heiner Kallweit <hkallweit1@gmail.com>
Subject: Re: [Intel-wired-lan] [PATCH 1/3] e1000e: Remove redundant runtime resume for ethtool_ops
Date: Tue, 2 Apr 2024 21:32:28 +0300	[thread overview]
Message-ID: <b3f92716-9532-4bef-94d7-502689fc2b04@linux.intel.com> (raw)
In-Reply-To: <20240325222951.1460656-2-helgaas@kernel.org>

On 3/26/2024 00:29, 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>
> ---
>   drivers/net/ethernet/intel/e1000e/ethtool.c | 62 ++-------------------
>   1 file changed, 6 insertions(+), 56 deletions(-)

Tested-by: Naama Meir <naamax.meir@linux.intel.com>

WARNING: multiple messages have this Message-ID (diff)
From: "naamax.meir" <naamax.meir@linux.intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>,
	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>
Cc: Sasha Neftin <sasha.neftin@intel.com>,
	netdev@vger.kernel.org,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	linux-kernel@vger.kernel.org, Zheng Yan <zheng.z.yan@intel.com>,
	intel-wired-lan@lists.osuosl.org,
	Bjorn Helgaas <bhelgaas@google.com>,
	Konstantin Khlebnikov <khlebnikov@openvz.org>,
	Heiner Kallweit <hkallweit1@gmail.com>
Subject: Re: [Intel-wired-lan] [PATCH 1/3] e1000e: Remove redundant runtime resume for ethtool_ops
Date: Tue, 2 Apr 2024 21:32:28 +0300	[thread overview]
Message-ID: <b3f92716-9532-4bef-94d7-502689fc2b04@linux.intel.com> (raw)
In-Reply-To: <20240325222951.1460656-2-helgaas@kernel.org>

On 3/26/2024 00:29, 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>
> ---
>   drivers/net/ethernet/intel/e1000e/ethtool.c | 62 ++-------------------
>   1 file changed, 6 insertions(+), 56 deletions(-)

Tested-by: Naama Meir <naamax.meir@linux.intel.com>

  parent reply	other threads:[~2024-04-02 18:32 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
2024-03-26 14:35     ` [Intel-wired-lan] " Simon Horman
2024-04-02 18:32   ` naamax.meir [this message]
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=b3f92716-9532-4bef-94d7-502689fc2b04@linux.intel.com \
    --to=naamax.meir@linux.intel.com \
    --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.