Page MenuHomeFreeBSD

iflib: Prevent watchdog from resetting idle queues
Needs ReviewPublic

Authored by piotr.pietruszewski_intel.com on Thu, Sep 19, 10:15 AM.

Details

Reviewers
shurd
Group Reviewers
iflib
Summary

While changing link state in iflib_link_state_change(), queues are
marked as IFLIB_QUEUE_IDLE to disable watchdog. Currently, iflib_timer()
watchdog does not check for previous queue status before marking it as
IFLIB_QUEUE_HUNG.

This patch adds check of queue status before marking it as hung.

Signed-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com>

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 26564
Build 24952: arc lint + arc unit

Event Timeline

I'm not sure, but I think the only way this can happen is when the link is down. Is that the caee here?

I'm not sure, but I think the only way this can happen is when the link is down. Is that the caee here?

Yes. We discovered that while investigating this PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239240

Would it make sense then to assert that the link is down?

erj added a subscriber: erj.Tue, Oct 8, 5:54 PM

Would it make sense then to assert that the link is down?

Could you clarify on what you mean by that? Did you mean have a check for when the link is down, or an actual kernel assert? I think some of us internally were confused about what you meant.

Yes, I meant adding a KASSERT or at least a comment.