Skip to content
  • Toby Isaac's avatar
    Profiling: Switch logging over to the new PetscLogHandler infrastructure · b665b14e
    Toby Isaac authored
    - Move data structures only needed by the default logger now (Action,
      Object) to logdefault.c
    
    - Create petsclogdeprecated.h and petsc/private/logimpldeprecated.h
      for publicly visible symbols that are now deprecated.  Yes,
      lots of symbols in petsc/private/logimpl.h were not only visible
      but had docstrings.
    
    - The macros PetscLogEventBegin(), PetscLogEventEnd(),
      PetscLogEventSync(), PetscLogObjectCreate(), and
      PetscLogObjectDestroy() now looks through the log handlers
      in PetscLogHandlers, sees if they have they appropriate
      callbacks (Exposed in PetscLogHandlerHot), and calls them.
      Up to 4 log handlers can run simultaneously.
    
    - All queries about the registered things now go through
      petsc_log_state.
    
    - Output functions dispatch to the appropriate PetscLogHandler
    
    - There is no need for xmllogevent.c, xmlviewer.c, eventlog.c,
      classlog.c, and stagelog.c anymore.  Some orphaned functions
      (PetscLogSetThreshold(), PetscLogEventSetDof(),
      PetscLogEventSetError(), PetscASend(), PetscARecv(), PetscAReduce())
    
    - PetscFEOpenCLLogResidual() did some intrusive things related
      to the old logging infrastruture: the private header
      for the default log handler is now imported into feopencl.c
      so that it can do equivalent things with the new infrastructure.
    
    - PetscLogPauseCurrentEvent_Internal() is replaced with
      PetscLogEventsPause()
    
    Deprecated symbols include:
    
    - All functions related to PetscStageLog and the resizable array structs
      that it contained.
    
    - The legacy EventBegin()/EventEnd() callbacks.
    
    - PetscLogAllBegin(), which actually reported less information than
      PetscLogDefaultBegin() because it was not kept up-to-date with
      regards to GPU profiling.
    b665b14e