Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3593899pxv; Mon, 5 Jul 2021 00:44:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwKd3A6m+0ND7a4XzPEHttbwbebEOABmDjAKIgfIJu7wzxp/cuPYT9Oi1tRe/zARdGMeqj0 X-Received: by 2002:a6b:b715:: with SMTP id h21mr7497781iof.82.1625471062472; Mon, 05 Jul 2021 00:44:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625471062; cv=none; d=google.com; s=arc-20160816; b=fnomocMcYaKPMrkkv+xsIgHvb/Feksa8fxWsfYF4ZMnNZemakgI6CDyiiIGkDwJEiI fdReMAzGqWKN8nEYfy1KP95WdvZHNaToIM5QuzgKjVeYncH6OsFi/mW6PdqeJ48GSJMN gtBU533671SMvDjY5SwRRZIpIUkwDxqpKQqBhaK/UD9vw19ZKWvrkSO4AbjdrulF+jg+ LiMphE6Td0pMAxxU6mL4ywaU6wBKmj/IE5Jz9eUQNctBSzI47ckMipb+RrlwaYJ696cN mxej+J9jA9WHarUMjVTJTGK2G7RWNdPG2M0/evByiSeoodr03pm+zM9Uo/Z11GkIncEo S5Kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:message-id:in-reply-to :date:references:subject:cc:to:from:dkim-signature; bh=O56M9m1SOAcoG31gWL3WsHKGhq0REBkWGtxp2K0CywM=; b=t4NBEA5GE9+92nOW3YvIG+V+DWw60gU7cgnJXNLtBvATjoEjz3duW+Zte1hOyEFUbN Rgb5C+1gvVn1m8UIE5cYp5bRUNw3bG5D27ChJXBli/0Of9ZXhx4czn3oZb9TmGtF4syC EEiAbMeFQRqbCxzwCfeER8BlrON+ZIREEK5E+UUdnbglg+6SD6eRp1407UhRGT3IbmFZ RedxP8K7vvYkOv9Qdwu7u+Kwy6FKrcLx1Pyolx0h7ezqleE0xPJxOkhxOeXvzWQxaw8l 1cm/1N5Cl9/WG0yUEjS851+VwNuGZ0gqknLalbBGLTIHi06iA8t22kcdaBPham9W8W7X BUjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@geanix.com header.s=first header.b=f5URPZai; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=geanix.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l17si13362655jas.38.2021.07.05.00.44.11; Mon, 05 Jul 2021 00:44:22 -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; dkim=pass header.i=@geanix.com header.s=first header.b=f5URPZai; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=geanix.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230027AbhGEHol (ORCPT + 99 others); Mon, 5 Jul 2021 03:44:41 -0400 Received: from first.geanix.com ([116.203.34.67]:49190 "EHLO first.geanix.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230033AbhGEHok (ORCPT ); Mon, 5 Jul 2021 03:44:40 -0400 Received: from localhost (80-62-117-165-mobile.dk.customer.tdc.net [80.62.117.165]) by first.geanix.com (Postfix) with ESMTPSA id 04F814C528F; Mon, 5 Jul 2021 07:42:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=geanix.com; s=first; t=1625470922; bh=dgpgbFO+AkeqP2aXFDpwiwm4oc+y3Uzbs8GvMijlFxw=; h=From:To:Cc:Subject:References:Date:In-Reply-To; b=f5URPZai2agU/HGKuv5ZFecSTAuW6f5YrAmez15mBR/3bvpFC3Wka4WqcipDIoxQk Log0IGZV+zy7UxcBWnXavpug/0Fch+vE0WZPEqqkiweJpz6BIkWh+XHxm9vIsSBPHS saWNN/4eInPczVyiNLCSZBzwx8Cn34Z9Gci++1Trk4cRCtAzS/wZYpwAA+rY3dfvJV IbkdqkQ0/KDHQraPKR0PXyyvq0R+VGNtvvFmLAMXEupdZ9iaX+cy2a3h84TWAmPSZE TTjbwPeNE+mEh7a2ZgwG15949w+XSYU+TA/A0RpiW4KxZrMcrXhA3N3lGNcHuqAMC/ BoeMeqWS2X7lg== From: Esben Haabendal To: Pavel Machek Cc: Sasha Levin , linux-kernel@vger.kernel.org, stable@vger.kernel.org, "David S . Miller" Subject: Re: [PATCH 5.10 055/101] net: ll_temac: Add memory-barriers for TX BD access References: <20210628142607.32218-1-sashal@kernel.org> <20210628142607.32218-56-sashal@kernel.org> <20210703152218.GD3004@amd> Date: Mon, 05 Jul 2021 09:42:01 +0200 In-Reply-To: <20210703152218.GD3004@amd> (Pavel Machek's message of "Sat, 3 Jul 2021 17:22:18 +0200") Message-ID: <87zgv1tdfa.fsf@geanix.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-3.1 required=4.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,URIBL_BLOCKED autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on 93bd6fdb21b5 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pavel Machek writes: > Hi! > >> Add a couple of memory-barriers to ensure correct ordering of read/write >> access to TX BDs. > > So... this is dealing with CPU-to-device consistency, not CPU-to-CPU, > right? Actually, One of both. When looping over the buffers, looking for CMPLT bit in APP0 (in temac_start_xmit_done()), the challenge is CPU-to-device consistency, as the CMPLT bit is set by device, and read by CPU. But when we clear APP0 (and the other fields) in the same loop, it is CPU-to-CPU, as APP0 is cleared by CPU and read by CPU. > >> +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c >> @@ -774,12 +774,15 @@ static void temac_start_xmit_done(struct net_device *ndev) >> stat = be32_to_cpu(cur_p->app0); >> >> while (stat & STS_CTRL_APP0_CMPLT) { >> + /* Make sure that the other fields are read after bd is >> + * released by dma >> + */ >> + rmb(); >> dma_unmap_single(ndev->dev.parent, > > Full barrier, as expected. > >> @@ -788,6 +791,12 @@ static void temac_start_xmit_done(struct net_device *ndev) >> ndev->stats.tx_packets++; >> ndev->stats.tx_bytes += be32_to_cpu(cur_p->len); >> >> + /* app0 must be visible last, as it is used to flag >> + * availability of the bd >> + */ >> + smp_mb(); > > SMP-only barrier, but full barrier is needed here AFAICT. I don't think that is needed. See above. /Esben