On Mon, Jan 11, 2016 at 10:38:28PM +0000, Seymour, Shane M wrote:
I have some concerns and suggestions for you about this.
What's to stop someone in user space from requesting an arbitrarily large number of CPU # cache locations that the kernel needs to allocate memory to track and each time the task migrates to a new CPU it needs to update them all? Could you use it to dramatically slow down a system/task switching? Should there be a ulimit type value or a sysctl setting to limit the number that you're allowed to register per-task?
The documented behavior of the syscall allows only one location per
thread, so the kernel can track that one and only address rather easily
in the task_struct. Allowing dynamic allocation definitely doesn't seem
like a good idea.
- Josh Triplett