You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is to bring the attention to a problem that was discovered from phosphor-nvmeopenbmc/phosphor-nvme#4
I found that phosphor-nvme daemon was causing issues with the D-Bus, and realized that while the D-Bus is being stressed, it can take almost 133ms to call a setProperty to xyz.openbmc_project.LED.GroupManager and xyz.openbmc_project.Led.Group for "Asserted" property. This is in contrast to
Looking at the code for the setter, we can see that it should compare and return right away if it's the same
The mitigation for phosphor-nvme was to call the getter manually and not call the setter when the property did not have to change - this decreased the average time by 87% which was much more reasonable.
Why could this be the case? The "setter" in this case "should" just be doing what a "getter" should be doing if the property is the same, however we're seeing a huge performance drop for doing a set.
This is to bring the attention to a problem that was discovered from
phosphor-nvme
openbmc/phosphor-nvme#4I found that
phosphor-nvme
daemon was causing issues with the D-Bus, and realized that while the D-Bus is being stressed, it can take almost 133ms to call asetProperty
toxyz.openbmc_project.LED.GroupManager
andxyz.openbmc_project.Led.Group
for "Asserted" property. This is in contrast toLooking at the code for the setter, we can see that it should compare and return right away if it's the same
phosphor-led-manager/group.cpp
Lines 12 to 19 in 87fd11c
The mitigation for
phosphor-nvme
was to call thegetter
manually and not call thesetter
when the property did not have to change - this decreased the average time by 87% which was much more reasonable.Why could this be the case? The "setter" in this case "should" just be doing what a "getter" should be doing if the property is the same, however we're seeing a huge performance drop for doing a
set
.Workaround:
https://github.com/openbmc/phosphor-nvme/blob/fdffe5c37f0d1feaa90558433f688c3757d2e79a/nvme_manager.cpp#L116-L125
https://github.com/openbmc/phosphor-nvme/blob/fdffe5c37f0d1feaa90558433f688c3757d2e79a/nvme_manager.cpp#L155-L161
The text was updated successfully, but these errors were encountered: