Files
epics-base/documentation/new-notes/PR-788.md
T

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%