Add support core dump in common create

This commit modifies the interaction between the systemd
core dump monitor and the BMC dump manager. Earlier, when
a process managed by systemd crashed, it generated a core
dump. The core dump monitor would then inform the dump
manager about this event through a dedicated internal
D-Bus interface.

With this commit, we change this approach and leverage
the common BMC dump creation interface. Now, when a core
dump is generated, the core dump monitor requests the dump
manager to create a specific BMC dump that incorporates
this core dump data.

Tests:
Create a core dump and make sure BMC dump with core
is created

>kill -3 2232
Trace:
phosphor-dump-manager[542]: Initiating new BMC dump with \
type: core path: /var/lib/systemd/coredump/core.openpower\
-occ-c.0.0b16f513a5bc43f98ea11ed525f1a0c5.2232.16889058660\
00000.zst

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

Change-Id: Ic2cc723babccb0f8d36504992996bcf418db8463
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
3 files changed
tree: f27b9c2345000c9f1cb36a0391ed6af3fadf6104
  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