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