Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kernel-debug-log] Kernel debug log #25

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open

Commits on Jul 3, 2024

  1. move cache flush from untyped reset to retype

    Do not perform cache flushing in clearMemory. Instead flush the cache
    only for those object types where it is necessary, and only when the
    object is retyped, not when the untyped cap is reset.
    
    This reduces overall need for flushing and delays it to the point of
    use. This should speed up boot time significantly, but may impact WCET,
    because the largest flush is now the largest page size (e.g. 24) instead
    of CONFIG_RESET_CHUNK_BITS (8). The user could already request a flush
    of the largest page size before, though, so it this may not actually
    impact WCET. Remains to be investigated.
    
    Why this is safe:
    
    - Flushing is only necessary for objects that are seen by other parts of
      the system, not for kernel-internal object. These objects are
      non-device frames (including IOMMU pages) and page tables. All other
      objects are only read/written by the kernel. Frames need to be flushed
      to RAM (as clearMemory did), because they could be seen uncached by
      devices. Page tables only to PoU for the page table walker.
    
    - Before createNewObject in retype, these objects do not exist and
      cannot be seen by any part of the system. createNewObject is the point
      where new objects can become visible to the user.
    
    - Theoretically, we could defer flushing further to the point where
      frames or page tables are mapped, but it is more complex to track
      whether a flush has already happened when they are mapped multiple
      times, whereas at retype the object cannot have been flushed already.
    
    - The original implementation, before clearing memory was moved into
      reset untyped, also flushed at the same points.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jul 3, 2024
    Configuration menu
    Copy the full SHA
    7d48258 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. fix parameter for log buffer cleanup

    The function expects the size in bits.
    
    Signed-off-by: Axel Heider <[email protected]>
    Axel Heider authored and lsf37 committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    4856e6b View commit details
    Browse the repository at this point in the history
  2. configs: add zynqmp and rpi4 to verified platforms

    The AARCH64 config now also works for functional correctness on
    zcu102/zcu106 and rpi4.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    4b7c2a3 View commit details
    Browse the repository at this point in the history
  3. Merge lsf37/faster-ut-reset

    Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    0592e21 View commit details
    Browse the repository at this point in the history
  4. wip remove clearMemory() wrapper, cleanup

    Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    0ca3177 View commit details
    Browse the repository at this point in the history
  5. cleanup

    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    09c4f43 View commit details
    Browse the repository at this point in the history
  6. benchmark: use explicit field names

    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    f3c5ebe View commit details
    Browse the repository at this point in the history
  7. benchmark: unify variable definitions

    - unify benchmarking across all architectures
    - drop global variables ksExit, ksLogIndexFinalized
    - improve comments
    
    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    497a13a View commit details
    Browse the repository at this point in the history
  8. benchmark: cleanup includes

    - cleanup includes and guards
    - hide includes if features are not enabled.
    - improve comments
    
    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    250f2e3 View commit details
    Browse the repository at this point in the history
  9. benchmark: move ksUserLogBuffer declaration

    Remove ksUserLogBuffer declaration from the state data and declare it in
    the benchmark code instead.
    
    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    806519d View commit details
    Browse the repository at this point in the history
  10. benchmark: rework tracepoints

    add ENABLE_KERNEL_TRACEPOINTS
    
    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    406934f View commit details
    Browse the repository at this point in the history
  11. benchmark: move ksUserLogBuffer declaration

    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    44780d3 View commit details
    Browse the repository at this point in the history
  12. benchmark: rework kernel entry/exit tracing

    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    85850be View commit details
    Browse the repository at this point in the history
  13. benchmark: make benchmark_track.h obsolete

    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    b4deb96 View commit details
    Browse the repository at this point in the history
  14. benchmark: consolidate track and trace points

    - define core specific timestampEnter
    - remove generic ksExit
    
    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    d8e75ca View commit details
    Browse the repository at this point in the history
  15. benchmark: remove benchmark_track.h

    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    185e270 View commit details
    Browse the repository at this point in the history
  16. define CONFIG_KERNEL_LOG_BUFFER_SIZE

    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    17665bf View commit details
    Browse the repository at this point in the history
  17. introduce CONFIG_ENABLE_KERNEL_LOG_BUFFER

    Rename CONFIG_KERNEL_LOG_BUFFER to CONFIG_ENABLE_KERNEL_LOG_BUFFER to
    follow the logic used already for other automatically generated config
    settings.
    
    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    3873f52 View commit details
    Browse the repository at this point in the history
  18. benchmark: remove empty files

    Signed-off-by: Axel Heider <[email protected]>
    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    ac1b73b View commit details
    Browse the repository at this point in the history
  19. wip cleanup utiluzation

    axel-h authored and Axel Heider committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    68cd694 View commit details
    Browse the repository at this point in the history