Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp732722pxu; Fri, 4 Dec 2020 14:17:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJy5N1tEatvZoXgAQBrsJ9o1yV0DRiZ0Km1WobNWE00DouODb372s9Fgq39pc7XkwnKftsey X-Received: by 2002:a17:906:eb49:: with SMTP id mc9mr8828983ejb.487.1607120248667; Fri, 04 Dec 2020 14:17:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607120248; cv=none; d=google.com; s=arc-20160816; b=FfHu2DObyf+yiir1of1591jSYlpHOIM7OqKoyxIHaz6Gyz2S7H1HaHHCz5MDOXx0Tx lv/EcPN57qcS0aJhNek27GNKmMr12og9CRz1HgnvbtycGjeEehSP+SmqkM02++cztgd0 2VvT0Vyt2eG0gcie6wrPrvFJpfIehhhuU2o9bpJHQmps1kKUbwtfdLEE/Rp3bxHPd6RN UWZZHrrM1jiwJuhMIajT8aERk8geYtTf4T9TJwRK2gRzbWREcwrKkOzRzglCZfwiO8ja jjzv6f03Sy2eLMlLAzWnteulsA0PpI9IzuwqWy90ksLwF3KWK2zkpsNEaWYWMePBCggM yuiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=eUvf2e1KbBw4JN7kj1/Tt3pB7n9ws2GvMxNhKnEF9O8=; b=aFWZjC1Nj20UfKWTFldIQmHrW6DlqclY2lYcyqcJJpwABrPgMg8nW+/NEonsVi4AdP afifI3OpgJfxomPKk+HEAeTl6x1Ga8NCer15IQa0gIIbusGeGBPRky6SN8vIOH9R1H4/ tEe2aoJkcQ6Wpp3CIt87uVEjeHLdz4QuvGKiN9+GALNnI+XclkwEYp1/8jUBpzvQ5o1E 00ucG9lnuPT/pMc6H/dGdg0xLNC51+61Z5XfmUI7WMdITtAobgNjEvEJ48Yvq8rsCO0z XD6yE3wdMmqvimGcjkrartS6tmxGBCIw5dd5DJnhrqXMjH+dBjSKKDisTROZqvh3lCKB 87AQ== 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 mj1si2306568ejb.54.2020.12.04.14.17.05; Fri, 04 Dec 2020 14:17:28 -0800 (PST) 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 S1727363AbgLDWNr (ORCPT + 99 others); Fri, 4 Dec 2020 17:13:47 -0500 Received: from vps0.lunn.ch ([185.16.172.187]:39450 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725885AbgLDWNr (ORCPT ); Fri, 4 Dec 2020 17:13:47 -0500 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1klJJx-00AGxT-JU; Fri, 04 Dec 2020 23:12:57 +0100 Date: Fri, 4 Dec 2020 23:12:57 +0100 From: Andrew Lunn To: George McCollister Cc: Oleksij Rempel , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Russell King , Pengutronix Kernel Team , netdev@vger.kernel.org, open list , linux-mips@vger.kernel.org Subject: Re: [PATCH v4 net-next 2/2] net: dsa: qca: ar9331: export stats64 Message-ID: <20201204221257.GH2400258@lunn.ch> References: <20201204145624.11713-1-o.rempel@pengutronix.de> <20201204145624.11713-3-o.rempel@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > > +struct ar9331_sw_stats { > > + u64 rxbroad; > > + u64 rxpause; > > + u64 rxmulti; > > +}; 7> > +struct ar9331_sw_port { > > + int idx; > > + struct ar9331_sw_priv *priv; > > + struct delayed_work mib_read; > > + struct ar9331_sw_stats stats; > > +static void ar9331_stats_update(struct ar9331_sw_port *port, > > + struct rtnl_link_stats64 *stats) > > +{ > > + struct ar9331_sw_stats *s = &port->stats; > > + > > + stats->rx_packets = s->rxbroad + s->rxmulti + s->rx64byte + > > + s->rx128byte + s->rx256byte + s->rx512byte + s->rx1024byte + > > + s->rx1518byte + s->rxmaxbyte; > > Are all of these port->stats accesses always atomic? I'll need to do > something similar in my xrs700x driver and want to make sure there > doesn't need to be a lock between here and where they're updated in > the delayed work. Since these are u64, they are not atomic on 32 bit systems. Take a look at include/linux/u64_stats_sync.h Andrewu