Hello, while debugging why XEN domU kernels hang on psrlz, I found that, when this happens, pserialize_switchpoint() seems to not be called for one of the CPUs (not always the same). The CPU in question doens't show up in psz->psz_pass. I also noticed that sometimes, pserialize_perform() seems to take much longer (several seconds) than it should.
Now my question: how is pserialize_switchpoint() supposed to be called ? I see it's called from softint_dispatch() but Xen doesn't use it (no fast soft interrupts). I see it's called from lwp_startup() and mi_switch(), but only if there is a context switch. If the CPU is idle, it will never be called. So how should an idle CPU be handled ? -- Manuel Bouyer <[email protected]> NetBSD: 26 ans d'experience feront toujours la difference --
