Re: [Bug 275943] PF Ether Rules : High Cpu Usage
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 275943] PF Ether Rules : High Cpu Usage"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 26 Dec 2023 15:22:22 UTC
26.12.23 13:34, bugzilla-noreply@freebsd.org: > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275943 > > Bug ID: 275943 > Summary: PF Ether Rules : High Cpu Usage > Product: Base System > Version: 14.0-RELEASE > Hardware: amd64 > OS: Any > Status: New > Severity: Affects Only Me > Priority: --- > Component: kern > Assignee: bugs@FreeBSD.org > Reporter: 32carleone@gmail.com > > Hi > > When I use pf as Layer3, I don't encounter any performance issues. However, > when I enable Layer2, the CPU usage goes up to 100% and I loose throughput. > > Below is htop and iperf during Layer3 > > ``` > 0[ 15.7% ] > 1[ 12.6% ] > 2[ 65.4% ] > 3[ 9.4% ] > Mem[ 1.74G/3.86G ] > Swp[ 0K/3.79G ] > > > # iperf3 -c 192.168.1.236 -t 30 -p 5201 > > [ ID] Interval Transfer Bitrate > [ 5] 0.00-1.00 sec 111 MBytes 930 Mbits/sec > [ 5] 1.00-2.00 sec 111 MBytes 933 Mbits/sec > [ 5] 2.00-3.00 sec 111 MBytes 933 Mbits/sec > [ 5] 3.00-4.00 sec 111 MBytes 934 Mbits/sec > [ 5] 4.00-5.00 sec 111 MBytes 933 Mbits/sec > > ``` > > And output for Layer2+Layer3 > > ``` > 0[ 12.0% ] > 1[ 7.7% ] > 2[ 100.0% ] > 3[ 4.3% ] > Mem[ 1.73G/3.86G ] > Swp[ 0K/3.79G ] > > > > # iperf3 -c 192.168.1.236 -t 30 -p 5201 > > [ ID] Interval Transfer Bitrate > [ 5] 0.00-1.00 sec 52.0 MBytes 436 Mbits/sec > [ 5] 1.00-2.00 sec 79.7 MBytes 669 Mbits/sec > [ 5] 2.00-3.00 sec 79.5 MBytes 667 Mbits/sec > [ 5] 3.00-4.00 sec 79.6 MBytes 668 Mbits/sec > [ 5] 4.00-5.00 sec 79.4 MBytes 666 Mbits/sec > > ``` > > > > > Issues arose after I added this rule to my config file > ``` > ether anchor "allowed_mac_igb1" on { igb1 } > ``` > > > And these are the rules in the anchor > ``` > ether pass in quick from 00:0c:29:4e:df:8e l3 all tag allowed_mac_igb1 dnpipe > 1002 > ether pass out quick to 00:0c:29:4e:df:8e l3 all tag allowed_mac_igb1 dnpipe 2 > ether pass in quick from 00:0c:29:97:15:80 l3 all tag allowed_mac_igb1 dnpipe > 1002 > ether pass out quick to 00:0c:29:97:15:80 l3 all tag allowed_mac_igb1 dnpipe 2 > ether pass in quick from 00:11:32:52:54:3a l3 all tag allowed_mac_igb1 dnpipe > 1002 > ether pass out quick to 00:11:32:52:54:3a l3 all tag allowed_mac_igb1 dnpipe 2 > .. +270 line > ``` > As I can see you have single core loaded to 100%. Can it be imact of using dnpipe and not layer2 filtering?