[Intel-wired-lan] [net v2 0/5] igb: fix ptp suspend/resume issue

Brown, Aaron F aaron.f.brown at intel.com
Tue May 17 01:57:51 UTC 2016

> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jacob Keller
> Sent: Wednesday, May 11, 2016 4:18 PM
> To: Intel Wired LAN <intel-wired-lan at lists.osuosl.org>
> Cc: Vidya Sagar <sagar.tv at gmail.com>
> Subject: [Intel-wired-lan] [net v2 0/5] igb: fix ptp suspend/resume issue
> This patch series (properly) fixes the issue with igb's workqueue item
> for overflow check from causing a surprise remove event. To do this,
> properly suspend the workqueue items in suspend and then resume them
> again during the resume flow.
> The patch series has a few extra steps to reduce code duplication and
> implement suspend and resume properly, which makes the overall fix a bit
> more complicated, and thus review is welcome.
> A smaller fix would be to implement suspend and resume irrespective of
> the current igb_ptp_stop and igb_ptp_init but this seems more likely to
> introduce bugs especially if either function ever changes in the future.
> In addition, the ptp_flags variable is added mostly to simplify the work
> of writing several complex MAC type checks in the ptp code while doing
> this.
> Jacob Keller (5):
>   igb: introduce ptp_flags variable and use it to replace IGB_FLAG_PTP
>   igb: introduce IGB_PTP_OVERFLOW_CHECK flag
>   igb: introduce igb_ptp_resume function
>   igb: implement igb_ptp_suspend
>   igb: call igb_ptp_suspend/igb_ptp_resume during suspend/resume cycle
>  drivers/net/ethernet/intel/igb/igb.h      |   8 ++-
>  drivers/net/ethernet/intel/igb/igb_main.c |   4 +-
>  drivers/net/ethernet/intel/igb/igb_ptp.c  | 110 ++++++++++++++++-------------
> -
>  3 files changed, 68 insertions(+), 54 deletions(-)

I have not isolated it to the exact patch yet, but one of the patches in this series is causing my systems to lock up with a call trace.  I am currently unable to capture the trace in any form other than a bitmap (which I'll send to Jacob but am not attaching here.)  The trace is really several splats a few minutes apart.  The exact text / procedure calls of the first one seems to vary, but it seems to be in a wakeup routing with "do_page_fault", "? _raw_spin_lock_irq", "? timecounter_read", "? _raw_spin_lock_irqsave", "igb_ptp_gettime_82576" and "igb_ptp_overflow_check" showing up prominently in at least a few instances.  Usually it moves to the next trace before I can get a snapshot.  The follow on trace is where it usually stops with a RIP:, bunch of hex, stack info and a Call Trace saying "arch_cpu_idle", "default_idle_call", "cpu_startup_entry" and "start_secondary" called out.

More information about the Intel-wired-lan mailing list