From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA8FE24FC18 for ; Fri, 21 Feb 2025 17:21:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740158506; cv=none; b=dhJwS3F096qK2TT/b6YBuPz/Q4KfYo5fmIdGs8Sm2FYRHI3KUWkYuO92seepxj4PpFkootVg0GccLH+ZKoBS4RJyinsh3l9Oms8VRXJPtojG00SEnJ0yz364ZAXEeBWWm+mUfXgk3jm00IUUVmfgMjgHCwabYzTxls3ryU9mo1o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740158506; c=relaxed/simple; bh=0Hht/jYaEq1V8iN+xgQCAvSA0pIDp8nvaC/arD4DlrU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=eCSrT0CoZoqiZ6CpCScvGBQLxSg3GkPzpK3d6E5eiSQVl9AmTWGjPf78T1Stpzd3Ftx0oJdCvQr9Sv986pPAYblnVwu17BYf9ydyToM6LaMZDly/2DbC6cpQtSTRi51OgjlC0TEf4tT+VuEKBquC2y5z8fCpLSkMSwe1XvgrgwA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fastly.com; spf=pass smtp.mailfrom=fastly.com; dkim=pass (1024-bit key) header.d=fastly.com header.i=@fastly.com header.b=LAXfqUnP; arc=none smtp.client-ip=209.85.222.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fastly.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fastly.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=fastly.com header.i=@fastly.com header.b="LAXfqUnP" Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-7c04df48a5bso248240285a.2 for ; Fri, 21 Feb 2025 09:21:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastly.com; s=google; t=1740158503; x=1740763303; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=8Znmx94mCfsGvvpL2DgWVIQn2SIQ9TykkZQScUK21z0=; b=LAXfqUnPP4SciW5tWH6wau7VX8MEpjhJaR+lFYbNhUY/W2Jm7z/EXglv4dKQc5EcSm hfeH78weamMs75MDrx8ez10xf0PeIg2KJo3OVpva2/xISuEDu2+ov3fK1g7Svx8xEepk IQ4HPSIB8knAB9lL/dJpBtMSrvyz7XkT0ZQFA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740158503; x=1740763303; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8Znmx94mCfsGvvpL2DgWVIQn2SIQ9TykkZQScUK21z0=; b=HduF3vIDiCvBCCI9bDi274BvDe9f3iJMqJVh+oeKneq3mu034NhbSOmrUmrapP57jx xwvbB0AAtmhctNFzecS+v2/jxxKvvL5WMsCAGsCaeMkdVRnB92FEpkvZMxsO5y8UuwTu FJ5bvsjvXU2YHR2Bsntwv+FpLYXFswLm8bmBkZ6sKn9ISLV8iMSaIos3beThRihtRVC4 WhkGJ7Ya5DRGTD34DkQoDLMmCU44Bn8136OLkTqgFlkhbE0qXrpP6zGzE4VwiXfRKjD/ Tn1amFKUNyJ2rI79t52EENVezJ65lAQiojYXZDHlDPsmNa4lGvtal0YVDZsp9EnFgXYm ikgA== X-Forwarded-Encrypted: i=1; AJvYcCVbqTdX5ZblDav19o5kjlYgqsDpZ5WSFdNAVNkVqEf+Zwzy5lT+XWWuCpCfjFih+ayiIiTgz7s=@vger.kernel.org X-Gm-Message-State: AOJu0Yxcj3CgqgewrJviEsqNK/kEfug0i1HByRLvN45BWmVstqCmjQXV JQ4k9GzxXcORF2VSQiHXf8ZYPP14NXe+232P/c0EPHLAYl4jn8cmFr9A3EWKUv50tkdK8CnwKBP 6 X-Gm-Gg: ASbGnctPBmp/U1h2FFSVm6awepzNVrwddz6xhKtZU9mvMpov9rO5YJwDEeQuEZDSoD7 4CPlXUfH1aPlg28jABe3Bt8yN2VP6XL1yJvckS29khG/ZiUDyIfuKbBdefQZPj1h7nBIZ9gg/3n dVryGoFWs+rWUmubY4nJ2S6YGRgLziHiKPLDIyz6LnwJV7tDE6yX9IC8HJCKF+VQErZ5RgYQCZ3 3ewIEzLBL/lWm7b1NyfmccUbbX7P7TJeWuERV/wsUaiaKWMpQluEUhLwG7pitzoDSN/BRq1+hO9 i9y4ZI5k3rgTQBM35DHzKeykGrW+UdPTxJ7ee2qVK4W+Ndt3IpqkU65EfXTu0RZp X-Google-Smtp-Source: AGHT+IHo/d78nx0q8o83gfhXEWNKkI1eKr24evaOrGuWvpwqOUkM+xFI9To4CNDvCQ8NQyKa3feC1Q== X-Received: by 2002:a05:620a:488c:b0:7c0:a0ba:2029 with SMTP id af79cd13be357-7c0cef535b2mr650712185a.40.1740158503521; Fri, 21 Feb 2025 09:21:43 -0800 (PST) Received: from LQ3V64L9R2 (ool-44c5a22e.dyn.optonline.net. [68.197.162.46]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c0b368d200sm398593785a.99.2025.02.21.09.21.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2025 09:21:42 -0800 (PST) Date: Fri, 21 Feb 2025 12:21:40 -0500 From: Joe Damato To: Sebastian Andrzej Siewior Cc: linux-rdma@vger.kernel.org, netdev@vger.kernel.org, "David S. Miller" , Andrew Lunn , Eric Dumazet , Ilias Apalodimas , Jakub Kicinski , Jesper Dangaard Brouer , Leon Romanovsky , Paolo Abeni , Saeed Mahameed , Simon Horman , Tariq Toukan , Thomas Gleixner , Yunsheng Lin Subject: Re: [PATCH net-next 1/2] page_pool: Convert page_pool_recycle_stats to u64_stats_t. Message-ID: Mail-Followup-To: Joe Damato , Sebastian Andrzej Siewior , linux-rdma@vger.kernel.org, netdev@vger.kernel.org, "David S. Miller" , Andrew Lunn , Eric Dumazet , Ilias Apalodimas , Jakub Kicinski , Jesper Dangaard Brouer , Leon Romanovsky , Paolo Abeni , Saeed Mahameed , Simon Horman , Tariq Toukan , Thomas Gleixner , Yunsheng Lin References: <20250221115221.291006-1-bigeasy@linutronix.de> <20250221115221.291006-2-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250221115221.291006-2-bigeasy@linutronix.de> On Fri, Feb 21, 2025 at 12:52:20PM +0100, Sebastian Andrzej Siewior wrote: > Using u64 for statistics can lead to inconsistency on 32bit because an > update and a read requires to access two 32bit values. > This can be avoided by using u64_stats_t for the counters and > u64_stats_sync for the required synchronisation on 32bit platforms. The > synchronisation is a NOP on 64bit architectures. As mentioned in my response to the cover letter, I'd want to see before/after 32bit assembly to ensure that this assertion is correct. [...] > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c b/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c > index 611ec4b6f3709..baff961970f25 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c > @@ -501,7 +501,7 @@ static void mlx5e_stats_update_stats_rq_page_pool(struct mlx5e_channel *c) > { > struct mlx5e_rq_stats *rq_stats = c->rq.stats; > struct page_pool *pool = c->rq.page_pool; > - struct page_pool_stats stats = { 0 }; > + struct page_pool_stats stats = { }; > > if (!page_pool_get_stats(pool, &stats)) > return; > @@ -513,11 +513,11 @@ static void mlx5e_stats_update_stats_rq_page_pool(struct mlx5e_channel *c) > rq_stats->pp_alloc_waive = stats.alloc_stats.waive; > rq_stats->pp_alloc_refill = stats.alloc_stats.refill; > > - rq_stats->pp_recycle_cached = stats.recycle_stats.cached; > - rq_stats->pp_recycle_cache_full = stats.recycle_stats.cache_full; > - rq_stats->pp_recycle_ring = stats.recycle_stats.ring; > - rq_stats->pp_recycle_ring_full = stats.recycle_stats.ring_full; > - rq_stats->pp_recycle_released_ref = stats.recycle_stats.released_refcnt; > + rq_stats->pp_recycle_cached = u64_stats_read(&stats.recycle_stats.cached); > + rq_stats->pp_recycle_cache_full = u64_stats_read(&stats.recycle_stats.cache_full); > + rq_stats->pp_recycle_ring = u64_stats_read(&stats.recycle_stats.ring); > + rq_stats->pp_recycle_ring_full = u64_stats_read(&stats.recycle_stats.ring_full); > + rq_stats->pp_recycle_released_ref = u64_stats_read(&stats.recycle_stats.released_refcnt); > } > #else > static void mlx5e_stats_update_stats_rq_page_pool(struct mlx5e_channel *c) It might be better to convert mlx5 to page_pool_ethtool_stats_get_strings and page_pool_ethtool_stats_get_count instead ?