Supporting new interfaces in phosphor-ipmi-flash

Andrew Jeffery andrew at aj.id.au
Mon Feb 15 10:26:07 AEDT 2021



On Tue, 9 Feb 2021, at 19:36, Troy Lee wrote:
> Hi Team,
> 
> While I'm evaluating the performance for the design, I notice that the
> maximum IPMI through/put over KCS / IPMB / LAN is about 120 command per
> second. Does anyone know where the bottleneck is?

So a few thoughts:

There are a some hints on performance profiling in the wiki:

https://github.com/openbmc/openbmc/wiki/Performance-Profiling-in-OpenBMC

However, I'd start by inspecting the message timings on D-Bus. You can capture
the D-Bus traffic on the BMC with:

```shell
# busctl capture > /tmp/dbus.pcap
```

After that, run your image transfer test. Once the transfer completes, stop the
capture and copy the pcap file off the BMC.

One approach to analysing the capture is to use Wireshark[1]. However, I've
found that for this kind of exploratory stuff, scripting the filtering and
output can give useful results. On that front I've written dbus-pcap:

https://github.com/openbmc/openbmc-tools/tree/master/dbus-pcap

which can spit out the messages in JSON format if necessary and it takes
standard D-Bus match rules for filtering as optional positional arguments:

https://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing-match-rules

If the overhead is not dominated by the IPC on its own, it's probably time to
start inspecting specific processes with `perf`. The wiki talks a little more
about that.

Hope that helps.

Andrew

[1] https://www.wireshark.org/


More information about the openbmc mailing list