Remove GetManagedObject call for fru sdr

Current algorithm will make a GetManagedObject against EntityManager for
each Fru to get entityId/Instance information. Instead of doing that
heavy call, we can just call GetSubtreePaths against ObjectManager to
find objects with the dus interface that we want... and then call
EntityManager to fetch the property if it they are the one generating
it.

Tested:
Getting all sdr took 25 seconds to 12 seconds on system with a lot of
sensor + fru.

Change-Id: I7e7ec6f68fe6ee3bef6bd55948d853fba06ed695
Signed-off-by: Willy Tu <wltu@google.com>
1 file changed
tree: 93414d37ab64310c1aaf4f78e02c72956466661c
  1. app/
  2. dbus-sdr/
  3. docs/
  4. include/
  5. libipmid/
  6. oem/
  7. scripts/
  8. softoff/
  9. subprojects/
  10. test/
  11. transport/
  12. user_channel/
  13. xyz/
  14. .build.sh
  15. .clang-format
  16. .clang-tidy
  17. .gitignore
  18. .shellcheck
  19. .travis.yml
  20. apphandler.cpp
  21. apphandler.hpp
  22. chassishandler.cpp
  23. chassishandler.hpp
  24. dcmihandler.cpp
  25. dcmihandler.hpp
  26. error-HostEvent.hpp
  27. fruread.hpp
  28. generate_whitelist.sh
  29. generate_whitelist_create.sh
  30. globalhandler.cpp
  31. groupext.cpp
  32. host-cmd-manager.cpp
  33. host-cmd-manager.hpp
  34. host-interface.cpp
  35. host-interface.hpp
  36. host-ipmid-whitelist.conf
  37. ipmi_fru_info_area.cpp
  38. ipmi_fru_info_area.hpp
  39. ipmiallowlist.hpp
  40. ipmid-new.cpp
  41. ipmisensor.cpp
  42. LICENSE
  43. meson.build
  44. meson.options
  45. OWNERS
  46. read_fru_data.cpp
  47. read_fru_data.hpp
  48. README.md
  49. sbmrhandler.cpp
  50. selutility.cpp
  51. selutility.hpp
  52. sensordatahandler.cpp
  53. sensordatahandler.hpp
  54. sensorhandler.cpp
  55. sensorhandler.hpp
  56. settings.cpp
  57. settings.hpp
  58. storageaddsel.cpp
  59. storageaddsel.hpp
  60. storagehandler.cpp
  61. sys_info_param.cpp
  62. sys_info_param.hpp
  63. systemintfcmds.cpp
  64. systemintfcmds.hpp
  65. transportconstants.hpp
  66. transporthandler.cpp
  67. transporthandler.hpp
  68. whitelist-filter.cpp
README.md

phosphor-host-ipmid

Compile ipmid with default options

meson builddir
ninja -C builddir

Compile ipmid with yocto defaults

meson builddir -Dbuildtype=minsize -Db_lto=true -Dtests=disabled
ninja -C builddir

If any of the dependencies are not found on the host system during configuration, meson automatically gets them via its wrap dependencies mentioned in ipmid/subprojects.

Enable/Disable meson wrap feature

meson builddir -Dwrap_mode=nofallback
ninja -C builddir

Enable debug traces

meson builddir -Dbuildtype=debug
ninja -C builddir

Generate test coverage report

meson builddir -Db_coverage=true -Dtests=enabled
ninja -C builddir test
ninja -C builddir coverage