{"action":"created","issue":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/476","labels_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/476/labels{/name}","comments_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/476/comments","events_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/476/events","html_url":"https://github.com/SnabbCo/snabbswitch/issues/476","id":76085563,"number":476,"title":"Find an alternative to isolcpus","user":{"login":"lukego","id":13791,"avatar_url":"https://avatars.githubusercontent.com/u/13791?v=3","gravatar_id":"","url":"https://api.github.com/users/lukego","html_url":"https://github.com/lukego","followers_url":"https://api.github.com/users/lukego/followers","following_url":"https://api.github.com/users/lukego/following{/other_user}","gists_url":"https://api.github.com/users/lukego/gists{/gist_id}","starred_url":"https://api.github.com/users/lukego/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukego/subscriptions","organizations_url":"https://api.github.com/users/lukego/orgs","repos_url":"https://api.github.com/users/lukego/repos","events_url":"https://api.github.com/users/lukego/events{/privacy}","received_events_url":"https://api.github.com/users/lukego/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-13T18:50:29Z","updated_at":"2015-05-14T07:50:55Z","closed_at":null,"body":"Snabb Switch processes generally want their own CPU core to use exclusively. The recommendation is to use the Linux `isolcpus` boot parameter to reserve cores for these processes and then bind to them using `taskset -c <core> snabb ...`. The `isolcpus` parameter ensures that the kernel will not schedule work onto these cores automatically. This works well, but it is not necessarily convenient to have to reboot the kernel with specific CPU reservations to allocate resources for Snabb Switch processes.\r\n\r\nLet us find the next best alternative to recommend in cases where the user does not want to reserve a core but does want to achieve close to maximum performance even when the machine is under heavy load.\r\n\r\nThe options would include:\r\n\r\n- Running with high priority on `nice`.\r\n- Running with realtime priority.\r\n- Dynamically reserving cores using Linux scheduler calls."},"comment":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/comments/101958782","html_url":"https://github.com/SnabbCo/snabbswitch/issues/476#issuecomment-101958782","issue_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/476","id":101958782,"user":{"login":"lukego","id":13791,"avatar_url":"https://avatars.githubusercontent.com/u/13791?v=3","gravatar_id":"","url":"https://api.github.com/users/lukego","html_url":"https://github.com/lukego","followers_url":"https://api.github.com/users/lukego/followers","following_url":"https://api.github.com/users/lukego/following{/other_user}","gists_url":"https://api.github.com/users/lukego/gists{/gist_id}","starred_url":"https://api.github.com/users/lukego/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukego/subscriptions","organizations_url":"https://api.github.com/users/lukego/orgs","repos_url":"https://api.github.com/users/lukego/repos","events_url":"https://api.github.com/users/lukego/events{/privacy}","received_events_url":"https://api.github.com/users/lukego/received_events","type":"User","site_admin":false},"created_at":"2015-05-14T07:50:55Z","updated_at":"2015-05-14T07:50:55Z","body":"Could be that `cpuset(7)`(http://man7.org/linux/man-pages/man7/cpuset.7.html) is a good solution. There is much discussion of this as a potential successor to isolcpus on the interwebs and it sounds like it can cover our use case of excluding other processes (and kernel threads and interrupt handlers) from using \"our\" cores."}}