Re: [RFC PATCH v1] pin_on_cpu: Introduce thread CPU pinning system call
From: Mathieu Desnoyers
Date: Tue Jan 21 2020 - 20:11:15 EST
----- On Jan 21, 2020, at 4:44 PM, Chris Lameter cl@xxxxxxxxx wrote:
> These scenarios are all pretty complex and will be difficult to understand
> for the user of these APIs.
>
> I think the easiest solution (and most comprehensible) is for the user
> space process that does per cpu operations to get some sort of signal. If
> its not able to handle that then terminate it. The code makes a basic
> assumption after all that the process is running on a specific cpu. If
> this is no longer the case then its better to abort if the process cannot
> handle moving to a different processor.
The point of pin_on_cpu() is to allow threads to access per-cpu data
structures belonging to a given CPU even if they cannot run on that
CPU (because it is offline).
I am not sure what scenario your signal delivery proposal aims to cover.
Just to try to put this into the context of a specific scenario to see
if I understand your point, is the following what you have in mind ?
1. Thread A issues pin_on_cpu(5),
2. Thread B issues sched_setaffinity removing cpu 5 from thread A's
affinity mask,
3. Noticing that it would generate an invalid combination, rather than
failing sched_setaffinity, it would send a SIGSEGV (or other) signal
to thread A.
Or so you have something entirely different in mind ?
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com