914 B
914 B
epicsThreadGetCPUs and callbackParallelThreads
On systems that support it (e.g. recent Linux systems), epicsThreadGetCPUs()
now takes the current cpu affinity mask of the calling thread into acount.
That fixes the problem that an IOC which was started with a limited affinity
mask (e.g. using taskset) and that called callbackParallelThreads with an
argument of 0 in the startup script, had started more parallel callback
threads than it has CPU cores available.
The iocsh function callbackParallelThreads now also accepts positive or
negative percentages for count, referring to the availabple number of cores
and always rounding the number of used cores down with a minimum of 1.
Examples
# use up to 25% of available cpu cores for callback threads
callbackParallelThreads 25%
# keep at least 10% of available cpu cores unused for callback threads
callbackParallelThreads -10%