Skip to content

Commit

Permalink
lib/deploy: Log SELinux policy refresh
Browse files Browse the repository at this point in the history
I have a suspicion that the `semodule -N --refresh` we do here is
involved in coreos/fedora-coreos-tracker#1597.
Let's log when we execute it and include its time.

While we're here, also log the time it takes to `syncfs()` and the
fsfreeze/thaw cycling. It's logged in a structured journal entry, but
that's less accessible than just having it in the journal message field.
  • Loading branch information
jlebon committed Oct 19, 2023
1 parent 4085eee commit bdac515
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/libostree/ostree-sysroot-deploy.c
Original file line number Diff line number Diff line change
Expand Up @@ -1646,25 +1646,28 @@ full_system_sync (OstreeSysroot *self, SyncStats *out_stats, GCancellable *cance
GError **error)
{
GLNX_AUTO_PREFIX_ERROR ("Full sync", error);
guint64 start_msec = g_get_monotonic_time () / 1000;
ot_journal_print (LOG_INFO, "Starting syncfs() for system root");
guint64 start_msec = g_get_monotonic_time () / 1000;
if (syncfs (self->sysroot_fd) != 0)
return glnx_throw_errno_prefix (error, "syncfs(sysroot)");
ot_journal_print (LOG_INFO, "Completed syncfs() for system root");
guint64 end_msec = g_get_monotonic_time () / 1000;
ot_journal_print (LOG_INFO, "Completed syncfs() for system root in %" G_GUINT64_FORMAT " ms",
end_msec - start_msec);

out_stats->root_syncfs_msec = (end_msec - start_msec);

if (!_ostree_sysroot_ensure_boot_fd (self, error))
return FALSE;

start_msec = g_get_monotonic_time () / 1000;
g_assert_cmpint (self->boot_fd, !=, -1);
ot_journal_print (LOG_INFO, "Starting freeze/thaw cycle for system root");
start_msec = g_get_monotonic_time () / 1000;
if (!fsfreeze_thaw_cycle (self, self->boot_fd, cancellable, error))
return FALSE;
ot_journal_print (LOG_INFO, "Completed freeze/thaw cycle for system root");
end_msec = g_get_monotonic_time () / 1000;
ot_journal_print (LOG_INFO,
"Completed freeze/thaw cycle for system root in %" G_GUINT64_FORMAT " ms",
end_msec - start_msec);
out_stats->boot_syncfs_msec = (end_msec - start_msec);

return TRUE;
Expand Down Expand Up @@ -3284,9 +3287,14 @@ sysroot_finalize_selinux_policy (int deployment_dfd, GError **error)
static const gsize SEMODULE_REBUILD_ARGC
= sizeof (SEMODULE_REBUILD_ARGV) / sizeof (*SEMODULE_REBUILD_ARGV);

ot_journal_print (LOG_INFO, "Refreshing SELinux policy");
guint64 start_msec = g_get_monotonic_time () / 1000;
if (!run_in_deployment (deployment_dfd, SEMODULE_REBUILD_ARGV, SEMODULE_REBUILD_ARGC,
&exit_status, NULL, error))
return FALSE;
guint64 end_msec = g_get_monotonic_time () / 1000;
ot_journal_print (LOG_INFO, "Refreshed SELinux policy in %" G_GUINT64_FORMAT " ms",
end_msec - start_msec);
return g_spawn_check_exit_status (exit_status, error);
}
#endif /* HAVE_SELINUX */
Expand Down

0 comments on commit bdac515

Please sign in to comment.