[applied] abipkgdiff: Add more verbose logging

Message ID 87ldunjc76.fsf@redhat.com
State New
Headers
Series [applied] abipkgdiff: Add more verbose logging |

Commit Message

Dodji Seketeli Feb. 3, 2025, 3:10 p.m. UTC
  Hello,

While looking at something else, I felt the need for more logs when
using the --verbose option with abipkgdiff, especially with respect to
building corpora for Linux kernel binaries and gathering their kabi
stable lists.

	* src/abg-tools-utils.cc (load_vmlinux_corpus): Log stable list
	loading.
	* tools/abipkgdiff.cc (compare_prepared_linux_kernel_packages):
	Log building of corpora for Linux kernels and diffing them.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applied to the mainline.
---
 src/abg-tools-utils.cc |  7 ++++++
 tools/abipkgdiff.cc    | 48 +++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 1 deletion(-)
  

Patch

diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc
index 0de9b797..2f811e7e 100644
--- a/src/abg-tools-utils.cc
+++ b/src/abg-tools-utils.cc
@@ -3005,6 +3005,13 @@  load_vmlinux_corpus(elf_based_reader_sptr rdr,
   abigail::fe_iface::status status = abigail::fe_iface::STATUS_OK;
   rdr->options().do_log = verbose;
 
+  if (verbose)
+    {
+      std::cerr << "Loading stable lists:'";
+      for (auto s : kabi_wl_paths)
+	std::cerr << s << ",";
+      std::cerr << "'...\n";
+    }
   t.start();
   load_generate_apply_suppressions(*rdr, suppr_paths,
                                    kabi_wl_paths, supprs);
diff --git a/tools/abipkgdiff.cc b/tools/abipkgdiff.cc
index 3db6dbde..602271ff 100644
--- a/tools/abipkgdiff.cc
+++ b/tools/abipkgdiff.cc
@@ -140,6 +140,7 @@  using abigail::tools_utils::load_default_system_suppressions;
 using abigail::tools_utils::load_default_user_suppressions;
 using abigail::tools_utils::abidiff_status;
 using abigail::tools_utils::create_best_elf_based_reader;
+using abigail::tools_utils::timer;
 using abigail::ir::corpus_sptr;
 using abigail::ir::corpus_group_sptr;
 using abigail::comparison::diff_context;
@@ -3254,6 +3255,14 @@  compare_prepared_linux_kernel_packages(package& first_package,
     requested_fe_kind = corpus::BTF_ORIGIN;
 #endif
 
+  timer t;
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "Going to build first corpus group from kernel dist under "
+      << dist_root1
+      << "...\n";
+
+  t.start();
   corpus1 = build_corpus_group_from_kernel_dist_under(dist_root1,
 						      debug_dir1,
 						      vmlinux_path1,
@@ -3261,10 +3270,23 @@  compare_prepared_linux_kernel_packages(package& first_package,
 						      opts.kabi_whitelist_paths,
 						      supprs, opts.verbose,
 						      env, requested_fe_kind);
+  t.stop();
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "Built first corpus group from kernel dist under "
+      << dist_root1
+      << "in: " << t << "\n";
 
   if (!corpus1)
     return abigail::tools_utils::ABIDIFF_ERROR;
 
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "Going to build second corpus group from kernel dist under "
+      << dist_root2
+      << "...\n";
+
+  t.start();
   corpus2 = build_corpus_group_from_kernel_dist_under(dist_root2,
 						      debug_dir2,
 						      vmlinux_path2,
@@ -3272,6 +3294,12 @@  compare_prepared_linux_kernel_packages(package& first_package,
 						      opts.kabi_whitelist_paths,
 						      supprs, opts.verbose,
 						      env, requested_fe_kind);
+  t.stop();
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "Built second corpus group from kernel dist under "
+      << dist_root2
+      << "in: " << t << "\n";
 
   if (!corpus2)
     return abigail::tools_utils::ABIDIFF_ERROR;
@@ -3279,9 +3307,27 @@  compare_prepared_linux_kernel_packages(package& first_package,
   diff_context_sptr diff_ctxt(new diff_context);
   set_diff_context_from_opts(diff_ctxt, opts);
 
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "diffing the two kernel corpora ...\n";
+  t.start();
   corpus_diff_sptr diff = compute_diff(corpus1, corpus2, diff_ctxt);
+  t.stop();
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "diffed the two kernel corpora in: " << t << "\n";
 
-  if (diff->has_net_changes())
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "evaluating the set of net changes of the diff ...\n";
+  t.start();
+  bool has_net_changes = diff->has_net_changes();
+  t.stop();
+  if (opts.verbose)
+    emit_prefix("abipkgdiff", cerr)
+      << "evaluated set of net changes of the diff in:" << t << "\n";
+
+  if (has_net_changes)
     status |= abigail::tools_utils::ABIDIFF_ABI_CHANGE;
   if (diff->has_incompatible_changes())
     status |= abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE;