Page MenuHomeFreeBSD
Feed Advanced Search

Wed, Dec 4

aleksandr.fedorov_itglobal.com added a comment to D20468: Port if_vether from OpenBSD.

We are also interested in this interface.
It looks good for use with vale (4) to connect a virtual network to the host stack: bhyve VM's - vale (4) - if_vether (4) - Host. I tested this and it works well. But now we use if_epair (4) for this configuration, because I didn't know about the existence of the port.

Wed, Dec 4, 4:10 PM

Tue, Nov 26

aleksandr.fedorov_itglobal.com added a comment to D22552: bhyve: uniform printf format string newlines.

I welcome these changes. The current debug output looks like a mess.
Moreover, part of the files declares (W/D)PRINTF as

Tue, Nov 26, 6:34 AM

Tue, Nov 19

aleksandr.fedorov_itglobal.com added a comment to D22440: bhyve: virtio-net: disable receive until features are negotiated.

The race would not have been fatal (but is still good to fix) if the default been the more compatible behavior.

Tue, Nov 19, 6:21 PM

Sat, Nov 9

aleksandr.fedorov_itglobal.com accepted D22286: bhyve: rework mevent processing to fix a race condition.

The changes look good to me. And I can not reproduce the bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241808

Sat, Nov 9, 3:07 PM

Oct 25 2019

aleksandr.fedorov_itglobal.com added a comment to D22140: netgraph/ng_tag: Variable length data can not be set for all length.

I think you need to add people with good knowledge of the netgraph to the reviewers: JulianElischer, Gleb Smirnoff and Alexander Motin. Because apparently not all are subscribed to the network mailing list.

Oct 25 2019, 2:37 PM

Sep 14 2019

aleksandr.fedorov_itglobal.com added a comment to D20973: bhyve: support for enabling/disabling the net backend.
In D20973#471364, @jhb wrote:

So I don't see any uses of mevent_add_disabled() in this change?

Sep 14 2019, 10:55 AM

Sep 4 2019

aleksandr.fedorov_itglobal.com added a comment to D20973: bhyve: support for enabling/disabling the net backend.

I tested this patch in various configurations using iperf3:

Sep 4 2019, 7:23 AM

Aug 14 2019

aleksandr.fedorov_itglobal.com added a comment to D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.

Ops, you’re right. Sorry for the noise.

Aug 14 2019, 5:53 AM

Aug 13 2019

aleksandr.fedorov_itglobal.com added a comment to D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.

It’s seems I found another incorrect solution:

Aug 13 2019, 11:12 PM
aleksandr.fedorov_itglobal.com added inline comments to D21240: net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST.
Aug 13 2019, 7:42 PM

Jul 31 2019

aleksandr.fedorov_itglobal.com abandoned D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
Jul 31 2019, 10:00 AM

Jul 24 2019

aleksandr.fedorov_itglobal.com added a comment to D21007: bhyve: add support for virtio-net mergeable rx buffers.

I tried to compare performance on a dedicated server.
Host: Single-processor Xeon E5-2630 v4 @ 2.20GHz, 128 GB RAM, FreeBSD latest CURRENT.

Jul 24 2019, 6:54 PM

Jul 23 2019

aleksandr.fedorov_itglobal.com added a comment to D21007: bhyve: add support for virtio-net mergeable rx buffers.

Sorry, but I didn't compare the performance. I conducted my tests on a machine loaded with other tasks. The throughput between two Ubuntu 16.04 vm's floats from 16 to 18 Gbit / s, sometimes increasing up to 28 Gbit / s. FreeBSD - FreeBSD ~ 7-8 Gbit / s. But as I said, the host machine was loaded with other tasks. Also this machine has two processors, and I clearly observed NUMA effects. I will try to compare the performance on a separate test server tomorrow.

Jul 23 2019, 5:49 PM
aleksandr.fedorov_itglobal.com added a comment to D21007: bhyve: add support for virtio-net mergeable rx buffers.

I tested the updated patch with iperf3 in various combinations:

  1. vm (ubuntu 16.04) - vale - vm (ubuntu 16.04)
  2. vm (freebsd 13) - vale - vm (ubuntu 16.04)
  3. vm (ubuntu 16.04) - vale - host(if_epair)
  4. vm (freebsd 13) - vale - host(if_epair)
Jul 23 2019, 1:28 PM

Jul 22 2019

aleksandr.fedorov_itglobal.com added inline comments to D21007: bhyve: add support for virtio-net mergeable rx buffers.
Jul 22 2019, 6:31 AM

Jul 19 2019

aleksandr.fedorov_itglobal.com added a comment to D20987: bhyve: add backend rx backpressure to virtio-net.

I tested this path in our test lab. It’s works fine.

Jul 19 2019, 8:53 PM

Jul 17 2019

aleksandr.fedorov_itglobal.com added a comment to D19422: if_vxlan(4) Allow set MTU more than 1500 bytes..

ping?

Jul 17 2019, 5:34 PM

Jul 16 2019

aleksandr.fedorov_itglobal.com added inline comments to D20973: bhyve: support for enabling/disabling the net backend.
Jul 16 2019, 6:44 PM
aleksandr.fedorov_itglobal.com added a comment to D19422: if_vxlan(4) Allow set MTU more than 1500 bytes..

Can anyone commit this patch?

Jul 16 2019, 5:20 AM

Jul 15 2019

aleksandr.fedorov_itglobal.com added a comment to D19422: if_vxlan(4) Allow set MTU more than 1500 bytes..

VXLAN encapsulate ethernet frames within UDP/IP packets. So, we can calculate maximum overhead for IPv4:

  • IP_MAXPACKET = 65K - constant from netinet/ip.h.
  • Maximum IP header length IP_MAX_HDR_LEN (There is no suitable constant for it.) = 60 as the Internet Header Length field is the unsigned 4-bit number of 32-bit words - 15 * 32 = 480 bit = 60 bytes.
  • sizeof(struct udphdr) = 8 bytes.
  • sizeof(struct vxlan_header) = 8 bytes.
  • Inner frame ETHER_HDR_LEN = 14 bytes.
  • Inner frame ETHER_CRC_LEN = 4 bytes.
  • Inner frame ETHER_VLAN_ENCAP_LEN = 4 bytes.
Jul 15 2019, 8:42 AM

Jul 12 2019

aleksandr.fedorov_itglobal.com updated the test plan for D19422: if_vxlan(4) Allow set MTU more than 1500 bytes..

I think that mtu handling in ether_ioctl () requires more work and must be done very carefully, because it is used by many other drivers. Some drivers set the IFCAP_JUMBO_MTU flag, but limit the maximum MTU size to less than 9000 bytes. Therefore, it is not so easy to handle the various requirements for drivers in ether_ioctl (), and failback to the standard MTU (1500) size may be reasonable.

Jul 12 2019, 10:14 AM

Jul 1 2019

aleksandr.fedorov_itglobal.com updated the test plan for D20824: Fix netmap + vlan panics.
Jul 1 2019, 1:21 PM
aleksandr.fedorov_itglobal.com created D20824: Fix netmap + vlan panics.
Jul 1 2019, 12:58 PM
aleksandr.fedorov_itglobal.com added a comment to D20659: bhyve: abstraction for network backends.

I tested the latest version of the patch on real hardware with different operating systems and different MTUs, using iperf3 and ping -f -c. It seems everything works as expected.
VM1 (Ubuntu 16.04) - VALE - VM2 (Ubuntu 16.04) iperf3 speed 16 Gbits/s
VM1 (FreeBSD 12) - VALE - VM2 (FreeBSD 12) iperf3 speed 11 Gbits/s
VM1 (Ubuntu 16.04) - VALE - VM2 (FreeBSD 12) iperf3 speed 14 Gbits/s

Jul 1 2019, 6:09 AM

Jun 28 2019

aleksandr.fedorov_itglobal.com added inline comments to D20659: bhyve: abstraction for network backends.
Jun 28 2019, 8:19 AM

Jun 7 2019

aleksandr.fedorov_itglobal.com updated the diff for D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Rename vq_get_mrgrx_bufs() to vq_getbufs_mrgrx() and vq_relchain_mrgrx() to vq_relbufs_mrgrx() to to corresponding overall style.

Jun 7 2019, 12:15 PM
aleksandr.fedorov_itglobal.com updated the diff for D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
  • Reuse vq_getchain() to handle various negotiated features (TSO, MRG_RXBUF, INDIRECT descriptors).
  • Add two helper functions vq_get_mrgrx_bufs() and vq_relchain_mrgrx() and move it to virtio.[ch]
Jun 7 2019, 8:17 AM

May 30 2019

aleksandr.fedorov_itglobal.com added a comment to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Vincenzo, you are right. I'm trying to rewrite the code to handle various negotated features. But I need some more time to test it.

May 30 2019, 12:54 PM

May 23 2019

aleksandr.fedorov_itglobal.com added inline comments to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
May 23 2019, 3:00 PM
aleksandr.fedorov_itglobal.com updated the diff for D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Change r->cur to r->head in RX path

May 23 2019, 2:34 PM
aleksandr.fedorov_itglobal.com added a comment to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Vincenzo, thanks for the review.
The main motivation to write the custom method is optimization. Function vq_getchain() returns virtio descriptors which chained using VRING_DESCR_F_NEXT flag. But viritio-net guest drivers do not represent the available descriptors in the form of a chain, so vq_getchain() returns only one descriptor per call. Also this function has side effect - it's increment vq->vq_last_avail index, which should be decremented if there is no enough descriptors to store the RX packet.

May 23 2019, 2:31 PM

May 22 2019

aleksandr.fedorov_itglobal.com added inline comments to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
May 22 2019, 8:27 AM

May 20 2019

aleksandr.fedorov_itglobal.com updated the diff for D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Fix incorrect usage of 'cur_rx_ring' on TX path.

May 20 2019, 7:25 AM

May 17 2019

aleksandr.fedorov_itglobal.com added inline comments to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
May 17 2019, 8:44 AM

May 16 2019

aleksandr.fedorov_itglobal.com created D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
May 16 2019, 11:23 AM

Mar 1 2019

aleksandr.fedorov_itglobal.com created D19422: if_vxlan(4) Allow set MTU more than 1500 bytes..
Mar 1 2019, 3:50 PM

Feb 18 2019

aleksandr.fedorov_itglobal.com accepted D19177: netmap: don't schedule kqueue notify task when kqueue is not used.

Sorry for the long delay. My tests didn't find any regression.

Feb 18 2019, 10:55 AM

Feb 14 2019

aleksandr.fedorov_itglobal.com added a comment to D19177: netmap: don't schedule kqueue notify task when kqueue is not used.

Oops, I forgot this. I will test the current patch.

Feb 14 2019, 6:59 AM

Feb 13 2019

aleksandr.fedorov_itglobal.com added inline comments to D19177: netmap: don't schedule kqueue notify task when kqueue is not used.
Feb 13 2019, 6:27 PM

Jan 30 2019

aleksandr.fedorov_itglobal.com added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

I did not find any problems with the latest patch.

Jan 30 2019, 8:59 AM

Jan 29 2019

aleksandr.fedorov_itglobal.com added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

I'm worried about the increased load on the kernel thread that serves the taskqueue_swi and how it will affect the rest of the system.

Jan 29 2019, 8:36 AM

Jan 25 2019

aleksandr.fedorov_itglobal.com added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

Looks good. I will try to test this patch tomorrow.

Jan 25 2019, 5:58 PM
aleksandr.fedorov_itglobal.com added a comment to D18952: netmap: fix lock order reversal related to kqueue usage.

I conducted the following test. Simultaneous start:

  • 8 (RX) netmap_test processes (D18876) on different vale (0 - 7) ports.
  • 8 (TX) pkt-gen processes on different vale (0 - 7) ports
Jan 25 2019, 4:30 PM

Jan 18 2019

aleksandr.fedorov_itglobal.com added a comment to D18876: netmap: fix knote() argument to match the mutex state.

Everything works fine with the latest patch (Diff 2).

Jan 18 2019, 3:23 PM
aleksandr.fedorov_itglobal.com added inline comments to D18876: netmap: fix knote() argument to match the mutex state.
Jan 18 2019, 7:09 AM
aleksandr.fedorov_itglobal.com added a comment to D18876: netmap: fix knote() argument to match the mutex state.

I tested the patch with two bhyve vm connected through a VALE switch, there is no panic.

Jan 18 2019, 7:01 AM