> -----Original Message-----
> From: Paul Menzel <[email protected]>
> Sent: Wednesday, June 17, 2026 11:03 AM
> To: Temerkhanov, Sergey <[email protected]>
> Cc: [email protected]; [email protected]; Loktionov,
> Aleksandr <[email protected]>; Bjorn Helgaas
> <[email protected]>; [email protected]
> Subject: Re: [Intel-wired-lan] [PATCH iwl-next v1] ixgbe: Implement PCI reset
> handler
>
> [Cc: +Aleksandr (as in Reviewed-by:), +PCI subsystem]
>
> Dear Sergey,
>
>
> Thank you for your patch.
>
> Am 17.06.26 um 10:43 schrieb Sergey Temerkhanov:
> > Implement PCI device reset handler to allow the network device to get
> > re-initialized and function after a PCI-level reset.
>
> Please describe the problem in more detail. When does PCI-level reset occur,
> and what is the current problematic situation?
The actual scenario is when a reset is invoked via sysfs during the operation
and the adapter is not
properly restoring its state thereafter resulting in a TX queue timeout.
>
> Also, what is ixgbe specific compared to a general PCIe implementation?
>
> Please share details how to test it, and how you tested it.
The test is simple:
- Run traffic on the adapter
- Initiate reset via sysfs
- Observe TX queue WDT timeout w/o this change
> > +#define IXGBE_PCIE_RESET_RETRIES 1000
>
> Why 1000? Isn’t there a generic PCIe macro? Please extend the commit
> message.
This is going to be replaced in v2
> > + if (test_bit(__IXGBE_SERVICE_INITED, &adapter->state)) {
> > + timer_delete_sync(&adapter->service_timer);
> > + /* Prevent the service task from running while we're resetting.
> */
>
> One of the two comments seems redundant.
I am clarifying this in v2. Essentially, the timer callback may queue a work,
cancel_work_sync()
cancels any instance that may have been already pending.
>
> > + cancel_work_sync(&adapter->service_task);
> > + }
> progress\n");
>
> How can this happen? What should the user reading this error do?
Under the normal circumstances we should never get here, I am adding a comment
in v2
> > static DEFINE_SIMPLE_DEV_PM_OPS(ixgbe_pm_ops, ixgbe_suspend,
> > ixgbe_resume);
>
> Kind regards,
>
> Paul
Regards,
Sergey