Add elog dump type to common create

This commit modifies the Elog BMC dump creation process
to utilize the common BMC dump creation interface. Elog
BMC dumps are a special type of dumps triggered upon the
logging of certain predefined set of error logs. These
dumps incorporate data based on the type of the error log.
If no error log type is specified, a default  elog dump
will be generated. In the existing process, upon occurrence
of a predefined error log, the error log manager would
inform the dump manager via an internal DBus interface. Now,
with this change, the error log manager will request the
dump manager to create an Elog BMC dump that includes the
relevant error data, error type, and the object path of the
error log entry via the common create DBus interface.

Test:
Create an InternalFailure and sure dump is created
>busctl call xyz.openbmc_project.Logging \
 /xyz/openbmc_project/logging \
 xyz.openbmc_project.Logging.Create Create ssa{ss} \
 xyz.openbmc_project.Common.Error.InternalFailure \
 xyz.openbmc_project.Logging.Entry.Level.Error 0

Trace:
phosphor-dump-manager[542]: Initiating new BMC dump \
with type: elog path: /xyz/openbmc_project/logging/entry/12

phosphor-dump-manager[2918]: Report is available in \
/var/lib/phosphor-debug-collector/dumps/6

Change-Id: I734b052fc24e7893a61755790be49e8a1e594be5
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
7 files changed
tree: 3ed62100c80a6e8a081206804de9515a3d8812d2
  1. .vscode/
  2. dump-extensions/
  3. host-transport-extensions/
  4. subprojects/
  5. test/
  6. tools/
  7. xyz/
  8. .clang-format
  9. .gitignore
  10. .shellcheck-ignore
  11. bmc_dump_entry.cpp
  12. bmc_dump_entry.hpp
  13. core_manager.cpp
  14. core_manager.hpp
  15. core_manager_main.cpp
  16. dump-extensions.hpp
  17. dump_entry.cpp
  18. dump_entry.hpp
  19. dump_internal.hpp
  20. dump_manager.cpp
  21. dump_manager.hpp
  22. dump_manager_bmc.cpp
  23. dump_manager_bmc.hpp
  24. dump_manager_faultlog.cpp
  25. dump_manager_faultlog.hpp
  26. dump_manager_main.cpp
  27. dump_offload.cpp
  28. dump_offload.hpp
  29. dump_serialize.cpp
  30. dump_serialize.hpp
  31. dump_types.cpp
  32. dump_types.hpp
  33. dump_utils.cpp
  34. dump_utils.hpp
  35. elog_watch.cpp
  36. elog_watch.hpp
  37. errors_map.hpp
  38. errors_map.mako.cpp
  39. errors_map_gen.py
  40. example_errors_watch.yaml
  41. faultlog_dump_entry.cpp
  42. faultlog_dump_entry.hpp
  43. ffdc
  44. host_transport_exts.hpp
  45. LICENSE
  46. meson.build
  47. meson_options.txt
  48. OWNERS
  49. ramoops_manager.cpp
  50. ramoops_manager.hpp
  51. ramoops_manager_main.cpp
  52. README.md
  53. watch.cpp
  54. watch.hpp
README.md

phosphor-debug-collector

Phosphor Debug Collector provides mechanisms to collect various log files and system parameters. Used to troubleshoot problems in OpenBMC based systems.

One such mechanism is dreport, a script that collects debug data and packages it into an archive file.

To Build

To build this package with meson, do the following steps:

    1. meson builddir
    2. ninja -C builddir

To clean the built files run ninja -C builddir clean.

To run unit tests

Tests can be run in the CI docker container, refer local-ci-build

or with an OpenBMC x86 sdk(see below for x86 steps).

meson -Dtests=enabled build
ninja -C build test