{"action":"created","issue":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/346","labels_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/346/labels{/name}","comments_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/346/comments","events_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/346/events","html_url":"https://github.com/SnabbCo/snabbswitch/issues/346","id":54863917,"number":346,"title":"Optimize straightline branch","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":[],"state":"open","locked":false,"assignee":{"login":"dpino","id":11567,"avatar_url":"https://avatars.githubusercontent.com/u/11567?v=3","gravatar_id":"","url":"https://api.github.com/users/dpino","html_url":"https://github.com/dpino","followers_url":"https://api.github.com/users/dpino/followers","following_url":"https://api.github.com/users/dpino/following{/other_user}","gists_url":"https://api.github.com/users/dpino/gists{/gist_id}","starred_url":"https://api.github.com/users/dpino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpino/subscriptions","organizations_url":"https://api.github.com/users/dpino/orgs","repos_url":"https://api.github.com/users/dpino/repos","events_url":"https://api.github.com/users/dpino/events{/privacy}","received_events_url":"https://api.github.com/users/dpino/received_events","type":"User","site_admin":false},"milestone":null,"comments":16,"created_at":"2015-01-20T10:03:16Z","updated_at":"2015-01-21T10:47:22Z","closed_at":null,"body":"Goal: Optimize the [straightline](https://github.com/virtualopensystems/snabbswitch/tree/straightline) branch to have performance that is consistently competitive with master.\r\n\r\n* Key benchmark: `loadgen-snabb-nic-guest` to forward 256-byte packets `NIC -> Snabb -> VM -> Snabb -> NIC`. Target is 10G line rate of 4.4 Mpps when running 3 parallel instances on the same NUMA node of grindelwald.\r\n* Additional benchmark: iperf runs in the NFV application selftests to be consistent with master.\r\n\r\nCurrent state at the time of writing:\r\n\r\n* Benchmark is functional on branch. `loadgen` currently broken; using the one from master.\r\n* Variance in performance that is not accounted for.\r\n* JIT behavior is suboptimal (~15% interpreted + ~5% GC)\r\n* Snabb Switch `struct link` and QEMU Virtio-net `vring` both reduced from 8192 elements to 256. Operational impact not fully understood yet. Could reduce throughput by starvation or cause drops by overflow. (This is both to reduce the cache footprint of the working set and to match upstream QEMU. @n-nikolaev will post the branch.)\r\n* Many other parts of Snabb Switch are broken on this branch due to `struct packet` redesign.\r\n\r\nQuestions? ask here and @n-nikolaev has answers :-).\r\n\r\nFixes should be Pull Requested to the branch cited above for @n-nikolaev to merge into the straightline branch. Once everything is working he will pull request it to master."},"comment":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/comments/70817546","html_url":"https://github.com/SnabbCo/snabbswitch/issues/346#issuecomment-70817546","issue_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/346","id":70817546,"user":{"login":"n-nikolaev","id":7499349,"avatar_url":"https://avatars.githubusercontent.com/u/7499349?v=3","gravatar_id":"","url":"https://api.github.com/users/n-nikolaev","html_url":"https://github.com/n-nikolaev","followers_url":"https://api.github.com/users/n-nikolaev/followers","following_url":"https://api.github.com/users/n-nikolaev/following{/other_user}","gists_url":"https://api.github.com/users/n-nikolaev/gists{/gist_id}","starred_url":"https://api.github.com/users/n-nikolaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n-nikolaev/subscriptions","organizations_url":"https://api.github.com/users/n-nikolaev/orgs","repos_url":"https://api.github.com/users/n-nikolaev/repos","events_url":"https://api.github.com/users/n-nikolaev/events{/privacy}","received_events_url":"https://api.github.com/users/n-nikolaev/received_events","type":"User","site_admin":false},"created_at":"2015-01-21T10:47:21Z","updated_at":"2015-01-21T10:47:21Z","body":"OK so the `straightline` branch now has all Luke's updates + a small patch from me.\r\nThis effectively makes loadgen working in the tree. \r\n \r\n * Please update and remove  your `RUN_LOADGEN= ` line from the `bench_env.conf`.\r\n * Use 82 - I dropped it from my PCI list\r\n * can you please verify also this issue https://github.com/SnabbCo/snabbswitch/issues/347\r\n for me it means that changing the file `src/test_fixtures/nfvconfig/test_functions/snabbnfv-bench.port` from `port_id = \"A\",` to `\"port_id = \"a\",` gives me better numbers in the tests.\r\n"}}