Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp567477pxj; Thu, 27 May 2021 06:53:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx5AxQlu8y5kvMNqgniIHoAmNyz2b76yFRtd5MhR0lKMgFr94yEU1net49Rs5F0sxpgx6PO X-Received: by 2002:a50:afa3:: with SMTP id h32mr4281874edd.202.1622123612852; Thu, 27 May 2021 06:53:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622123612; cv=none; d=google.com; s=arc-20160816; b=uzmMuftGn1mY0VezfObZvv4xrYW1bFDAbn23IzDDJjC6y6t92zhSdOujsZSVByspw0 544hU+Inl4B8cSa6ZEcn+VQV/Zyj/UkVhFLxKIewBn5xcwD/yv+iI2KPBHh10D15m+r1 65MqGwjhYGhYEv60XZ7IEgEv+jHfaZ99akkVx38iAZzHl7MDLphA2wydOEx/ksMncNR0 7LDL0j14vvzFgx0zxGAUH0XZSbLeUjBicqdq6Fgh0fq/CdfgIHx8cahjkSSoz4wz91Ug jGVXKGb4/7Hh+xE/uuoT0yXRhbj1mYu1DWBwQz2uFZ7CSG7ioFsTDuzHi6AOqDjniRw6 L92A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:message-id:user-agent :references:in-reply-to:subject:cc:to:from:date:mime-version; bh=KVYfYtkfOBBWOi+1rAS32GFpKFpaHSuiNxgkDZUgick=; b=MwQW7swWlK+8fVdw/3+13TXxxb0aiKMXGq9/LtM+1jUzfYQhXNpRWRQh/jftjT4o1u cO7BfG9mqPmlDPFr6KEVJLIw6EwQDB3EaHVIK4ROIWM/XI99j/gzCZkqZhBcQdTPSePe qHKvG9nrYLFg2JnBL2WCjOKBCpq6TPEdU1kJS4PTBdppNZasMSEKnS25h7dfBBWCuRA/ ZmVTassl/+QbaztmMWmrzK9dk1v3l35Jop4DQYmiN8xiX/3X0L/n5V+9Mj9xnzdpePCQ 6+gPf4mFY6m4tq/BWzDzbaBkM/RvXbqtq61JCdX4+6Ct6V9o3I77xPTOBVLP9IcCryu7 fYig== 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 s9si869716edh.88.2021.05.27.06.52.42; Thu, 27 May 2021 06:53:32 -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 S236623AbhE0NvH (ORCPT + 99 others); Thu, 27 May 2021 09:51:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236531AbhE0NvG (ORCPT ); Thu, 27 May 2021 09:51:06 -0400 Received: from plekste.mt.lv (bute.mt.lv [IPv6:2a02:610:7501:2000::195]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A031C061574; Thu, 27 May 2021 06:49:33 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=bute.mt.lv) by plekste.mt.lv with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1lmGO2-0000FE-Vn; Thu, 27 May 2021 16:49:23 +0300 MIME-Version: 1.0 Date: Thu, 27 May 2021 16:49:22 +0300 From: Gatis Peisenieks To: Jakub Kicinski Cc: chris.snook@gmail.com, davem@davemloft.net, 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-next v3] atl1c: add 4 RX/TX queue support for Mikrotik 10/25G NIC In-Reply-To: <20210526181609.1416c4eb@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> References: <20210526075830.2959145-1-gatis@mikrotik.com> <20210526181609.1416c4eb@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: gatis@mikrotik.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021-05-27 04:16, Jakub Kicinski wrote: >> +/** >> + * atl1c_clean_rx - NAPI Rx polling callback >> + * @napi: napi info >> + * @budget: limit of packets to clean >> + */ >> +static int atl1c_clean_rx(struct napi_struct *napi, int budget) >> { >> + struct atl1c_rrd_ring *rrd_ring = >> + container_of(napi, struct atl1c_rrd_ring, napi); >> + struct atl1c_adapter *adapter = rrd_ring->adapter; >> + int work_done = 0; >> + unsigned long flags; >> u16 rfd_num, rfd_index; >> - u16 count = 0; >> u16 length; >> struct pci_dev *pdev = adapter->pdev; >> struct net_device *netdev = adapter->netdev; >> - struct atl1c_rfd_ring *rfd_ring = &adapter->rfd_ring; >> - struct atl1c_rrd_ring *rrd_ring = &adapter->rrd_ring; >> + struct atl1c_rfd_ring *rfd_ring = &adapter->rfd_ring[rrd_ring->num]; >> struct sk_buff *skb; >> struct atl1c_recv_ret_status *rrs; >> struct atl1c_buffer *buffer_info; >> >> + /* Keep link state information with original netdev */ >> + if (!netif_carrier_ok(adapter->netdev)) >> + goto quit_polling; > > Interesting, I see you only move this code, but why does this driver > stop reading packets when link goes down? Surely there may be packets > already on the ring which Linux should process? Jakub, I do not know what possible HW quirks this check might be covering up, so I left it there. If you feel it is safe to remove I can do a separate patch for that. I think it is fine for the HW I work with, but that is far from everything this driver supports. Thank you for reviewing this!