| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SetWatchdog function currently sets the intervals and then the time
remaining on the watchdog. It uses the user provided interval for both
values. Recently, the watchdog was extended to allow for the interval to
be capped above a certain value to prevent the user from setting
watchdogs that are known to be too short. In order to keep the
timeRemaining in sync with the value in the watchdog, just use the
resetTimeRemaining() function which reads the current interval to set
the timeRemaining.
Change-Id: I3f15030a85c625fcb1ed8040add03496618a5ece
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
data length check for timeout action and byte 1 reserved field check
are missing, causing not to throw the error;
Log flags is on bit 7, also needs to right-shift this flag;
This commit fixes these issues;
Tested:
Set different timer use/actions:
ipmitool raw 0x06 0x24 0x85 0x0 0x0 0x0 0x64 0x00
ipmitool raw 0x06 0x24 0x84 0x1 0x0 0x0 0x64 0x00
Check the settings are correct:
ipmitool raw 0x06 0x25
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
Change-Id: Ia4226bb4597d2c670f93522aa763e43d15eb6cf1
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the issues found during code static scan
Tested:
test in board, function works fine.
1. busctl set-property for watchdog, it works fine.
2. It works by running "ipmitool chassis power soft".
3. run "ipmitool raw 0x6 0x46 1", get expected user information.
Change-Id: I7a2cc3c934db6a7531f8a8ea05956cb6d6337633
Signed-off-by: Chen,Yugang <yugang.chen@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite "get and set watchdog" command to use the newly
introduced ipmi api.
Tested:
Verified using ipmitool "get and set watchdog",
timer behavior is same before and after the changes.
Testing Procedure:
default watchdog timer is 11.2 seconds.
ipmitool raw 0x06 0x25 ---> Get
Output: 00 00 00 00 70 17 70 17
Note: Here 70 count(hex value)->112 count(decimal value)->112*100=11200ms
[100ms per count]->11.2sec (watchdog timer)
watchdog timer set to 20 seconds.
ipmitool raw 0x06 0x24 0x44 0x01 0x00 0x10 0xc8 0x00 ----> Set
output:
ipmitool raw 0x06 0x25 ---> Get
output: 04 01 00 00 c8 00 c8 00
Note: Here 20sec->20000ms->200count->c8 (hex value)
Signed-off-by: Deepak Kumar Sahu <deepakx.sahu@intel.com>
Change-Id: Id8c096bc1635d1900ee842a9726c49fb690fa8bc
|
|
|
|
|
|
|
|
|
|
|
| |
sdbusplus::message::variant_ns has been std for a while now. This moves
ipmid away from sdbusplus::message::variant_ns to directly use
std::variant.
Tested-by: built, compiles, and runs the same as before.
Change-Id: I8caa945f31c926c2721319f001b9d7f83fd3f1b7
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After some feedback from users of the new IPMI API, they wanted to see
two things:
1) don't require ipmid/api.hpp and ipmid/registration.hpp to be able to
write new handlers
2) only require including ipmid/api.hpp (instead of ipmid/api.h)
So now, by simply including ipmid/api.hpp instead of ipmid/api.h
(deprecated), handlers incorporating the new IPMI API can be written.
Change-Id: I446dcce70cff03d4ecc28c658292d052485f77fc
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
Tested:
ipmitool raw 0x06 0x24 1 0 0 0 0 0
ipmitool mc watchdog get
Change-Id: Iaffd6622821d33183a52f54a4e2e52a36aa17dde
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This starts a transition to common ipmid libraries that providers can
link against. It will allow for a cleaner separation between common
ipmid functionality and daemon type specific code. This is needed so we
can resolve all of the symbols in the providers at link time instead of
discovering bad linkage by building and running a full ipmi daemon.
In future commits libraries will be packaged for libipmid and libipmid-host
which provide all of the symbols used by the current set of ipmid
providers.
This is the first step, it just separates and renames the headers.
Legacy symlinks are still kept around for compatability. It also adds
stub libraries so that external users can start linking as intended.
Change-Id: I6bbd7a146362012d26812a7b039d1c4075862cbd
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moving headers from ".h" to ".hpp"
Reworked the header inclusion a bit so that host-ipmid is treated as a
library, and local headers aren't.
renamed apphandler.h => apphandler.hpp
renamed chassishandler.h => chassishandler.hpp
renamed globalhandler.h => globalhandler.hpp
renamed sensorhandler.h => sensorhandler.hpp
renamed storageaddsel.h => storageaddsel.hpp
renamed storagehandler.h => storagehandler.hpp
renamed systemintfcmds.h => systemintfcmds.hpp
Change-Id: I9d4ce3dd57e2e996800f9020a10cc10cdf2c3914
Signed-off-by: Patrick Venture <venture@google.com>
|
|
|
|
|
| |
Change-Id: I7c2a527b4751a560703a61fcbe9638b150546af5
Signed-off-by: Patrick Venture <venture@google.com>
|
|
|
|
|
|
|
|
| |
This patch adds error handling around the decoding of requests to the
watchdog service, to give more useful context in the case of errors.
Change-Id: If668b17e88dc65a938b69d8c2cdd760456170962
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
|
|
| |
Since we switched to resetting the watchdog with a built-in method, we
are only using a single property from the watchdog. Instead of fetching
all the properties and reading just the initialized one, only request
the initialized property from the watchdog.
Change-Id: I5e29b5100629e1ce23f352b0b749a434cd1ab793
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
| |
Using this helper method reduces the number of dbus calls made during
each watchdog reset.
Change-Id: I373db3babe03e05fca33eb4dbbbc7c07f95a39ea
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
| |
We want to better adhere to the openbmc convention of logging our errors
and reporting and internal exception upstack.
Change-Id: I78a277ed564b1ac269d84c024b75d2b0f534e911
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now if the phosphor-watchdog gets restarted, the first ipmi
request querying it will fail and return all the way back up to the ipmi
client. In this case, it would be nicer for the client if we retried the
request once before reporting a failure.
Resolves openbmc/phosphor-host-ipmid#111
Change-Id: I73fce5431911279f9c2e4389d32b671ed60c2305
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have occasionally noticed that the watchdog will be enabled and then
immediately trip upon booting of the BMC. This happens if the host is
still running when the BMC is coming up. Digging into the issue we notice
that the phosphor-mapper can be under very heavy load responding to all
of the initial mapping requests from BMC daemons starting. This causes a
delay in the phosphor-watchdog service name lookup during an attempt to
reset the watchdog countdown. The lookup delay is so long that the
watchdog ends up tripping before the reset is actually issued, causing
the BMC to reset the host. Since we know that the watchdog will not be
armed until the service resolves for the first time, we can reduce the
dependence and pressure on the service mapper by caching the service
name. Since it is the case that we want to keep issuing resets to the
same daemon that was initially configured, we should have no worries
about invalidating the cached service name. The name will be invalidated
any time we encounter a dbus level error issuing a watchdog commmand.
Change-Id: I303a39be997c2e57050b71efc8ef2e2cb27f8cf7
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
| |
We now respect the action set during the SetTimeout command. This maps
to one of the actions defined by the dbus Watchdog interface
Change-Id: I4d13d2539a2d955a4340bf5f915ca6f3b694550a
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
|
|
|
|
|
|
|
| |
This makes it possible for the phosphor-host-ipmi or any other watchdog
managing daemon to report to the caller that the watchdog was not configured
if the phosphor-watchdog daemon restarts for any reason.
Change-Id: Iae3a8554c2f5d1cb89368f3ce14b3d44922599c0
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
Change-Id: I730317954819859d23fdaca7336f19f5c5b0c107
Signed-off-by: William A. Kennington III <wak@google.com>
|