)]}'
{"id":"openvpn~1991","triplet_id":"openvpn~master~I97c55e211f9113d090808724ab43cb3c94099fb0","project":"openvpn","branch":"master","full_branch":"refs/heads/master","attention_set":{"1000041":{"account":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"last_update":"2026-10-13 10:48:08.000000000","reason":"\u003cGERRIT_ACCOUNT_1000007\u003e replied on the change","reason_account":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"}},"1000003":{"account":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-10-13 10:04:57.000000000","reason":"Reviewer was added"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I97c55e211f9113d090808724ab43cb3c94099fb0","subject":"dco_linux: enable RPS on newly created DCO interfaces","status":"NEW","created":"2026-10-13 10:04:56.000000000","updated":"2026-10-13 10:48:16.000000000","submit_type":"CHERRY_PICK","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"40da3c24d452366c9e17c7c2692c0b23c3670a34","_number":1991,"virtual_id_number":1991,"owner":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"date":"2026-10-13 10:48:16.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"}],"values":{"-2":"This shall not be submitted","-1":"I would prefer this is not submitted as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"}],"CC":[{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-10-13 10:04:57.000000000","updated_by":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"real_updated_by":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2026-10-13 10:04:57.000000000","updated_by":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"real_updated_by":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"reviewer":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2026-10-13 10:48:08.000000000","updated_by":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"real_updated_by":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"reviewer":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"state":"REVIEWER"}],"messages":[{"id":"9c953deeaae4dbb5a9398bc0ed0b78962163b40b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2026-10-13 10:04:56.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"2c3548cfd55de4ce0d8df186fd4a2c98218d2649","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-13 10:48:08.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"40da3c24d452366c9e17c7c2692c0b23c3670a34","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-13 10:48:16.000000000","message":"Patch Set 1: -Code-Review","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"b4004c28690cdc057f33573ca50e018eaebe0baf","revisions":{"b4004c28690cdc057f33573ca50e018eaebe0baf":{"kind":"REWORK","_number":1,"created":"2026-10-13 10:04:56.000000000","uploader":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/91/1991/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/91/1991/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/91/1991/1 \u0026\u0026 git checkout -b change-1991 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/91/1991/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/91/1991/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/91/1991/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/91/1991/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/91/1991/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"f1edccb06fdbcdcd234a09283f196af9ed8965a2","subject":"Support pre-existing Linux DCO interfaces"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2026-10-13 08:56:26.000000000","tz":120},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2026-10-13 10:04:44.000000000","tz":120},"subject":"dco_linux: enable RPS on newly created DCO interfaces","message":"dco_linux: enable RPS on newly created DCO interfaces\n\nWhen multiple TCP streams share an OpenVPN tunnel, their ACKs arrive\nthrough the same outer flow and can be processed on a single NIC RX CPU.\nDelivering the decrypted ACKs can also drain TCP transmit queues inline,\nconcentrating receive processing, transmission and crypto work on that\nCPU despite the parallelism available between inner flows.\n\nEnable Receive Packet Steering (RPS) on newly created DCO interfaces to\ndistribute inner flow processing across CPUs, after decryption. Build a\nmask covering all possible CPU IDs and let the kernel filter out offline\nCPUs.\n\nLeave pre-existing interfaces and nonzero RPS masks unchanged, including\nmasks inherited from net.core.rps_default_mask. Failure to configure RPS\nis nonfatal.\n\nTested on a Ryzen 9 9950X with Fedora\u0027s stock ovpn module from kernel\n7.2.5-200.fc44.x86_64 and two ConnectX-4 Lx ports were cabled at 25\nGb/s, The tunnel used IPv4/UDP, AES-256-GCM and MTU 1448. Values are\nmedians across three 20 seconds iperf3 runs, after a 3-second warmup:\n\nflows    RPS off     RPS on      change\n  1         9.01      12.06      +33.9%\n  4         9.41      16.90      +79.6%\n\nAt four streams, the sender NIC IRQ CPU\u0027s average softirq utilization\nwas 98.7-99.5% off and 4.7-47.2% on.\n\nChange-Id: I97c55e211f9113d090808724ab43cb3c94099fb0\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"NOT_READY","labels":[{"label":"Code-Review","status":"NEED"}]},{"rule_name":"checks~ChecksSubmitRule","status":"OK"}]}
