On Fri, 2024-12-06 at 09:06 -0500, Mathieu Desnoyers wrote: > > Thinking back on this, you'll want a program that does the following > on a system with N CPUs: > > - Phase 1: run one thread per cpu, pinned on each cpu. Print the > mm_cid from each thread with the cpu number every second or so. > > - Exit all threads except the main thread, join them from the main > thread, > > - Phase 2: the program is now single-threaded. We'd expect the > mm_cid value to converge towards 0 as the periodic task clears > unused CIDs. > > So I think in phase 2 we can have an actual automated test: If after > an order of magnitude more time than the 100ms delay between periodic > tasks we still observe mm_cid > 0 in phase 2, then something is > wrong. > > Thoughts ? Nice idea, that looks neat and fairly simple. Also by printing every second we would get the threads running in short bursts and, probably, the test would fail with the current implementation, depending how long we wait, of course. I can try to draft something to test my implementation. Thanks, Gabriele