Re: [RFC PATCH v3 1/2] mempinfd: Add new syscall to provide memory pin

From: David Hildenbrand
Date: Thu Feb 11 2021 - 05:32:55 EST



Again in proper SVA it should be quite unlikely to take a fault caused
by something like migration, on the same likelyhood as the CPU. If
things are faulting so much this is a problem then I think it is a
system level problem with doing too much page motion.

My point is that single one SVA application shouldn't require system
to make global changes, such as disabling numa balancing, disabling
THP, to decrease page fault frequency by affecting other applications.

Anyway, guys are in lunar new year. Hopefully, we are getting more
real benchmark data afterwards to make the discussion more targeted.

Right, but I think functionality as proposed in this patch is highly unlikely to make it into the kernel. I'd be interested in approaches to mitigate this per process. E.g., temporarily stop the kernel from messing with THP of this specific process.

But even then, why should some random library make such decisions for a whole process? Just as, why should some random library pin pages never allocated by it and stop THP from being created or NUMA layout from getting optimized? This looks like a clear layer violation to me.

I fully agree with Jason: Why do the events happen that often such that your use cases are affected that heavily, such that we even need such ugly handling?

What mempinfd does is exposing dangerous functionality that we don't want 99.99996% of all user space to ever use via a syscall to generic users to fix broken* hw.

*broken might be over-stressing the situation, but the HW (SVA) obviously seems to perform way worse than ordinary CPUs.

--
Thanks,

David / dhildenb