From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikhail Sennikovsky Subject: VLAN performance issues with Open vSwitch when 8021q not loaded Date: Fri, 18 May 2018 15:24:46 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Cc: Mikhail Sennikovskii To: netdev@vger.kernel.org Return-path: Received: from mail-vk0-f43.google.com ([209.85.213.43]:37250 "EHLO mail-vk0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751298AbeERNZI (ORCPT ); Fri, 18 May 2018 09:25:08 -0400 Received: by mail-vk0-f43.google.com with SMTP id m144-v6so4809122vke.4 for ; Fri, 18 May 2018 06:25:07 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: Hi all, We were recently experiencing network performance issues with VLAN networking setup with Open vSwitch, for the ingress traffic coming to VLAN trunk port of the ovs. As we discovered, the issue was caused by gro not working for it, which in turn was because the gro receive callbacks for 802.1Q payload type are defined in the 8021q module (see https://elixir.bootlin.com/linux/v4.16.9/source/net/8021q/vlan.c#L762 ), which was not loaded. This resulted in a significant bandwidth performance drop, having ~3Gbps instead of the expected ~7Gbps for a simple iperf3 test in our case. The obvious work-around would be to load the 8021q module, which indeed makes bandwidth performance back to the expected numbers. This seems like a hidden and not obvious magic however. So I'm questioning, whether it makes sense to have the gro receive callbacks for 802.1Q and 802.1ad moved to some common place, that would be used/enabled by both 8021q and openvswitch modules. Regards, Mikhail