RHEL5 cpusets when used with isolcpus doesn't distribute threads across groups what's the best way to prevent a set of cpus from getting interrupted

Solution Unverified - Updated -

Issue

I'm trying to make sure the cpusets I'm creating with csets don't get interrupted by other processes. In this example, I'm creating a cpuset with all the cores in one node and then assigning the threads of router to it:

# cset set --cpu=8-15,40-47 --mem=0-3 ROUTER
# for i in `ps -ef | grep router`; do sudo cset proc --move $i --threads ROUTER; done

This seems to work fine (as you can see, some router threads spin at 100% cpu)

[root@acme123 ~]#  ps -eLo pcpu,psr,pid,user,args  | grep router
arcaqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
99.6  44  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
99.6  45  2486 acmeqa  /app/utp/utp/bin/ux_router SOD -name EQROUTER
99.6  11  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
99.6  10  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
99.6  14  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
99.6  40  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 1.5   8  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0  41  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8  2486 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER

However, if I add "isolcpus=8-15,40-47" to the boot line and try the same test, all the router threads get pinned to the first core in the cpuset, causing terrible performance.

1.5   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
62.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
62.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
62.1   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
62.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
62.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
62.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 1.9   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER
 0.0   8 27465 acmeqa   /app/utp/utp/bin/ux_router SOD -name EQROUTER

Environment

  • Red Hat Enterprise Linux 5.5

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In