History log of /petsc/src/sys/logging/handler/interface/lhreg.c (Results 1 – 20 of 20)
Revision Date Author Comments
# 6147a030 18-Jul-2025 Satish Balay <balay@mcs.anl.gov>

Merge branch 'zach/log_roctx' into 'main'

Add `-log_roctx` to automatically instrument PETSc events for rocprof

See merge request petsc/petsc!8372


# 56a72328 18-Jul-2025 Zach Atkins <zach.atkins@colorado.edu>

Add `-log_roctx` to automatically instrument PETSc events for rocprof


# 09b68a49 04-Apr-2025 Satish Balay <balay@mcs.anl.gov>

Merge remote-tracking branch 'origin/release'


# e80aff1c 03-Apr-2025 Satish Balay <balay@mcs.anl.gov>

Merge branch 'jolivet/fix-petsc-case' into 'release'

Fix wrong case for PETSc

See merge request petsc/petsc!8266


# f0b74427 01-Apr-2025 Pierre Jolivet <pierre@joliv.et>

Fix wrong case for PETSc


# 1ed6e3ff 25-Apr-2024 Satish Balay <balay@mcs.anl.gov>

Merge branch 'barry/2024-04-13/fix-sowing-strings' into 'main'

Update PETSc to use sowing bfort that handles string arguments and PETSC_NULL_INT

See merge request petsc/petsc!7480


# cc4c1da9 14-Apr-2024 Barry Smith <bsmith@mcs.anl.gov>

Update source code removing all unneeded /*@C and associated manual stubs and interfaces


# e8e8640d 26-Sep-2023 Satish Balay <balay@mcs.anl.gov>

Merge branch 'jolivet/rm-first-empty-line' into 'main'

Remove first and last empty lines

See merge request petsc/petsc!6892


# 92bec4ee 26-Sep-2023 Pierre Jolivet <pierre@joliv.et>

Remove first and last empty lines


# 33fbd385 22-Sep-2023 Satish Balay <balay@mcs.anl.gov>

Merge branch 'tisaac/feature-log-nvtx' into 'main'

Profiling: Create PETSCLOGHANDLERNVTX (`-log_view` no longer required for Nsight ranges)

See merge request petsc/petsc!6884


# 61cc7448 21-Sep-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Create PETSCLOGHANDLERNVTX


# 6c37f76f 27-Jul-2023 Satish Balay <balay@mcs.anl.gov>

Merge branch 'tisaac/feature-log-handler' into 'main'

Deglobalize logging into PetscLogHandler and PetscLogState

See merge request petsc/petsc!6709


# 294de794 20-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Rename PETSC_LOG_HANDLER_XXX -> PETSCLOGHANDLERXXX


# 0970d93f 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Add legacy callbacks implementation of PetscLogHandler

The existing logging infrastructures has four exposed callback pointers:

- PetscLogPLB / PetscLogPLE for PetscLogEventBegin() / Pet

Profiling: Add legacy callbacks implementation of PetscLogHandler

The existing logging infrastructures has four exposed callback pointers:

- PetscLogPLB / PetscLogPLE for PetscLogEventBegin() / PetscLogEventEnd()
These can also be set with PetscLogSet

- PetscLogPHC / PetscLogPHD for PetscLogObjectCreate() /
PetscLogObjectDestroy()

This log handler implementation provides a path for users who have been
setting their own callbacks with these functions to upgrade to the new
PetscLogHandler interface.

show more ...


# ccf0b5c1 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Add tau perfstubs implementation of PetscLogHandler

In the existing logging, perfstubs runs automatically with -log_view
if PETSc is configured --with-tau-perfstubs. This new PetscLogHan

Profiling: Add tau perfstubs implementation of PetscLogHandler

In the existing logging, perfstubs runs automatically with -log_view
if PETSc is configured --with-tau-perfstubs. This new PetscLogHandler
implementation will be used with a new -log_perfstubs command line
option that will only run this handler and not the default handler.

show more ...


# 856bee69 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: add MPE implementation of PetscLogHandler

This is meant to handle -log_mpe.


# 6467efc9 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Add trace implementation of PetscLogHandler

This is a minimal PetscLogHandler implementation for -log_trace.


# b9321188 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Add nested PetscLogHandler implementation

This log handler has behavior like the behavior of
PetscLogNestedBegin().

Unlike the implementation of PetscLogHandler_Default, I did not try to

Profiling: Add nested PetscLogHandler implementation

This log handler has behavior like the behavior of
PetscLogNestedBegin().

Unlike the implementation of PetscLogHandler_Default, I did not try to
do a faithful translation of the existing nested logging behavior, for
two reasons.

- The existing implementation keeps sorted lists of nested paths ("Event
A;Event B;"), and for each of those paths keeps a sorted list of the
top-level events ("Event C", "Event D") that map that path to other
paths (path + event => other path). It's a complicated data structure,
and the benefit of the sorting (O(log n) lookup) is probably not worth
the more expensive insertion cost each time a new path + event combo
appears. Instead I implemented the path + event => other path
lookup as a hash map, which simplified the implementation
significantly.

- The existing implementation assigns an event to each path, modifying
the event registry in place. This messes things up if you want
to both -log_view and -log_view ::ascii_flamegraph output, the
original motivation for refactoring the profiling infrastructure.
In the new implementation, the nested handler has its own
PetscLogState that it modifies, and an inner copy of
PetscLogHandler_Default the acts on that nested state.

- The PetscLogGlobalNames data structure also simplifies the
construction of a linearized tree of events in the final
viewing stage, although the low-level xml construction
routines are copied almost verbatim from the previous
implementation.

show more ...


# 78f1b9b4 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Implement the default PetscLogHandler

The existing default log handling that uses the PetscStageLog
is translated in the PetscLogHandler_Default implementation
of PetscLogHandler.

- Most

Profiling: Implement the default PetscLogHandler

The existing default log handling that uses the PetscStageLog
is translated in the PetscLogHandler_Default implementation
of PetscLogHandler.

- Most data that is global in the existing log handling
is moved into the struct, with the exception of the
raw counters.

- The registry data structures of PetscStageLog (eventLog,
classLog) are not reproduced because they are now in
the PetscLogState interface.

- PETSC_LOG_RESIZABLE_ARRAY is used to implement
resizable arrays instead of PetscStageInfo,
PetscEventPerfLog, and PetscClassPerfLog

- The tau perfstubs and MPE functionality is not
reproduced because they will become new
handlers on their own.

- The PetscLogGlobalNames provided by the
PetscLogRegistry interface make the logging
robust to differences in which events / stages are
registered on which process and in which order.

Otherwise the functions are relatively faithful translations
of the existing PetscStageLog functions into the new interface.
When reviewing this commit it might help to have a diff
between the PetscStageLog and PetscLogHandler_Default functions
to see what changes between them. I am working on a way to attach
that to the MR associated with this change.

show more ...


# 19ef957c 13-Jul-2023 Toby Isaac <toby.isaac@gmail.com>

Profiling: Add PetscLogHandler interface

PetscStageLog tries to handle multiple ways of interpreting profiling
data:

* -log_view (default),
* -log_view ::ascii_xml and -log_view ::ascii_flamegraph

Profiling: Add PetscLogHandler interface

PetscStageLog tries to handle multiple ways of interpreting profiling
data:

* -log_view (default),
* -log_view ::ascii_xml and -log_view ::ascii_flamegraph (nested),
* -log_trace,
* -log_mpe,
* tau perfstubs (implicitly),
* nvidia

They can interact with petsc_logState in incompatible ways.

PetscLogHandler gives each handler its own interface so that
it can have its own data structures. They key operations
that a log handler can implement are:

- PetscLogHandlerEventBegin() / PetscLogHandlerEventEnd()
- PetscLogHandlerEventSync()
- PetscLogHandlerStagePush() / PetscLogHandlerStagePop()
- PetscLogHandlerObjectCreate() / PetscLogHandlerObjectDestroy()

The remaining operations are PetscObject standard functions,
with the except of `PetscLogHandlerSetState()` / `PetscLogHandlerGetState()`,
which control the `PetscLogState` that the handler can use to
get information about registered things and about the stage stack.

This change only introduces the type, it does not deploy it
to replace anything in the current profiling interface.
When it does, the user-defined log handling that was implemented
by setting callbacks in in PetscLogSet() will be replaced with
user-defined PetscLogHandler instances.

show more ...