summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorEd Tanous <ed.tanous@intel.com>2018-06-11 17:46:52 -0700
committerMatt Spinler <spinler@us.ibm.com>2018-09-28 08:24:45 -0500
commit605206314f23710ef8a429745f139c891630588f (patch)
treecefbc8b09ed0672b125be5a07e19ad2138b41378 /configure.ac
parentcc6ee9cb98a3a8c6020cef9a0debbf2c35f50f7f (diff)
downloadphosphor-objmgr-605206314f23710ef8a429745f139c891630588f.tar.gz
phosphor-objmgr-605206314f23710ef8a429745f139c891630588f.zip
Implement Mapper in C++/sdbusplus/asio
This commit attempts to reimplement the mapper using C++/sdbusplus in the hopes of improving performance both at startup (lower priority) and runtime (higher priority). After this patch, performance seems to be greatly improved. On an unloaded system, full introspection of all daemons clocks in at 2.23 seconds for the worst case. Prelimiary tests show this to be 7X faster than the existing client. Expect this to come down slightly once associations are implemented, as that will introduce some overhead. It should not yet be considered complete although it does function. The things that still need doing are: 1. Implement the configurable whitelist/blacklist that the existing manage implements. Today they are compiled in. Tested By: time busctl call xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper GetSubTree sias "/" 0 1 xyz.openbmc_project.State.Chassis a{sa{sas}} 1 "/xyz/openbmc_project/state/chassis0" 1 "xyz.openbmc_project.State.Chassis" 2 "org.freedesktop.DBus.ObjectManager" "xyz.openbmc_project.State.Chassis" C++ implementation real 0m0.092s user 0m0.040s sys 0m0.010s Python implementation real 0m0.416s user 0m0.010s sys 0m0.030s Also has been tested using reboots, daemon dropouts and reconnects. Change-Id: I46ca8c273df09261cb2a2448a3570a601ea8e9f4 Signed-off-by: Ed Tanous <ed.tanous@intel.com> Signed-off-by: James Feist <james.feist@linux.intel.com> Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac4
1 files changed, 3 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 6ac4cc6..b8f7882 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,6 +25,8 @@ AC_SUBST([HAVE_PYTHON])
AC_SUBST([PYTHONDIR], ${pythondir})
# Checks for libraries.
+PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus],, [AC_MSG_ERROR([Could not find sdbusplus...openbmc/sdbusplus package required])])
+PKG_CHECK_MODULES([TINYXML2], [tinyxml2],, AC_MSG_ERROR(["Requires tinyxml2."]))
PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221])
PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging],, AC_MSG_ERROR(["Requires phosphor-logging."]))
@@ -42,7 +44,7 @@ LT_INIT([disable-static shared])
AX_PTHREAD([GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"],[GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=0"])
AC_SUBST(GTEST_CPPFLAGS)
-AC_ARG_ENABLE([oe-sdk],
+AC_ARG_ENABLE([oe-sdk],`
AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
)
AC_ARG_VAR(OECORE_TARGET_SYSROOT,
OpenPOWER on IntegriCloud