* [PATCH net] igb: Avoid starting unnecessary workqueues
@ 2023-08-21 17:19 Tony Nguyen
2023-08-22 7:34 ` Simon Horman
2023-08-23 0:30 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Tony Nguyen @ 2023-08-21 17:19 UTC (permalink / raw)
To: davem, kuba, pabeni, edumazet, netdev
Cc: Alessio Igor Bogani, anthony.l.nguyen, richardcochran, leon,
rrameshbabu, Arpana Arland
From: Alessio Igor Bogani <alessio.bogani@elettra.eu>
If ptp_clock_register() fails or CONFIG_PTP isn't enabled, avoid starting
PTP related workqueues.
In this way we can fix this:
BUG: unable to handle page fault for address: ffffc9000440b6f8
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 100000067 P4D 100000067 PUD 1001e0067 PMD 107dc5067 PTE 0
Oops: 0000 [#1] PREEMPT SMP
[...]
Workqueue: events igb_ptp_overflow_check
RIP: 0010:igb_rd32+0x1f/0x60
[...]
Call Trace:
igb_ptp_read_82580+0x20/0x50
timecounter_read+0x15/0x60
igb_ptp_overflow_check+0x1a/0x50
process_one_work+0x1cb/0x3c0
worker_thread+0x53/0x3f0
? rescuer_thread+0x370/0x370
kthread+0x142/0x160
? kthread_associate_blkcg+0xc0/0xc0
ret_from_fork+0x1f/0x30
Fixes: 1f6e8178d685 ("igb: Prevent dropped Tx timestamps via work items and interrupts.")
Fixes: d339b1331616 ("igb: add PTP Hardware Clock code")
Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
drivers/net/ethernet/intel/igb/igb_ptp.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_ptp.c b/drivers/net/ethernet/intel/igb/igb_ptp.c
index 405886ee5261..319c544b9f04 100644
--- a/drivers/net/ethernet/intel/igb/igb_ptp.c
+++ b/drivers/net/ethernet/intel/igb/igb_ptp.c
@@ -1385,18 +1385,6 @@ void igb_ptp_init(struct igb_adapter *adapter)
return;
}
- spin_lock_init(&adapter->tmreg_lock);
- INIT_WORK(&adapter->ptp_tx_work, igb_ptp_tx_work);
-
- if (adapter->ptp_flags & IGB_PTP_OVERFLOW_CHECK)
- INIT_DELAYED_WORK(&adapter->ptp_overflow_work,
- igb_ptp_overflow_check);
-
- adapter->tstamp_config.rx_filter = HWTSTAMP_FILTER_NONE;
- adapter->tstamp_config.tx_type = HWTSTAMP_TX_OFF;
-
- igb_ptp_reset(adapter);
-
adapter->ptp_clock = ptp_clock_register(&adapter->ptp_caps,
&adapter->pdev->dev);
if (IS_ERR(adapter->ptp_clock)) {
@@ -1406,6 +1394,18 @@ void igb_ptp_init(struct igb_adapter *adapter)
dev_info(&adapter->pdev->dev, "added PHC on %s\n",
adapter->netdev->name);
adapter->ptp_flags |= IGB_PTP_ENABLED;
+
+ spin_lock_init(&adapter->tmreg_lock);
+ INIT_WORK(&adapter->ptp_tx_work, igb_ptp_tx_work);
+
+ if (adapter->ptp_flags & IGB_PTP_OVERFLOW_CHECK)
+ INIT_DELAYED_WORK(&adapter->ptp_overflow_work,
+ igb_ptp_overflow_check);
+
+ adapter->tstamp_config.rx_filter = HWTSTAMP_FILTER_NONE;
+ adapter->tstamp_config.tx_type = HWTSTAMP_TX_OFF;
+
+ igb_ptp_reset(adapter);
}
}
--
2.38.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net] igb: Avoid starting unnecessary workqueues
2023-08-21 17:19 [PATCH net] igb: Avoid starting unnecessary workqueues Tony Nguyen
@ 2023-08-22 7:34 ` Simon Horman
2023-08-23 0:30 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Simon Horman @ 2023-08-22 7:34 UTC (permalink / raw)
To: Tony Nguyen
Cc: davem, kuba, pabeni, edumazet, netdev, Alessio Igor Bogani,
richardcochran, leon, rrameshbabu, Arpana Arland
On Mon, Aug 21, 2023 at 10:19:27AM -0700, Tony Nguyen wrote:
> From: Alessio Igor Bogani <alessio.bogani@elettra.eu>
>
> If ptp_clock_register() fails or CONFIG_PTP isn't enabled, avoid starting
> PTP related workqueues.
>
> In this way we can fix this:
> BUG: unable to handle page fault for address: ffffc9000440b6f8
> #PF: supervisor read access in kernel mode
> #PF: error_code(0x0000) - not-present page
> PGD 100000067 P4D 100000067 PUD 1001e0067 PMD 107dc5067 PTE 0
> Oops: 0000 [#1] PREEMPT SMP
> [...]
> Workqueue: events igb_ptp_overflow_check
> RIP: 0010:igb_rd32+0x1f/0x60
> [...]
> Call Trace:
> igb_ptp_read_82580+0x20/0x50
> timecounter_read+0x15/0x60
> igb_ptp_overflow_check+0x1a/0x50
> process_one_work+0x1cb/0x3c0
> worker_thread+0x53/0x3f0
> ? rescuer_thread+0x370/0x370
> kthread+0x142/0x160
> ? kthread_associate_blkcg+0xc0/0xc0
> ret_from_fork+0x1f/0x30
>
> Fixes: 1f6e8178d685 ("igb: Prevent dropped Tx timestamps via work items and interrupts.")
> Fixes: d339b1331616 ("igb: add PTP Hardware Clock code")
> Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
> Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net] igb: Avoid starting unnecessary workqueues
2023-08-21 17:19 [PATCH net] igb: Avoid starting unnecessary workqueues Tony Nguyen
2023-08-22 7:34 ` Simon Horman
@ 2023-08-23 0:30 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-08-23 0:30 UTC (permalink / raw)
To: Tony Nguyen
Cc: davem, kuba, pabeni, edumazet, netdev, alessio.bogani,
richardcochran, leon, rrameshbabu, arpanax.arland
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Mon, 21 Aug 2023 10:19:27 -0700 you wrote:
> From: Alessio Igor Bogani <alessio.bogani@elettra.eu>
>
> If ptp_clock_register() fails or CONFIG_PTP isn't enabled, avoid starting
> PTP related workqueues.
>
> In this way we can fix this:
> BUG: unable to handle page fault for address: ffffc9000440b6f8
> #PF: supervisor read access in kernel mode
> #PF: error_code(0x0000) - not-present page
> PGD 100000067 P4D 100000067 PUD 1001e0067 PMD 107dc5067 PTE 0
> Oops: 0000 [#1] PREEMPT SMP
> [...]
> Workqueue: events igb_ptp_overflow_check
> RIP: 0010:igb_rd32+0x1f/0x60
> [...]
> Call Trace:
> igb_ptp_read_82580+0x20/0x50
> timecounter_read+0x15/0x60
> igb_ptp_overflow_check+0x1a/0x50
> process_one_work+0x1cb/0x3c0
> worker_thread+0x53/0x3f0
> ? rescuer_thread+0x370/0x370
> kthread+0x142/0x160
> ? kthread_associate_blkcg+0xc0/0xc0
> ret_from_fork+0x1f/0x30
>
> [...]
Here is the summary with links:
- [net] igb: Avoid starting unnecessary workqueues
https://git.kernel.org/netdev/net/c/b888c510f7b3
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-08-23 0:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-21 17:19 [PATCH net] igb: Avoid starting unnecessary workqueues Tony Nguyen
2023-08-22 7:34 ` Simon Horman
2023-08-23 0:30 ` patchwork-bot+netdevbpf
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).