Hello,
I implemented a statistical profiler for fiasco using performance monitoring counters (nmi handler is attached to handle_slow_trap()). It works fairly well for "mathematical" workloads but as soon as interrupt activity gets involved to a greater extent, the system freezes. For example, keeping a button pressed while sampling will freeze the machine within a few seconds. The NMI watchdog does not trigger during that freeze. Higher sampling rates also cause these freezes.
So imho there seems to be a problem when irq_interrupt() or Irq::hit() is interrupted by an NMI. What do you think? Any hints on how to fix this or on how to debug this will be greatly appreciated.
Thanks in advance. I will happily provide further information if needed.