mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
MINOR: thread: implement the detection of forced cpu affinity
Create a function thread_cpu_mask_forced. Its purpose is to report if a restrictive cpu mask is active for the current proces, for example due to a taskset invocation. It is only implemented for the linux platform currently.
This commit is contained in:
parent
982fb53390
commit
4c9efdecf5
@ -277,6 +277,10 @@ static inline unsigned long thread_isolated()
|
||||
return threads_want_rdv_mask & ~threads_harmless_mask & tid_bit;
|
||||
}
|
||||
|
||||
/* Returns 1 if the cpu set is currently restricted for the process else 0.
|
||||
* Currently only implemented for the Linux platform.
|
||||
*/
|
||||
int thread_cpu_mask_forced();
|
||||
|
||||
#if !defined(DEBUG_THREAD) && !defined(DEBUG_FULL)
|
||||
|
||||
|
13
src/thread.c
13
src/thread.c
@ -193,6 +193,19 @@ static int thread_cpus_enabled()
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Returns 1 if the cpu set is currently restricted for the process else 0.
|
||||
* Currently only implemented for the Linux platform.
|
||||
*/
|
||||
int thread_cpu_mask_forced()
|
||||
{
|
||||
#if defined(__linux__)
|
||||
const int cpus_avail = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
return cpus_avail != thread_cpus_enabled();
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Depending on the platform and how libpthread was built, pthread_exit() may
|
||||
* involve some code in libgcc_s that would be loaded on exit for the first
|
||||
* time, causing aborts if the process is chrooted. It's harmless bit very
|
||||
|
Loading…
Reference in New Issue
Block a user