Page MenuHomeFreeBSD

Only use the IPMI watchdog on backends that support polling.
ClosedPublic

Authored by jhb on Mar 13 2015, 8:24 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 28, 6:55 PM
Unknown Object (File)
Oct 21 2024, 3:54 AM
Unknown Object (File)
Oct 1 2024, 8:34 AM
Unknown Object (File)
Sep 30 2024, 1:20 AM
Unknown Object (File)
Sep 28 2024, 1:35 AM
Unknown Object (File)
Sep 28 2024, 1:29 AM
Unknown Object (File)
Sep 26 2024, 3:26 PM
Unknown Object (File)
Sep 25 2024, 3:03 AM
Subscribers

Details

Reviewers
scottl
jhb
Summary

Watchdog drivers need to support rearming the watchdog in contexts
which are not permitted to sleep. Only use the IPMI watchdog with
backends which poll driver-initiated requests to meet this
requirement.

Test Plan
  • test on an existing IPMI KCS system and verify the watchdog still works properly

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

jhb retitled this revision from to Only use the IPMI watchdog on backends that support polling..
jhb updated this object.
jhb edited the test plan for this revision. (Show Details)
jhb added a reviewer: scottl.

Scott, I don't have any hardware handy. Can you test this for me when you get some free time? Thanks.

This looks like it should work. Haven't checked the spec to make sure that these are the only two transports that support watchdog...

The watchdog is supported irrespective of the backend. This is a reflection of the limitation of the driver, not the hardware. However, I have seen very few backends which use SSIF (the smbus-based backend) in the wild, so I think this is fine vs trying to write a polled variant of the SSIF backend.

jhb added a reviewer: jhb.
This revision is now accepted and ready to land.Apr 24 2015, 4:52 PM

Tested that the watchdog was still attached on a machine with KCS. Also hacked the kcs backend to #if 0 out the 'driver_requetsts_polled' assignment and the watchdog was not attached. Also, unloading teh driver in both cases worked fine without tripping over an assertion failure, etc.