Re: Network starvation question

2023-11-03 Thread Cheng Cui
Hi Yuri,

If I understand your situation correctly, your application A is using UDP
but
application B is using TCP and the max outbound bandwidth is < 4MBps.

If A can send at 3.5 Mbps and B can send at 0.5 Mbps, why B is suffering
more in throughput when the outbound limit is < 4Mbps?

There are many factors I think in my experience that can contribute to this.
But maybe we prefer a solution rather than the root cause of the difference.
If you can tune A to use less bandwidth and let B to use the full 0.5 Mbps,
the problem may be solved. (for example, iperf default in UDP is ~1Mbps but
can be tuned to send at max bandwidth, so vice versa)

Then, back to the possible contribution factors of TCP suffering from a UDP
traffic competition :

   1. UDP traffic rate can be considered constant so it does not yield
   2. TCP congestion control may be encountered
   3. application's responsiveness may be different


Best Regards,
Cheng Cui


On Fri, Nov 3, 2023 at 12:42 AM Yuri  wrote:

> Hi,
>
>
> I've encountered the situation when the application A was using 100% of
> the outbound bandwidth which is approximately 3.5 MBps of UDP traffic.
>
> Then the application B (the RDP TCP connection) attempted to use a much
> lower outbound speed, probably < 0.5 MBps, and it got starved.
>
> Application B (RDP) was super slow as long as the application A kept
> running. It was almost impossible to use the RDP connection.
>
>
> My question is: shouldn't the system allow less intense streams to also
> run at a decent speed?
>
>
> Let's say that the outbound bandwidth threshold of the connection is 3.5
> MBps.
>
> The application A can send 3.5 MBps (or more).
>
> The application B can send up to 0.5 MBps.
>
> Obviously, they can't send 4.0 MBps in total, and their speeds should be
> tuned down.
>
> If both of the applications would be tuned down proportionately, this
> could be done using the 3.5/4.0 ratio, which would be 0.875.
>
> So why then does the slower connection get slowed down so much?
>
> It was obviously slowed down many times, not just by 13%.
>
>
> FreeBSD 13.2
>
>
> Thanks,
>
> Yuri
>
>
>
>


tcp and udp traffic over IPv6 does not work from the latest e1000 git change 918c25677d

2023-07-26 Thread Cheng Cui
 -n 2K

Client connecting to fd00::3, TCP port 5001
TCP window size: 32.3 KByte (default)

[  1] local fd00::2 port 27164 connected with fd00::3 port 5001
[ ID] Interval   Transfer Bandwidth
[  1] 0.00-0.02 sec  2.00 KBytes   858 Kbits/sec

cc@r1:~ % iperf -VsB fd00::3

Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)

[  1] local fd00::3 port 5001 connected with fd00::2 port 27164
[ ID] Interval   Transfer Bandwidth
[  1] 0.00-0.00 sec  2.00 KBytes  0.000 bits/sec

UDP traffic also works:

root@s1:~ # iperf -Vc fd00::3 --udp -n 2K

Client connecting to fd00::3, UDP port 5001
Sending 1450 byte datagrams, IPG target: 11062.62 us (kalman adjust)
UDP buffer size: 9.00 KByte (default)

[  1] local fd00::2 port 64612 connected with fd00::3 port 5001
[ ID] Interval   Transfer Bandwidth
[  1] 0.00-0.01 sec  3.42 KBytes  2.36 Mbits/sec
[  1] Sent 4 datagrams
[  1] Server Report:
[ ID] Interval   Transfer BandwidthJitter   Lost/Total
Datagrams
[  1] 0.00-0.01 sec  3.42 KBytes  2.38 Mbits/sec   0.010 ms 0/3 (0%)

cc@r1:~ % iperf -VsB fd00::3 --udp

Server listening on UDP port 5001
UDP buffer size: 41.1 KByte (default)

[  1] local fd00::3 port 5001 connected with fd00::2 port 64612
[ ID] Interval   Transfer BandwidthJitter   Lost/Total
Datagrams
[  1] 0.00-0.01 sec  3.42 KBytes  2.38 Mbits/sec   0.011 ms 0/3 (0%)

Best Regards,
Cheng Cui


Re: CFT: lem(4), em(4) e1000 Ethernet TSO testing

2023-07-26 Thread Cheng Cui
I didn't see your post covering 82541 or 82546 chips. Does this new em(4)
change support TSO on these chips? If yes, I would be happy to test it on
them.

root@s1:~ # dmesg | grep 8254
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
em0:  port 0xdcc0-0xdcff mem
0xdfae-0xdfaf irq 64 at device 7.0 on pci6
em1:  port 0xccc0-0xccff mem
0xdf8e-0xdf8f irq 65 at device 8.0 on pci7
em2:  port 0xbcc0-0xbcff
mem 0xdf5e-0xdf5f irq 106 at device 4.0 on pci9
em3:  port 0xbc80-0xbcbf mem
0xdf5c-0xdf5d irq 107 at device 4.1 on pci9
em4:  port 0xacc0-0xacff mem
0xdf3e-0xdf3f irq 101 at device 3.0 on pci10
em5:  port 0xac80-0xacbf mem
0xdf3c-0xdf3d irq 102 at device 3.1 on pci10

Best Regards,
Cheng Cui


On Tue, Jul 25, 2023 at 10:38 PM Kevin Bowling 
wrote:

> Hi,
>
> I have been working through various bugs and have come to a point
> where TSO is working on systems I have available for testing.
>
> This results in higher throughput on resource constrained systems, and
> less CPU/power usage on unconstrained systems.
>
> As of this mail, you will need to manually apply
> https://reviews.freebsd.org/D41170 on top of main to use TSO6 on
> em(4).
>
> I plan to enable TSO by default for lem(4) and em(4) during the
> FreeBSD 14 release cycle, so I would appreciate testing to address any
> remaining issues.  Below, a list of chipsets that will be exempt due
> to known issues.
>
> lem(4) exclusions:
> * <82544 (although it does seem ok to manually enable for emulations
> in qemu, virtualbox, etc)
> * 82547
>
> em(4) exclusions.. These chips have a stability workaround for high
> throughput with rapid link-flap applied that results in the TSO engine
> not being able to run at line speed.  Thus, TSO would not be enabled
> by default here:
> * Intel(R) I219-LM and I219-V
> * Intel(R) I219-LM and I219-V (2)
> * Intel(R) I219-LM and I219-V (3)
> * Intel(R) I219-LM and I219-V (4)
> * Intel(R) I219-LM and I219-V (5)
>
> Regards,
> Kevin Bowling
>
>


Re: -current dropping ssh connections

2023-06-21 Thread Cheng Cui
>
> There don't seem to be any error messages on the console at all, the
> client
> session simply reports
> client_loop: send disconnect: Broken pipe
>

Have you tried SSH keepalive?
https://stackoverflow.com/questions/25084288/keep-ssh-session-alive

Best Regards,
Cheng Cui


On Wed, Jun 21, 2023 at 1:24 PM bob prohaska  wrote:

> I've got a Pi4 running -current that seems to selectively drop ssh
> connections.
>
> Connections running a shell seem to stay up, but a session running tip to a
> usb-serial adapter (FTDI TTL232R-3V3) seems go away within a few hours.
> There don't seem to be any error messages on the console at all, the
> client
> session simply reports
> client_loop: send disconnect: Broken pipe
>
> Searches through /var/log/sshd_debug.log find many transactions between
> the ssh client and the -current target host, but none seem to be error
> messages; all are either connection reports or disconnects by user.
>
> This sort of behavior has been intermittent with aarch64 among both
> the Pi4 and a pair of Pi3s for some time, but now only the Pi4 is
> dropping connections.
>
> I've tried searching /var/log/sshd_debug.log for the keywords tip,
> ucom, the IP address of the NAT client used to connect and cuaU0.
> Are there other things worth looking for?
>
> Right now I'm using in /etc/rc.conf the line
> sshd_flags="-E /var/log/sshd_debug.log"
> which is already quite verbose. Is there a better
> option that emphasizes errors over normal traffic?
>
> Thanks for reading,
>
> bob prohaska
>
>
>
>


Re: how to increase the vnet speed?

2023-05-24 Thread Cheng Cui
>From TCP's point of view, your iperf result shows "Retr" as
retransmissions. Well, that tells packet drops or something else which
makes TCP's congestion control into playing throttling the throughput to a
certain degree.

Try a different TCP congestion control. If the default is CUBIC, try to use
NewReno. I don't know your FreeBSD version. So if it is FreeBSD14-current,
I would like to see the difference as there is improvement discussion on
CUBIC.

cc@fbsd ~$ sysctl net.inet.tcp.cc
net.inet.tcp.cc.newreno.beta_ecn: 80
net.inet.tcp.cc.newreno.beta: 50
net.inet.tcp.cc.abe_frlossreduce: 0
net.inet.tcp.cc.abe: 0
net.inet.tcp.cc.available: newreno
net.inet.tcp.cc.algorithm: newreno
cc@fbsd ~$ sysctl net.inet.tcp.cc.available
net.inet.tcp.cc.available: newreno
cc@fbsd ~$ sudo kldload cc_cubic<< load TCP
congestion control module cc_cubic
cc@fbsd ~$ sysctl net.inet.tcp.cc.available
net.inet.tcp.cc.available: newreno, cubic
cc@fbsd ~$ sudo sysctl net.inet.tcp.cc.algorithm=cubic
net.inet.tcp.cc.algorithm: newreno -> cubic

cc@fbsd ~$ sudo sysctl net.inet.tcp.cc.algorithm
net.inet.tcp.cc.algorithm: cubic
cc@fbsd ~$ uname -a
FreeBSD fbsd.cc.home 13.1-RELEASE FreeBSD 13.1-RELEASE
releng/13.1-n250148-fc952ac2212 GENERIC amd64
cc@fbsd ~$


Best Regards,
Cheng Cui


On Wed, May 24, 2023 at 2:19 AM Benoit Chesneau 
wrote:

> Sorry, I thought I posted it but it's a bridge:
>
> ```
> vlan200: flags=8943 metric
> 0 mtu 9000
>
> options=1c280401
> ether 9c:dc:71:4c:84:f0
> groups: vlan
> vlan: 200 vlanproto: 802.1q vlanpcp: 0 parent interface: mce0
> media: Ethernet 25GBase-SR 
> status: active
> nd6 options=29
> vlan200bridge: flags=8843 metric 0
> mtu 9000
> ether 58:9c:fc:10:ff:95
> id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
> maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
> root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
> member: e0a_bastille0 flags=143
> ifmaxaddr 0 port 10 priority 128 path cost 2000
> member: vlan200 flags=143
> ifmaxaddr 0 port 8 priority 128 path cost 800
> groups: bridge
> nd6 options=9
> e0a_bastille0: flags=8963
> metric 0 mtu 9000
> description: vnet host interface for Bastille jail testing
> options=8
> ether 02:20:98:4c:84:f0
> hwaddr 02:68:8a:24:67:0a
> groups: epair
> media: Ethernet 10Gbase-T (10Gbase-T )
> status: active
> nd6 options=29
> ```
>
> After relaunching the machine and removed filtering:
>
> ```
> net.link.bridge.pfil_bridge=0
> net.link.bridge.pfil_onlyip=0
> net.link.bridge.pfil_member=0
> ```
>
> I get better results. Still not dull speed but since it's in a bridge
> seems normal. Unsure what was the issue...
>
> ```
> [ ID] Interval   Transfer Bitrate Retr  Cwnd
> [  5]   0.00-1.01   sec  1.75 GBytes  14.8 Gbits/sec   74936 KBytes
> [  5]   1.01-2.00   sec  1.31 GBytes  11.3 Gbits/sec   27   1.76 MBytes
> [  5]   2.00-3.00   sec  2.12 GBytes  18.2 Gbits/sec   34   1.74 MBytes
> [  5]   3.00-4.00   sec  2.08 GBytes  17.9 Gbits/sec   85   1.75 MBytes
> [  5]   4.00-5.00   sec  2.11 GBytes  18.2 Gbits/sec   37   1.75 MBytes
> [  5]   5.00-6.00   sec  2.09 GBytes  18.0 Gbits/sec   60   1.75 MBytes
> [  5]   6.00-7.00   sec  2.11 GBytes  18.2 Gbits/sec   10   1.50 MBytes
> [  5]   7.00-8.00   sec  1.51 GBytes  13.0 Gbits/sec   27   1.75 MBytes
> [  5]   8.00-9.00   sec  1.48 GBytes  12.7 Gbits/sec   75   1.50 MBytes
> [  5]   9.00-10.00  sec  2.09 GBytes  17.9 Gbits/sec   52   1.58 MBytes
> - - - - - - - - - - - - - - - - - - - - - - - - -
> [ ID] Interval   Transfer Bitrate Retr
> [  5]   0.00-10.00  sec  18.7 GBytes  16.0 Gbits/sec  481
>  sender
> [  5]   0.00-10.00  sec  18.7 GBytes  16.0 Gbits/sec
> receiver
> ```
>
>
>
> Benoît
>
>
> --- Original Message ---
> On Tuesday, May 23rd, 2023 at 23:15, Marko Zec  wrote:
>
>
> > On Tue, 23 May 2023 19:58:07 +
> > Benoit Chesneau beno...@enki-multimedia.eu wrote:
> >
> > > Hi all,
> > >
> > > I've created a jail using bastille and setup network. The mainin
> > > terface is a 25Gbps nic and between hosts I get 24.6 Gbits/sec :
> >
> >
> > [...]
> >
> > > But between one host and the jail I only get 3.96 Gbits/sec
> >
> >
> > [...]
> >
> > > Is there a way to increase the performance of the of the jail? The
> > > nice is a mellannox ConnectX-4 Lx, mce(4) .
> >
> >
> > Modern NICs offload a lot of the protocol stack processing (checksum,
> > segmentation, and / or reassembly) from the CPU to dedicated silicon,
> > whereas inter-vnet traffic needs to be handled completely in software,
> > that's where the difference comes from.
> >
> > Perhaps we could gain some speed by abusing mbuf flags to skip RXCSUM
> > for epair traffic, maybe even skip and fake TXCSUM...
> >
> > Marko
>
>


Re: missing hw.em.msix support in FreeBSD 14.0-CURRENT?

2023-05-08 Thread Cheng Cui
On Mon, May 8, 2023 at 9:50 AM Yuri  wrote:

> Cheng Cui wrote:
> > A followup question: Shouldn't the man page for em(4) be updated
> > accordingly, as the sysctls are different now?
> >
> > https://man.freebsd.org/cgi/man.cgi?em(4)
> > <https://man.freebsd.org/cgi/man.cgi?em(4)>
>
> https://reviews.freebsd.org/D3
>
> Thanks for taking care of this. It looks good to me. :)

cc


Re: missing hw.em.msix support in FreeBSD 14.0-CURRENT?

2023-05-07 Thread Cheng Cui
Found the RSS support, only if the hardware is ">= e1000_82571" from the
if_em.c.

if (hw->mac.type >= em_mac_min)// #define em_mac_min e1000_82571
> ...
> scctx->isc_txrx = _txrx;
>     ...
>
>
Best Regards,
Cheng Cui


On Sun, May 7, 2023 at 7:28 PM Cheng Cui  wrote:

> Hi Yuri,
>
> Thanks for the update. I am using an Emulab testbed node under the same
> type of hardware. Below are the new outputs.
> It is supposed to have multiple tx/rx queues under msix. Why are there
> only rxq0/txq0? Is it because the CPU has only one core? How can I check if
> RSS is supported?
>
> root@s1:~ # sysctl -d dev.em.0.iflib.disable_msix
> dev.em.0.iflib.disable_msix: disable MSI-X (default 0)
> root@s1:~ # sysctl dev.em.0.iflib.disable_msix
> dev.em.0.iflib.disable_msix: 0
> root@s1:~ # sysctl dev.em.0.iflib
> dev.em.0.iflib.rxq0.rxq_fl0.buf_size: 2048
> dev.em.0.iflib.rxq0.rxq_fl0.credits: 1023
> dev.em.0.iflib.rxq0.rxq_fl0.cidx: 959
> dev.em.0.iflib.rxq0.rxq_fl0.pidx: 958
> dev.em.0.iflib.rxq0.cpu: 1
> dev.em.0.iflib.txq0.r_abdications: 0
> dev.em.0.iflib.txq0.r_restarts: 0
> dev.em.0.iflib.txq0.r_stalls: 0
> dev.em.0.iflib.txq0.r_starts: 110443
> dev.em.0.iflib.txq0.r_drops: 0
> dev.em.0.iflib.txq0.r_enqueues: 110444
> dev.em.0.iflib.txq0.ring_state: pidx_head: 1903 pidx_tail: 1903 cidx: 1903
> state: IDLE
> dev.em.0.iflib.txq0.txq_cleaned: 115208
> dev.em.0.iflib.txq0.txq_processed: 115251
> dev.em.0.iflib.txq0.txq_in_use: 42
> dev.em.0.iflib.txq0.txq_cidx_processed: 565
> dev.em.0.iflib.txq0.txq_cidx: 525
> dev.em.0.iflib.txq0.txq_pidx: 568
> dev.em.0.iflib.txq0.no_tx_dma_setup: 0
> dev.em.0.iflib.txq0.txd_encap_efbig: 0
> dev.em.0.iflib.txq0.tx_map_failed: 0
> dev.em.0.iflib.txq0.no_desc_avail: 0
> dev.em.0.iflib.txq0.mbuf_defrag_failed: 0
> dev.em.0.iflib.txq0.m_pullups: 0
> dev.em.0.iflib.txq0.mbuf_defrag: 0
> dev.em.0.iflib.txq0.cpu: 0
> dev.em.0.iflib.override_nrxds: 0
> dev.em.0.iflib.override_ntxds: 0
> dev.em.0.iflib.use_logical_cores: 0
> dev.em.0.iflib.separate_txrx: 0
> dev.em.0.iflib.core_offset: 0
> dev.em.0.iflib.tx_abdicate: 0
> dev.em.0.iflib.rx_budget: 0
> dev.em.0.iflib.disable_msix: 0
> dev.em.0.iflib.override_qs_enable: 0
> dev.em.0.iflib.override_nrxqs: 0
> dev.em.0.iflib.override_ntxqs: 0
> dev.em.0.iflib.driver_version: 7.7.8-fbsd
> root@s1:~ #
>
>
> Best Regards,
> Cheng Cui
>
>
> On Sun, May 7, 2023 at 4:18 PM Yuri  wrote:
>
>> Cheng Cui wrote:
>> > Hello,
>> >
>> > I am using this em(4) driver for some tests. According to the man page
>> > below, there should be a "hw.em.msix" sysctl to enable/disable MSI-X
>> > style interrupts. But why is it missing in my system below?
>> > https://man.freebsd.org/cgi/man.cgi?em(4)
>> > <https://man.freebsd.org/cgi/man.cgi?em(4)>
>> >
>> > root@s1:~ # dmesg | egrep "8254"
>> > Timecounter "i8254" frequency 1193182 Hz quality 0
>> > Event timer "i8254" frequency 1193182 Hz quality 100
>> > em0:  port 0xdcc0-0xdcff mem
>> > 0xdfae-0xdfaf irq 64 at device 7.0 on pci6
>> > em1:  port 0xccc0-0xccff mem
>> > 0xdf8e-0xdf8f irq 65 at device 8.0 on pci7
>> > em2:  port 0xbcc0-0xbcff
>> > mem 0xdf5e-0xdf5f irq 106 at device 4.0 on pci9
>> > em3:  port 0xbc80-0xbcbf
>> > mem 0xdf5c-0xdf5d irq 107 at device 4.1 on pci9
>> > em4:  port 0xacc0-0xacff
>> > mem 0xdf3e-0xdf3f irq 101 at device 3.0 on pci10
>> > em5:  port 0xac80-0xacbf
>> > mem 0xdf3c-0xdf3d irq 102 at device 3.1 on pci10
>> >
>> > root@s1:~ # ifconfig em5
>> > em5: flags=8843 metric 0 mtu
>> 1500
>> >
>> options=481009b
>> > ether 00:04:23:b7:1e:1d
>> > inet 10.1.1.2 netmask 0xff00 broadcast 10.1.1.255
>> > media: Ethernet 1000baseT 
>> > status: active
>> > nd6 options=29
>> >
>> > root@s1:~ # sysctl hw.em
>> > hw.em.max_interrupt_rate: 8000
>> > hw.em.eee_setting: 1
>> > hw.em.rx_process_limit: 100
>> > hw.em.sbp: 0
>> > hw.em.smart_pwr_down: 0
>> > hw.em.rx_abs_int_delay: 66
>> > hw.em.tx_abs_int_delay: 66
>> > hw.em.rx_int_delay: 0
>> > hw.em.tx_int_delay: 66
>> > hw.em.disable_crc_stripping: 0
>> > root@s1:~ #
>>
>> As if_em was converted to iflib, I guess the related sysctl would now be
>> dev.em.0.iflib.disable_msix (I could be wrong, don't have h/w to check).
>>
>


Re: missing hw.em.msix support in FreeBSD 14.0-CURRENT?

2023-05-07 Thread Cheng Cui
Hi Yuri,

Thanks for the update. I am using an Emulab testbed node under the same
type of hardware. Below are the new outputs.
It is supposed to have multiple tx/rx queues under msix. Why are there only
rxq0/txq0? Is it because the CPU has only one core? How can I check if RSS
is supported?

root@s1:~ # sysctl -d dev.em.0.iflib.disable_msix
dev.em.0.iflib.disable_msix: disable MSI-X (default 0)
root@s1:~ # sysctl dev.em.0.iflib.disable_msix
dev.em.0.iflib.disable_msix: 0
root@s1:~ # sysctl dev.em.0.iflib
dev.em.0.iflib.rxq0.rxq_fl0.buf_size: 2048
dev.em.0.iflib.rxq0.rxq_fl0.credits: 1023
dev.em.0.iflib.rxq0.rxq_fl0.cidx: 959
dev.em.0.iflib.rxq0.rxq_fl0.pidx: 958
dev.em.0.iflib.rxq0.cpu: 1
dev.em.0.iflib.txq0.r_abdications: 0
dev.em.0.iflib.txq0.r_restarts: 0
dev.em.0.iflib.txq0.r_stalls: 0
dev.em.0.iflib.txq0.r_starts: 110443
dev.em.0.iflib.txq0.r_drops: 0
dev.em.0.iflib.txq0.r_enqueues: 110444
dev.em.0.iflib.txq0.ring_state: pidx_head: 1903 pidx_tail: 1903 cidx: 1903
state: IDLE
dev.em.0.iflib.txq0.txq_cleaned: 115208
dev.em.0.iflib.txq0.txq_processed: 115251
dev.em.0.iflib.txq0.txq_in_use: 42
dev.em.0.iflib.txq0.txq_cidx_processed: 565
dev.em.0.iflib.txq0.txq_cidx: 525
dev.em.0.iflib.txq0.txq_pidx: 568
dev.em.0.iflib.txq0.no_tx_dma_setup: 0
dev.em.0.iflib.txq0.txd_encap_efbig: 0
dev.em.0.iflib.txq0.tx_map_failed: 0
dev.em.0.iflib.txq0.no_desc_avail: 0
dev.em.0.iflib.txq0.mbuf_defrag_failed: 0
dev.em.0.iflib.txq0.m_pullups: 0
dev.em.0.iflib.txq0.mbuf_defrag: 0
dev.em.0.iflib.txq0.cpu: 0
dev.em.0.iflib.override_nrxds: 0
dev.em.0.iflib.override_ntxds: 0
dev.em.0.iflib.use_logical_cores: 0
dev.em.0.iflib.separate_txrx: 0
dev.em.0.iflib.core_offset: 0
dev.em.0.iflib.tx_abdicate: 0
dev.em.0.iflib.rx_budget: 0
dev.em.0.iflib.disable_msix: 0
dev.em.0.iflib.override_qs_enable: 0
dev.em.0.iflib.override_nrxqs: 0
dev.em.0.iflib.override_ntxqs: 0
dev.em.0.iflib.driver_version: 7.7.8-fbsd
root@s1:~ #


Best Regards,
Cheng Cui


On Sun, May 7, 2023 at 4:18 PM Yuri  wrote:

> Cheng Cui wrote:
> > Hello,
> >
> > I am using this em(4) driver for some tests. According to the man page
> > below, there should be a "hw.em.msix" sysctl to enable/disable MSI-X
> > style interrupts. But why is it missing in my system below?
> > https://man.freebsd.org/cgi/man.cgi?em(4)
> > <https://man.freebsd.org/cgi/man.cgi?em(4)>
> >
> > root@s1:~ # dmesg | egrep "8254"
> > Timecounter "i8254" frequency 1193182 Hz quality 0
> > Event timer "i8254" frequency 1193182 Hz quality 100
> > em0:  port 0xdcc0-0xdcff mem
> > 0xdfae-0xdfaf irq 64 at device 7.0 on pci6
> > em1:  port 0xccc0-0xccff mem
> > 0xdf8e-0xdf8f irq 65 at device 8.0 on pci7
> > em2:  port 0xbcc0-0xbcff
> > mem 0xdf5e-0xdf5f irq 106 at device 4.0 on pci9
> > em3:  port 0xbc80-0xbcbf
> > mem 0xdf5c-0xdf5d irq 107 at device 4.1 on pci9
> > em4:  port 0xacc0-0xacff
> > mem 0xdf3e-0xdf3f irq 101 at device 3.0 on pci10
> > em5:  port 0xac80-0xacbf
> > mem 0xdf3c-0xdf3d irq 102 at device 3.1 on pci10
> >
> > root@s1:~ # ifconfig em5
> > em5: flags=8843 metric 0 mtu 1500
> >
> options=481009b
> > ether 00:04:23:b7:1e:1d
> > inet 10.1.1.2 netmask 0xff00 broadcast 10.1.1.255
> > media: Ethernet 1000baseT 
> > status: active
> > nd6 options=29
> >
> > root@s1:~ # sysctl hw.em
> > hw.em.max_interrupt_rate: 8000
> > hw.em.eee_setting: 1
> > hw.em.rx_process_limit: 100
> > hw.em.sbp: 0
> > hw.em.smart_pwr_down: 0
> > hw.em.rx_abs_int_delay: 66
> > hw.em.tx_abs_int_delay: 66
> > hw.em.rx_int_delay: 0
> > hw.em.tx_int_delay: 66
> > hw.em.disable_crc_stripping: 0
> > root@s1:~ #
>
> As if_em was converted to iflib, I guess the related sysctl would now be
> dev.em.0.iflib.disable_msix (I could be wrong, don't have h/w to check).
>


missing hw.em.msix support in FreeBSD 14.0-CURRENT?

2023-05-07 Thread Cheng Cui
Hello,

I am using this em(4) driver for some tests. According to the man page
below, there should be a "hw.em.msix" sysctl to enable/disable MSI-X style
interrupts. But why is it missing in my system below?
https://man.freebsd.org/cgi/man.cgi?em(4)

root@s1:~ # dmesg | egrep "8254"
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
em0:  port 0xdcc0-0xdcff mem
0xdfae-0xdfaf irq 64 at device 7.0 on pci6
em1:  port 0xccc0-0xccff mem
0xdf8e-0xdf8f irq 65 at device 8.0 on pci7
em2:  port 0xbcc0-0xbcff mem
0xdf5e-0xdf5f irq 106 at device 4.0 on pci9
em3:  port 0xbc80-0xbcbf mem
0xdf5c-0xdf5d irq 107 at device 4.1 on pci9
em4:  port 0xacc0-0xacff mem
0xdf3e-0xdf3f irq 101 at device 3.0 on pci10
em5:  port 0xac80-0xacbf mem
0xdf3c-0xdf3d irq 102 at device 3.1 on pci10

root@s1:~ # ifconfig em5
em5: flags=8843 metric 0 mtu 1500
options=481009b
ether 00:04:23:b7:1e:1d
inet 10.1.1.2 netmask 0xff00 broadcast 10.1.1.255
media: Ethernet 1000baseT 
status: active
nd6 options=29

root@s1:~ # sysctl hw.em
hw.em.max_interrupt_rate: 8000
hw.em.eee_setting: 1
hw.em.rx_process_limit: 100
hw.em.sbp: 0
hw.em.smart_pwr_down: 0
hw.em.rx_abs_int_delay: 66
hw.em.tx_abs_int_delay: 66
hw.em.rx_int_delay: 0
hw.em.tx_int_delay: 66
hw.em.disable_crc_stripping: 0
root@s1:~ #

Best Regards,
Cheng Cui