All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiner Kallweit <hkallweit1@gmail.com>
To: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>,
	Jason Gunthorpe <jgg@ziepe.ca>, Joerg Roedel <jroedel@suse.de>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org
Cc: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	nic_swsd@realtek.com, "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Marco Elver <elver@google.com>
Subject: Re: [PATCH v5 4/7] r8169: Coalesce mac ocp write and modify for 8168ep start to reduce spinlock contention
Date: Mon, 30 Oct 2023 14:51:19 +0100	[thread overview]
Message-ID: <ef1c0b25-01f9-4693-b8cd-5fd72013629d@gmail.com> (raw)
In-Reply-To: <20231029183600.451694-4-mirsad.todorovac@alu.unizg.hr>

On 29.10.2023 19:36, Mirsad Goran Todorovac wrote:
> Repeated calls to r8168_mac_ocp_write() and r8168_mac_ocp_modify() in
> the startup of RTL8168ep involve implicit spin_lock_irqsave() and
> spin_unlock_irqrestore() on each invocation.
> 
> Coalesced with the corresponding helpers into r8168_mac_ocp_write_seq() and
> r8168_mac_ocp_modify_seq() with a sinqle paired spin_lock_irqsave() and
> spin_unlock_irqrestore(), these calls help reduce overall spinlock contention.
> 
> Fixes: ef712ede3541d ("r8169: add helper r8168_mac_ocp_modify")
> Cc: Heiner Kallweit <hkallweit1@gmail.com>
> Cc: Marco Elver <elver@google.com>
> Cc: nic_swsd@realtek.com
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: netdev@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Link: https://lore.kernel.org/lkml/20231028005153.2180411-1-mirsad.todorovac@alu.unizg.hr/
> Link: https://lore.kernel.org/lkml/20231028110459.2644926-1-mirsad.todorovac@alu.unizg.hr/
> Signed-off-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> ---
> v5:
>  added unlocked primitives to allow mac ocs modify grouping
>  applied coalescing of mac ocp writes/modifies for 8168ep and 8117
>  some formatting fixes to please checkpatch.pl
> 
> v4:
>  fixed complaints as advised by Heiner and checkpatch.pl
>  split the patch into five sections to be more easily manipulated and reviewed
>  introduced r8168_mac_ocp_write_seq()
>  applied coalescing of mac ocp writes/modifies for 8168H, 8125 and 8125B
> 
> v3:
>  removed register/mask pair array sentinels, so using ARRAY_SIZE().
>  avoided duplication of RTL_W32() call code as advised by Heiner.
> 
>  drivers/net/ethernet/realtek/r8169_main.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
> index 29ee93b8b702..27016aaeb6a0 100644
> --- a/drivers/net/ethernet/realtek/r8169_main.c
> +++ b/drivers/net/ethernet/realtek/r8169_main.c
> @@ -3326,6 +3326,12 @@ static void rtl_hw_start_8168ep_3(struct rtl8169_private *tp)
>  		{ 0x1e, 0x0000,	0x2000 },
>  	};
>  
> +	static const struct e_info_regmaskset e_info_8168ep_3_mod_1[] = {
> +		{ 0xd3e2, 0x0fff, 0x0271 },
> +		{ 0xd3e4, 0x00ff, 0x0000 },
> +		{ 0xe860, 0x0000, 0x0080 },
> +	};
> +
>  	rtl_ephy_init(tp, e_info_8168ep_3);
>  
>  	rtl_hw_start_8168ep(tp);
> @@ -3333,9 +3339,7 @@ static void rtl_hw_start_8168ep_3(struct rtl8169_private *tp)
>  	RTL_W8(tp, DLLPR, RTL_R8(tp, DLLPR) & ~PFM_EN);
>  	RTL_W8(tp, MISC_1, RTL_R8(tp, MISC_1) & ~PFM_D3COLD_EN);
>  
> -	r8168_mac_ocp_modify(tp, 0xd3e2, 0x0fff, 0x0271);
> -	r8168_mac_ocp_modify(tp, 0xd3e4, 0x00ff, 0x0000);
> -	r8168_mac_ocp_modify(tp, 0xe860, 0x0000, 0x0080);
> +	r8168_mac_ocp_modify_seq(tp, e_info_8168ep_3_mod_1);
>  }
>  
>  static void rtl_hw_start_8117(struct rtl8169_private *tp)

Same here, it' not worth it and makes the code harder to read.

  reply	other threads:[~2023-10-30 14:04 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-29 18:35 [PATCH v5 1/7] r8169: Add r8169_mac_ocp_(write|modify)_seq helpers to reduce spinlock contention Mirsad Goran Todorovac
2023-10-29 18:35 ` [PATCH v5 2/7] r8169: Coalesce RTL8411b PHY power-down recovery calls " Mirsad Goran Todorovac
2023-10-30 13:48   ` Heiner Kallweit
2023-10-29 18:35 ` [PATCH v5 3/7] r8169: Coalesce mac ocp write and modify for 8168H start " Mirsad Goran Todorovac
2023-10-30 13:50   ` Heiner Kallweit
2023-10-29 18:36 ` [PATCH v5 4/7] r8169: Coalesce mac ocp write and modify for 8168ep " Mirsad Goran Todorovac
2023-10-30 13:51   ` Heiner Kallweit [this message]
2023-10-29 18:36 ` [PATCH v5 5/7] r8169: Reduce spinlock contention for the start of RTL8117 Mirsad Goran Todorovac
2023-10-30 13:51   ` Heiner Kallweit
2023-10-29 18:36 ` [PATCH v5 6/7] r8169: Coalesce mac ocp write and modify for 8125 and 8125B start to reduce spinlocks Mirsad Goran Todorovac
2023-10-30 14:02   ` Heiner Kallweit
2023-10-30 15:02     ` Mirsad Todorovac
2023-10-30 15:53       ` Heiner Kallweit
2023-10-31  8:23       ` Akira Yokosawa
2023-10-31 13:39         ` Mirsad Todorovac
2023-11-26  1:42         ` Mirsad Todorovac
2023-10-29 18:36 ` [PATCH v5 7/7] r8169: Coalesce mac ocp write and modify for rtl_hw_init_8125 to reduce spinlock contention Mirsad Goran Todorovac
2023-10-30 14:03   ` Heiner Kallweit
2023-10-30 13:39 ` [PATCH v5 1/7] r8169: Add r8169_mac_ocp_(write|modify)_seq helpers " Heiner Kallweit

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=ef1c0b25-01f9-4693-b8cd-5fd72013629d@gmail.com \
    --to=hkallweit1@gmail.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=elver@google.com \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=joro@8bytes.org \
    --cc=jroedel@suse.de \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mirsad.todorovac@alu.unizg.hr \
    --cc=netdev@vger.kernel.org \
    --cc=nic_swsd@realtek.com \
    --cc=pabeni@redhat.com \
    --cc=robin.murphy@arm.com \
    --cc=will@kernel.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 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.