1a4963045SJacob Faibussowitsch #pragma once
2b665b14eSToby Isaac
3b665b14eSToby Isaac #include <petsclog.h>
4b665b14eSToby Isaac
5*ce78bad3SBarry Smith /* MANSEC = Sys */
6*ce78bad3SBarry Smith /* SUBMANSEC = Log */
7b665b14eSToby Isaac
8b665b14eSToby Isaac /* These data structures are no longer used by any non-deprecated PETSc interface functions */
9b665b14eSToby Isaac
10b665b14eSToby Isaac typedef struct {
11b665b14eSToby Isaac char *name;
12b665b14eSToby Isaac PetscClassId classid;
13b665b14eSToby Isaac } PetscClassRegInfo;
14b665b14eSToby Isaac
15b665b14eSToby Isaac typedef struct _n_PetscClassRegLog *PetscClassRegLog;
16b665b14eSToby Isaac struct _n_PetscClassRegLog {
17b665b14eSToby Isaac int numClasses;
18b665b14eSToby Isaac int maxClasses;
19b665b14eSToby Isaac PetscClassRegInfo *classInfo;
20b665b14eSToby Isaac };
21b665b14eSToby Isaac
22b665b14eSToby Isaac typedef struct {
23b665b14eSToby Isaac PetscClassId id;
24b665b14eSToby Isaac int creations;
25b665b14eSToby Isaac int destructions;
26b665b14eSToby Isaac PetscLogDouble mem;
27b665b14eSToby Isaac PetscLogDouble descMem;
28b665b14eSToby Isaac } PetscClassPerfInfo;
29b665b14eSToby Isaac
30b665b14eSToby Isaac typedef struct _n_PetscClassPerfLog *PetscClassPerfLog;
31b665b14eSToby Isaac struct _n_PetscClassPerfLog {
32b665b14eSToby Isaac int numClasses;
33b665b14eSToby Isaac int maxClasses;
34b665b14eSToby Isaac PetscClassPerfInfo *classInfo;
35b665b14eSToby Isaac };
36b665b14eSToby Isaac
37b665b14eSToby Isaac typedef struct {
38b665b14eSToby Isaac char *name;
39b665b14eSToby Isaac PetscClassId classid;
40b665b14eSToby Isaac PetscBool collective;
41b665b14eSToby Isaac #if defined(PETSC_HAVE_TAU_PERFSTUBS)
42b665b14eSToby Isaac void *timer;
43b665b14eSToby Isaac #endif
44b665b14eSToby Isaac #if defined(PETSC_HAVE_MPE)
45b665b14eSToby Isaac int mpe_id_begin;
46b665b14eSToby Isaac int mpe_id_end;
47b665b14eSToby Isaac #endif
48b665b14eSToby Isaac } PetscEventRegInfo;
49b665b14eSToby Isaac
50b665b14eSToby Isaac typedef struct _n_PetscEventRegLog *PetscEventRegLog;
51b665b14eSToby Isaac struct _n_PetscEventRegLog {
52b665b14eSToby Isaac int numEvents;
53b665b14eSToby Isaac int maxEvents;
54b665b14eSToby Isaac PetscEventRegInfo *eventInfo; /* The registration information for each event */
55b665b14eSToby Isaac };
56b665b14eSToby Isaac
57b665b14eSToby Isaac typedef struct _n_PetscEventPerfLog *PetscEventPerfLog;
58b665b14eSToby Isaac struct _n_PetscEventPerfLog {
59b665b14eSToby Isaac int numEvents;
60b665b14eSToby Isaac int maxEvents;
61b665b14eSToby Isaac PetscEventPerfInfo *eventInfo;
62b665b14eSToby Isaac };
63b665b14eSToby Isaac
64b665b14eSToby Isaac typedef struct _PetscStageInfo {
65b665b14eSToby Isaac char *name;
66b665b14eSToby Isaac PetscBool used;
67b665b14eSToby Isaac PetscEventPerfInfo perfInfo;
68b665b14eSToby Isaac PetscClassPerfLog classLog;
69b665b14eSToby Isaac #if defined(PETSC_HAVE_TAU_PERFSTUBS)
70b665b14eSToby Isaac void *timer;
71b665b14eSToby Isaac #endif
72b665b14eSToby Isaac } PetscStageInfo;
73b665b14eSToby Isaac
74b665b14eSToby Isaac typedef struct _n_PetscStageLog *PetscStageLog;
75b665b14eSToby Isaac struct _n_PetscStageLog {
76b665b14eSToby Isaac int numStages;
77b665b14eSToby Isaac int maxStages;
78b665b14eSToby Isaac PetscIntStack stack;
79b665b14eSToby Isaac int curStage;
80b665b14eSToby Isaac PetscStageInfo *stageInfo;
81b665b14eSToby Isaac PetscEventRegLog eventLog;
82b665b14eSToby Isaac PetscClassRegLog classLog;
83b665b14eSToby Isaac };
84b665b14eSToby Isaac
8564550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogGetState()", "PetscStageLog is no longer used.") PETSC_UNUSED static PetscStageLog petsc_stageLog = PETSC_NULLPTR;
86b665b14eSToby Isaac
87b665b14eSToby Isaac /*@C
88b665b14eSToby Isaac PetscLogGetStageLog - Deprecated.
89b665b14eSToby Isaac
90b665b14eSToby Isaac Level: deprecated
91b665b14eSToby Isaac
92b665b14eSToby Isaac Note:
93b665b14eSToby Isaac PETSc performance logging and profiling is now split up between the logging state (`PetscLogState`) and the log handler (`PetscLogHandler`).
94b665b14eSToby Isaac The global logging state is obtained with `PetscLogGetState()`; many log handlers may be used at once (`PetscLogHandlerStart()`) and the default log handler is not directly accessible.
95b665b14eSToby Isaac
96b665b14eSToby Isaac .seealso: [](ch_profiling), `PetscLogEventGetPerfInfo()`
97b665b14eSToby Isaac @*/
PetscLogGetStageLog(PetscStageLog * s)98b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogGetState()", "PetscStageLog is no longer used.") static inline PetscErrorCode PetscLogGetStageLog(PetscStageLog *s)
99b665b14eSToby Isaac {
10064550dbaSPierre Jolivet *s = PETSC_NULLPTR;
101b665b14eSToby Isaac return PETSC_SUCCESS;
102b665b14eSToby Isaac }
103b665b14eSToby Isaac
104b665b14eSToby Isaac /*@C
105b665b14eSToby Isaac PetscStageLogGetCurrent - Deprecated
106b665b14eSToby Isaac
107b665b14eSToby Isaac Level: deprecated
108b665b14eSToby Isaac
109b665b14eSToby Isaac .seealso: [](ch_profiling)
110b665b14eSToby Isaac @*/
PetscStageLogGetCurrent(PetscStageLog a,int * b)111b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogStateGetCurrentStage()", "PetscStageLog is no longer used.") static inline PetscErrorCode PetscStageLogGetCurrent(PetscStageLog a, int *b)
112b665b14eSToby Isaac {
113b665b14eSToby Isaac (void)a;
114b665b14eSToby Isaac *b = -1;
115b665b14eSToby Isaac return PETSC_SUCCESS;
116b665b14eSToby Isaac }
117b665b14eSToby Isaac
118b665b14eSToby Isaac /*@C
119b665b14eSToby Isaac PetscStageLogGetEventPerfLog - Deprecated
120b665b14eSToby Isaac
121b665b14eSToby Isaac Level: deprecated
122b665b14eSToby Isaac
123b665b14eSToby Isaac Note:
124b665b14eSToby Isaac PETSc performance logging and profiling is now split up between the logging state (`PetscLogState`) and the log handler (`PetscLogHandler`).
125b665b14eSToby Isaac The global logging state is obtained with `PetscLogGetState()`; many log handlers may be used at once (`PetscLogHandlerStart()`) and the default log handler is not directly accessible.
126b665b14eSToby Isaac
127b665b14eSToby Isaac .seealso: [](ch_profiling)
128b665b14eSToby Isaac @*/
PetscStageLogGetEventPerfLog(PetscStageLog a,int b,PetscEventPerfLog * c)129b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogStateEventGetInfo()", "PetscStageLog is no longer used.") static inline PetscErrorCode PetscStageLogGetEventPerfLog(PetscStageLog a, int b, PetscEventPerfLog *c)
130b665b14eSToby Isaac {
131b665b14eSToby Isaac (void)a;
132b665b14eSToby Isaac (void)b;
13364550dbaSPierre Jolivet *c = PETSC_NULLPTR;
134b665b14eSToby Isaac return PETSC_SUCCESS;
135b665b14eSToby Isaac }
136b665b14eSToby Isaac
13764550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPLB)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject) = PETSC_NULLPTR;
13864550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPLE)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject) = PETSC_NULLPTR;
13964550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPHC)(PetscObject) = PETSC_NULLPTR;
14064550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPHD)(PetscObject) = PETSC_NULLPTR;
141b665b14eSToby Isaac
PetscLogPushCurrentEvent_Internal(PetscLogEvent e)142b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "nothing", "PETSc does not guarantee a stack property of logging events.") static inline PetscErrorCode PetscLogPushCurrentEvent_Internal(PetscLogEvent e)
143b665b14eSToby Isaac {
144b665b14eSToby Isaac (void)e;
145b665b14eSToby Isaac return PETSC_SUCCESS;
146b665b14eSToby Isaac }
147b665b14eSToby Isaac
PetscLogPopCurrentEvent_Internal(void)148b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "nothing", "PETSc does not guarantee a stack property of logging events.") static inline PetscErrorCode PetscLogPopCurrentEvent_Internal(void)
149b665b14eSToby Isaac {
150b665b14eSToby Isaac return PETSC_SUCCESS;
151b665b14eSToby Isaac }
152b665b14eSToby Isaac
153b665b14eSToby Isaac /*@C
154b665b14eSToby Isaac PetscLogAllBegin - Equivalent to `PetscLogDefaultBegin()`.
155b665b14eSToby Isaac
156b665b14eSToby Isaac Logically Collective on `PETSC_COMM_WORLD`
157b665b14eSToby Isaac
158b665b14eSToby Isaac Level: deprecated
159b665b14eSToby Isaac
160b665b14eSToby Isaac Note:
161b665b14eSToby Isaac In previous versions, PETSc's documentation stated that `PetscLogAllBegin()` "Turns on extensive logging of objects and events," which was not actually true.
162b665b14eSToby Isaac The actual way to turn on extensive logging of objects and events was, and remains, to call `PetscLogActions()` and `PetscLogObjects()`.
163b665b14eSToby Isaac
164b665b14eSToby Isaac .seealso: [](ch_profiling), `PetscLogDump()`, `PetscLogDefaultBegin()`, `PetscLogActions()`, `PetscLogObjects()`
165b665b14eSToby Isaac @*/
PetscLogAllBegin(void)166b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogDefaultBegin()", ) static inline PetscErrorCode PetscLogAllBegin(void)
167b665b14eSToby Isaac {
168b665b14eSToby Isaac return PetscLogDefaultBegin();
169b665b14eSToby Isaac }
170b665b14eSToby Isaac
171b665b14eSToby Isaac /*@C
172b665b14eSToby Isaac PetscLogSet - Deprecated.
173b665b14eSToby Isaac
174b665b14eSToby Isaac Level: deprecated
175b665b14eSToby Isaac
176b665b14eSToby Isaac Note:
177b665b14eSToby Isaac PETSc performance logging and profiling is now split up between the logging state (`PetscLogState`) and the log handler (`PetscLogHandler`).
178b665b14eSToby Isaac The global logging state is obtained with `PetscLogGetState()`; many log handlers may be used at once (`PetscLogHandlerStart()`) and the default log handler is not directly accessible.
179b665b14eSToby Isaac
180b665b14eSToby Isaac .seealso: [](ch_profiling), `PetscLogEventGetPerfInfo()`
181b665b14eSToby Isaac @*/
182b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogLegacyCallbacksBegin()", )
PetscLogSet(PetscErrorCode (* a)(int,int,PetscObject,PetscObject,PetscObject,PetscObject),PetscErrorCode (* b)(int,int,PetscObject,PetscObject,PetscObject,PetscObject))183b665b14eSToby Isaac static inline PetscErrorCode PetscLogSet(PetscErrorCode (*a)(int, int, PetscObject, PetscObject, PetscObject, PetscObject), PetscErrorCode (*b)(int, int, PetscObject, PetscObject, PetscObject, PetscObject))
184b665b14eSToby Isaac {
18564550dbaSPierre Jolivet return PetscLogLegacyCallbacksBegin(a, b, PETSC_NULLPTR, PETSC_NULLPTR);
186b665b14eSToby Isaac }
187