Chassis reset
Vijay Khemka
vijaykhemka at fb.com
Sat Sep 19 09:28:49 AEST 2020
On 9/18/20, 2:38 PM, "Ed Tanous" <ed at tanous.net> wrote:
On Fri, Sep 18, 2020 at 12:52 PM Vijay Khemka <vijaykhemka at fb.com> wrote:
>
> Team,
>
> I am again want to discuss complete system reset. We had discussion in past for this and I implemented this as a chassis instance system_chassis0 and allowed user to initiate PowerCycle which will reset the complete system.
>
> Please help me understand following scenario
>
> Host reset – resetting host only
Should be done by initiating a reset action on the
/redfish/v1/Systems/system endpoint.
> Chassis reset – resetting host and bmc via single command.
IMO, this shouldn't be supported as a single command in redfish. If
you want this behavior, issue a reset to the System resource similar
to above, then issue a separate reset action to the Manager resource
at /redfish/v1/Managers/bmc.
In less complicated terms, I tend to abstract these kinds reset down to:
System reset: Reset as if I'd done a soft/hard reset of the main host processor
Chassis reset: Reset as if I'd unplugged the particular component from
mains power (AC or DC)
Manager reset: Reset as if I'd done a soft/hard reset of the BMC
I completely agree with you on above part.
Per the above, if you're looking for a chassis level reset (IE pulling
main power) this should be done in a Chassis Resource.
Then chassis reset should call proper chassis reset dbus command.
> System reset – This is a hard reset of complete system including every device.
This is I think the new one you're adding, and should be modeled under
a new chassis resource /redfish/v1/Chassis/<Chassis name>, and by
issuing a ForceReset action to it. I know in the past, for systems
that weren't capable of initiating a full chassis reset, we've modeled
this as a host reset for compatibility purposes. It should be noted,
this is arguably "wrong" but kept around because we weren't prepared
to break client implementations that expected that action to be there.
As a side note, is anyone a PMBUS expert? A quick look at the spec
seems like there should be a way to issue an AC-reset to a PMBUS
enabled power supply, but I got stuck reading the docs, given the
complexities of modern power supplies. Is there someone that just
knows the magic string to send to it? In that way, we could implement
the above in the "right" way, while still not breaking peoples
compatibility with the older interfaces. Now back to Vijay.
I'm assuming a lot of this is in context to your current patch:
https://urldefense.proofpoint.com/v2/url?u=https-3A__gerrit.openbmc-2Dproject.xyz_c_openbmc_bmcweb_-2B_36557&d=DwIFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=v9MU0Ki9pWnTXCWwjHPVgpnCR80vXkkcrIaqU7USl5g&m=WsoH-XNAOK3Qh6X9q0ZjO_7QfoFm35nc2VMby37UTgQ&s=1IYYiDRN_ZeEB6NAu1X3kgvDNYCopzpgvsEXqqFVmH4&e=
Your existing patch doesn't work because you're modifying the
Redfish-provided enums to add your new action, when redfish would
recommend adding a resource specific to that physical box that can
call your new endpoint.
I didn't know about redfish action schema, I will change that.
>
>
>
> Redfish defines only above 2 type and system reset can be covered under chassis reset.
I'm not really following this. Redfish exposes the different types
you need through multiple Chassis Resources. If you have a higher
level chassis that contains items below it, you would have a new
Chassis resource, which implements a Reset action on it.
I'm going to go out on a limb and assume you're working on Tioga for a
moment. I would expect that the Tioga Sled to have one chassis, and
the Tioga BladeCenter to have another chassis, with ContainedBy,
Contains, and PoweredBy links in the appropriate places on each.
> As per implementation in x86-power-control, host reset and chassis reset both takes same action like rebooting host only. For system reset it has a separate interface system_chassis0 and PowerCycle command triggers this reset.
I'm really surprised that this chassis level reset would go in
x86-power-control. That daemon is really for host level control, not
chassis, and considering that almost every implementation is going to
have a different way to "pull the power" I'd expect these to go in a
different repo, or at the very least a different application, so the
various BMCs can swap them out with the correct one for their chassis.
I probably missed a discussion on this a while back.
This was added as a systemd target call on this command. So power control will
Call user defined system reset target service on issue or system reset command
And each platform can develop their own target like setting some i2c register or
Setting some gpio.
>
>
>
> Please help me how do I support this system reset in redfish.
Hopefully the above helps!
Thanks, It does helps a lot. I would submit a new patch.
>
>
>
> Regards
>
> -Vijay
More information about the openbmc
mailing list