Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp684486pxf; Wed, 7 Apr 2021 09:08:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzuHomexiiWa6j2C9YaB70wNWf0GvxUhue7rD6vlWN+wNLacvqvMfQ5UvgHJVR/RpmbtAGr X-Received: by 2002:a50:fc94:: with SMTP id f20mr5364739edq.77.1617811689682; Wed, 07 Apr 2021 09:08:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617811689; cv=none; d=google.com; s=arc-20160816; b=DbR2uvBtbT2zUpNLrYtkgzFukQpzozvriD+5n5K2DFE1ed4q3q+3HOSYYvmyXeezL2 Mm4JRx7IVC8yGHS2jy+nzHOqhLKCvCjmTOaTxQBvuJGS1ry2ZRwbh6xkAMr2yD+fewz/ 8cARfCBV3k3jLSuTDG4plWFKw8ALTYMFuue4scsI4WXoniEQpkz7eKm43csLkCMTclVU rCda0SF2lLkleVuDq6J8E3zmp0hiwouJ2ZdzRaFcEWjoDbnM1EwuC2QloYDSQAsD4Qmp Q6xxh+CE9K2ExV5qH4R3yznTCV3WI9bINXSi+ZRJ0ffiLmJA9fLHZA0Feq2RgKTIt+TY ob7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:from:subject:cc:to:message-id:date; bh=lSFjguBOKPmOBAVkj/6qxsX065DYaHVxRc4bvqv1SGU=; b=iiS+3CkH9GhyAooekvtfzuOuhBc+cSgBGgZXVgEhga25MRpA4XLFAX5L7Oe6TnMLcr 8+2hWou4CtCJsjYuyF7cv03pdsHEfpu3fXtdkyBqbSqrtTg4QvZ7TcvX9TUqcXVgz3LB N8wfZfa+o23w21kDLs1Fg/lt6Ql55SPhpVC5MLh85wVnHlQhKaF/ynhyXgIurft0B50v pPk/BGN98Y9zqSxM9v3mTk0hIxCAqMj6CPXF1+pQ3j2ADb+QYBsbYcCii0yVTUVO2d0U a/R56HmZKVkaBQbsQ5aN9i71s840ctZLZWG2wQSMWDkChN5NngBVjPIb+je/SBQ4OzVk BTqw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d23si11386761edj.482.2021.04.07.09.07.39; Wed, 07 Apr 2021 09:08:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245153AbhDFXo6 (ORCPT + 99 others); Tue, 6 Apr 2021 19:44:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231156AbhDFXo5 (ORCPT ); Tue, 6 Apr 2021 19:44:57 -0400 Received: from mail.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B5F7C06174A; Tue, 6 Apr 2021 16:44:48 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) by mail.monkeyblade.net (Postfix) with ESMTPSA id 41B2B4D2493AB; Tue, 6 Apr 2021 16:44:47 -0700 (PDT) Date: Tue, 06 Apr 2021 16:44:46 -0700 (PDT) Message-Id: <20210406.164446.1369320471860255483.davem@davemloft.net> To: gatis@mikrotik.com Cc: chris.snook@gmail.com, kuba@kernel.org, hkallweit1@gmail.com, jesse.brandeburg@intel.com, dchickles@marvell.com, tully@mikrotik.com, eric.dumazet@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net v4] atl1c: move tx cleanup processing out of interrupt From: David Miller In-Reply-To: References: X-Mailer: Mew version 6.8 on Emacs 27.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mail.monkeyblade.net [0.0.0.0]); Tue, 06 Apr 2021 16:44:47 -0700 (PDT) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gatis Peisenieks Date: Tue, 06 Apr 2021 17:49:32 +0300 > Tx queue cleanup happens in interrupt handler on same core as rx queue > processing. Both can take considerable amount of processing in high > packet-per-second scenarios. > > Sending big amounts of packets can stall the rx processing which is > unfair > and also can lead to out-of-memory condition since __dev_kfree_skb_irq > queues the skbs for later kfree in softirq which is not allowed to > happen > with heavy load in interrupt handler. > > This puts tx cleanup in its own napi and enables threaded napi to > allow > the rx/tx queue processing to happen on different cores. Also as the > first > in-driver user of dev_set_threaded API, need to add EXPORT_SYMBOL for > it. > > The ability to sustain equal amounts of tx/rx traffic increased: > from 280Kpps to 1130Kpps on Threadripper 3960X with upcoming > Mikrotik 10/25G NIC, > from 520Kpps to 850Kpps on Intel i3-3320 with Mikrotik RB44Ge adapter. > > Signed-off-by: Gatis Peisenieks > --- > changes since v3: > - made scripts/checkpatch.pl happy (commit message line wrap + > missing comment on spinlock) > - moved the new intr_mask_lock to be besides the intr_mask it > protects so they are more likely to be on same cacheline > changes since v2: > - addressed comments from Eric Dumazet > - added EXPORT_SYMBOL for dev_set_threaded > > Sorry for reposting, noticed that scripts/checkpatch.pl was not happy. This does not apply to 'net', did you mean 'net-next'? If so, please indicate this clearly in the Subject line as per convention. Thank you.