619207dc | 21-Nov-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Handle SIGTERM to ensure delivery of HIOMAP BMC status
We need to jump through a few hoops to ensure that the host firmware reliably receives indication of changes to the HIOMAP daemon's sta
hiomap: Handle SIGTERM to ensure delivery of HIOMAP BMC status
We need to jump through a few hoops to ensure that the host firmware reliably receives indication of changes to the HIOMAP daemon's state over the IPMI transport. This is driven partly by IPMI's design, partly by ipmid's implementation, and partly by the original design of the HIOMAP DBus transport interface.
A long comment has been added outlining the race conditions eliminated by this change and its related patches, however it's worth drawing attention to the issue not addressed there - the original design of the HIOMAP DBus transport:
The HIOMAP BMC status is composed of two distinct types of data:
1. Stateful: BMC_EVENT_DAEMON_READY and BMC_EVENT_FLASH_CONTROL_LOST 2. Events: BMC_EVENT_PROTOCOL_RESET and BMC_EVENT_WINDOW_RESET
The data types described by 1 and 2 map directly onto the DBus concepts of Properties and Signals. Originally the specification for the HIOMAP DBus transport exploited this direct mapping, however experience from dealing with SIGTERM handling has shown that it was a poor mapping to exploit.
On shutdown the HIOMAP daemon, mboxd, needs to atomically both clear the BMC_EVENT_DAEMON_READY bit and set the BMC_EVENT_PROTOCOL_RESET bit. With the data exposed as distinct types this results on two messages emitted on the bus: A PropertiesChanged signal to advertise the update to BMC_EVENT_DAEMON_READY, and a raw signal to advertise the update to BMC_EVENT_PROTOCOL_RESET.
With two separate signals to be processed by ipmid's event loop it is hard to ensure both will be propagated to the host before the SIGTERM from systemd is processed by ipmid.
The solution to eliminate the race is to rework the events exposed as signals into properties and live with the slight mismatch of intent. This results in the removal of the associated signal handling code in the plugin.
Change-Id: Ic05c40b52138c132eface6f8d873088e7e66585b Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
ee70196b | 31-Oct-2018 |
Patrick Venture <venture@google.com> |
add missing cpp headers, drop unused c headers
Add missing cpp headers for explicit inclusion. Drop unused c string header, for cpp string header version.
Change-Id: I33907db0c746b44c8a0413ea15218f
add missing cpp headers, drop unused c headers
Add missing cpp headers for explicit inclusion. Drop unused c string header, for cpp string header version.
Change-Id: I33907db0c746b44c8a0413ea15218fc0287647b8 Signed-off-by: Patrick Venture <venture@google.com>
show more ...
|
5b355068 | 31-Oct-2018 |
Patrick Venture <venture@google.com> |
build: update .clang-format with latest
The .clang-format file appeared to be an older incarnation, updated to latest.
Change-Id: I75908c84f2f51eeb239236c9d9e0f4d4e322d862 Signed-off-by: Patrick Ve
build: update .clang-format with latest
The .clang-format file appeared to be an older incarnation, updated to latest.
Change-Id: I75908c84f2f51eeb239236c9d9e0f4d4e322d862 Signed-off-by: Patrick Venture <venture@google.com>
show more ...
|
4a43a12b | 31-Oct-2018 |
Patrick Venture <venture@google.com> |
add .gitignore
Add initial .gitignore file.
Change-Id: Ifd72991af5ee00c5b1e413e445a76457ba08359c Signed-off-by: Patrick Venture <venture@google.com> |
58facc4c | 04-Oct-2018 |
Vernon Mauery <vernon.mauery@linux.intel.com> |
openpower-host-ipmi-flash: use c++17
Update configure.ac to choose the c++17 standard
Change-Id: I06d277597226f6f339c2467506963be521bdef84 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.co
openpower-host-ipmi-flash: use c++17
Update configure.ac to choose the c++17 standard
Change-Id: I06d277597226f6f339c2467506963be521bdef84 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
show more ...
|
c000f2d9 | 29-Oct-2018 |
Patrick Venture <venture@google.com> |
build: fix bootstrap, set language to C++
Bootstrap script doesn't start with #! line. Set the language in the build to C++.
Change-Id: I171dac4550063655b11d88af7009f5f6d129a34f Signed-off-by: Patr
build: fix bootstrap, set language to C++
Bootstrap script doesn't start with #! line. Set the language in the build to C++.
Change-Id: I171dac4550063655b11d88af7009f5f6d129a34f Signed-off-by: Patrick Venture <venture@google.com>
show more ...
|
04d75136 | 25-Sep-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Enforce unique sequence number requirement
Change-Id: Ia9661ce563502c49fcbd020506cb87920bf3e620 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
4d7aac7c | 05-Sep-2018 |
Andrew Jeffery <andrew@aj.id.au> |
MAINTAINERS: Add Adriana and Deepak as reviewers
Stolen from the MAINTAINERS file of phosphor-host-ipmid, and has good synergy with mboxbridge.
Change-Id: If62d195e8d96421aebf0b1f83872cc40e24709dd
MAINTAINERS: Add Adriana and Deepak as reviewers
Stolen from the MAINTAINERS file of phosphor-host-ipmid, and has good synergy with mboxbridge.
Change-Id: If62d195e8d96421aebf0b1f83872cc40e24709dd Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
a1e35b85 | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement erase
Change-Id: I7683ecc0885dec0af8533bf28d8ef1901d2eef0a Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
99f277a1 | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement ack
Change-Id: Ia3a3cfed6fe2dba8c92645444f50fcd227f130c9 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
7b225fb2 | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement flush
Change-Id: I2a62830f11234394ff653b74aa9786b48dd6e35b Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
9847f1c2 | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement mark_dirty
Change-Id: Ib86f4979130f05964035dcc73e62763ce227e984 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
b52822cd | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement close
Change-Id: I1c55b70f8a842447d0593d536dbdeb43c0c9006b Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
a00f59ba | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement create_{read,write}_window
Change-Id: Ie6b12a0c1d7b21db67e3e7017938800898e9c9aa Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
db688e9f | 23-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement get_flash_info
Change-Id: Ic70da5f7554453e4cd476c1d4c67027e342092ff Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
0a3358e7 | 20-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Plumb DBus signals through as SELs
Change-Id: Ifc33497f0f0572b0e41b235654719d9f17360885 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
2c07f6f0 | 10-Aug-2018 |
Andrew Jeffery <andrew@aj.id.au> |
hiomap: Implement get_info
Change-Id: Ia1a536402cb08f869ea4321dd26683a72f95d05b Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
da64f0ab | 05-Sep-2018 |
Andrew Jeffery <andrew@aj.id.au> |
Add clang-format configuration file
Change-Id: Id78401803b86544f607156895064229ea21b0529 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
96829333 | 05-Sep-2018 |
Brad Bishop <radsquirrel@gmail.com> |
Initial commit |