On Mon, Dec 07 2020 at 17:09, Thomas Gleixner wrote: > On Mon, Dec 07 2020 at 08:08, Christoph Lameter wrote: >> This a clearly defined set of functions and I am not sure how policy fits >> into that. > > It's about silencing different and largely independent parts of the OS > on a particular CPU. Just defining upfront that there is only the choice > of all or nothing _is_ policy. Plus about the way to silence them because that's a matter of costs. Depending on the usage scenario you want to carefully weigh the costs against the benefits. If you go into I/O polling forever you don't care how long it takes to fully quiesce the CPU. It simply does not matter at all. In a real-world usecase we had the situation of compute bursts and an unfortunate hw enforced requirement to go into the kernel between them for synchronization between the compute threads and hardware (A quick hardware assisted save/load). Unmodified NOHZ full accumulated to more than 6% loss compared to a fully undisturbed run. Most of it was caused by cache effects and not by the actually used CPU time. A full enforced quiescing upfront gained ~2-3%, but a lazy approach of accepting that some stuff might happen once and does not happen again gained almost 5%. In that particular scenario 5% _is_ a huge win. There is a world outside of the high frequency gambling bubble and there is neither a technical nor a justification to declare that everything has to be a nail just because the kernel provides is a hammer. Thanks, tglx