summaryrefslogtreecommitdiff
path: root/meta-ibm/recipes-phosphor/pldm/pldm_%.bbappend
AgeCommit message (Collapse)AuthorFilesLines
2021-09-14Revert "Override pldm response time out value"Andrew Jeffery1-4/+0
This reverts commit bcc5f6b0f24e8ad0b03b8217e88a19ff3002c084. bcc5f6b0f24e ("Override pldm response time out value") talks about timeouts due to the endpoint taking some time to respond. However, the net effect of the change is the response to a retried request races against the instance ID expiration interval because the retry interval is effectively equal to the instance ID expiration interval once we account for some timer slack. This is demonstrated by the following strace on pldmd, where we can see a retried request go out, followed by the report that the request failed, further followed by the response to the request coming in. Note the values are string-literal-escaped-octal, so the [ 0x80 0x00 0x03 ... ] byte encoding of the GetPLDMVersions request appears as "\200\0\3...": ``` ... 11:56:25.046173 socket(AF_UNIX, SOCK_SEQPACKET, 0) = 3 ... 11:56:25.183936 connect(3, {sa_family=AF_UNIX, sun_path=@"mctp-mux"}, 11) = 0 11:56:25.190994 write(3, "\1", 1) = 1 ... 11:56:25.195272 sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\t\1", iov_len=2}, {iov_base="\200\0\3\0\0\0\0\1\0", iov_len=9}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, 0) = 11 ... 11:56:30.202298 sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\t\1", iov_len=2}, {iov_base="\200\0\3\0\0\0\0\1\0", iov_len=9}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, 0) = 11 11:56:30.202820 gettid() = 1918 11:56:30.203029 timerfd_settime64(6, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=3848, tv_nsec=61124978641398328}}, NULL) = 0 11:56:30.203286 epoll_wait(4, [{EPOLLIN, {u32=14373240, u64=14373240}}], 14, 0) = 1 11:56:30.203509 clock_gettime64(CLOCK_REALTIME, {tv_sec=1629806190, tv_nsec=203587376}) = 0 11:56:30.203687 clock_gettime64(CLOCK_MONOTONIC, {tv_sec=3843, tv_nsec=523046301}) = 0 11:56:30.203844 clock_gettime64(CLOCK_BOOTTIME, {tv_sec=3843, tv_nsec=523206110}) = 0 11:56:30.204049 write(2, "Response not received for the re"..., 59) = 59 11:56:30.204427 write(2, " EID = ", 7) = 7 11:56:30.204745 write(2, "9", 1) = 1 11:56:30.205047 write(2, " INSTANCE_ID = ", 15) = 15 11:56:30.205389 write(2, "0", 1) = 1 11:56:30.205719 write(2, " TYPE = ", 8) = 8 11:56:30.205997 write(2, "0", 1) = 1 11:56:30.206266 write(2, " COMMAND = ", 11) = 11 11:56:30.206576 write(2, "3", 1) = 1 11:56:30.206893 write(2, "\n", 1) = 1 11:56:30.209402 write(2, "Failed to receive response for ", 31) = 31 11:56:30.209814 write(2, "getPLDMVersion command, Host see"..., 46) = 46 11:56:30.210969 gettid() = 1918 11:56:30.211171 timerfd_settime64(6, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=8549172174085160960}, it_value={tv_sec=0, tv_nsec=8566510441663037440}}, NULL) = 0 11:56:30.211406 epoll_wait(4, [{EPOLLIN, {u32=14373240, u64=14373240}}], 14, 0) = 1 11:56:30.211640 clock_gettime64(CLOCK_REALTIME, {tv_sec=1629806190, tv_nsec=211720512}) = 0 11:56:30.211825 clock_gettime64(CLOCK_MONOTONIC, {tv_sec=3843, tv_nsec=531188829}) = 0 11:56:30.211983 clock_gettime64(CLOCK_BOOTTIME, {tv_sec=3843, tv_nsec=531335706}) = 0 11:56:30.212143 recv(3, NULL, 0, MSG_PEEK|MSG_TRUNC) = 15 11:56:30.212366 recv(3, "\t\1\0\0\3\0\0\0\0\0\5\361\361\360\0", 15, 0) = 15 ``` That is, at 11:56:30.202298 we send out the retry for the request initiated at 11:56:25.195272 and the reply arrives back at 11:56:30.212366, but in between we've already cancelled the request handler due to the instance ID interval timer expiring. Resolve this by removing the explicit configuration of the response-time-out build parameter setting the per-request response time to 4.8 seconds, setting its value back to the default of two seconds. Anecdotal testing of with the following shell script produced no failures (by inspection of the journal as the iterations executed): ``` for i in `seq 1 30`; do echo $i; ( systemctl stop pldmd mctp-demux && echo 1e78902c.kcs > /sys/bus/platform/drivers/ast-kcs-bmc/unbind && sleep 1 && echo 1e78902c.kcs > /sys/bus/platform/drivers/ast-kcs-bmc/bind && systemctl start pldmd && sleep 15 ) || break; done ``` Change-Id: Ide125d686e79376b412fca0105449c8bef722cfe Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
2021-09-09pldm: srcrev bump e5bbe0d055..0922275b3bAndrew Geissler1-1/+6
Adriana Kobylak (1): oem: ibm: Add services to reset PHYP NVRAM Tom Joseph (1): tools: Extend pldm_fwup_pkg_creator Change-Id: I9dce25f3137a938c84dd080eaa8f37aa5a5147eb Signed-off-by: Andrew Geissler <openbmcbump-github@yahoo.com> Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
2021-08-11meta-ibm: prep for new override syntaxAdriana Kobylak1-2/+2
Change-Id: I9116ed7260e369136acb39eec15075db2d4dbeba Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
2021-08-10Override pldm response time out valueManojkiran Eda1-0/+4
This commit would override response time out value for a request to 4.8 seconds for all the ibm machines. We have seen in our debugging that in rare cases host takes close to 5 seconds to respond to the pldm message.This value (4.8 seconds) is in sync with what phyp maintains for their messages(5 seconds). As we do lot of fileIO operations, and the number of PDR's tend to grow, picking 4.8 seconds seems to be less risky path & also larger timeout would reduce the number of retries from BMC incase if the host does not respond within 2-3 seconds. Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: Ic0eac42b66dbc2c6d69bff440fe590775f35e390
2021-02-16Remove bios configurations from meta-layer & bumpManojkiran Eda1-15/+1
- The intent behind this commit is to enable & set OEM specific options to pldm recipe via the meta-ibm layer. - pldm in its current state, has a configurations folder which contains all the configurations that are consumed by the daemon at runtime. - pldm also has an oem folder(s) that can contain the vendor specific configuration files. - So, removing these files from the meta-layer as they are obsolete. Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I91d23c37abff45f3da18676269be843610b6a9d1
2021-01-28pldm: Add squashfs-toolsAdriana Kobylak1-3/+2
The squashfs tools are used by PLDM during inband update. Reference: https://gerrit.openbmc-project.xyz/c/openbmc/pldm/+/37510 Tested: Verified that the rootfs/usr/sbin/mksquashfs existed. Change-Id: Id8d00765e72ce04bc8f039403a570aa7dca98b26 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
2020-04-27meta-ibm: move all meta-witherspoon metadataBrad Bishop1-0/+19
The metadata common to all IBM systems is confusingly split between meta-ibm and meta-witherspoon. Move everything to meta-ibm. The meta-ibm README is re-written to more accurately reflect the scope of the layer. Allow the configuration samples (bblayers.conf.sample, local.conf.sample) to be sourced from either meta-ibm or meta-witherspoon until such a time that any workflows and tooling have had the opportunity to move to meta-ibm. (From meta-ibm rev: 6e05ef2e90b214eaf4e43ee7027bbbb1d8d09442) Change-Id: I3ec890d5300f9649c974ea6b9dca93a2e8a889ab Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>