On Wed, Oct 23, 2024 at 06:39:37PM +0200, Valentin Schneider wrote:
On 22/10/24 10:57, Saurabh Sengar wrote:
On a x86 system under test with 1780 CPUs, topology_span_sane() takes around 8 seconds cumulatively for all the iterations. It is an expensive operation which does the sanity of non-NUMA topology masks.
CPU topology is not something which changes very frequently hence make this check optional for the systems where the topology is trusted and need faster bootup.
Restrict this to SCHED_DEBUG builds so that this penalty can be avoided for the systems who wants to avoid it.
Fixes: ccf74128d66c ("sched/topology: Assert non-NUMA topology masks don't (partially) overlap") Signed-off-by: Saurabh Sengar ssengar@linux.microsoft.com
Please see: http://lore.kernel.org/r/20241010155111.230674-1-steve.wahl@hpe.com
Also note that most distros ship with CONFIG_SCHED_DEBUG=y, so while I'm not 100% against it this would at the very least need to be gated behind e.g. the sched_verbose cmdline argument to be useful.
Thanks for your review. I thought of using sched_verbose first, but I assumed that many systems might not be using this command line option and I didn't want them to have change in behaviour after my patch.
But if you think this is the right approach, I can send the V2.
But before that I'd like the "just run it once" option to be explored first.
That's a great improvement, but I understand there will still be a linear penalty to pay for this sanity check. In my opinion, regardless of whether these improvements are accepted or not, we should make this sanity check optional.
- Saurabh