Received: by 10.223.148.5 with SMTP id 5csp7583989wrq; Thu, 18 Jan 2018 07:08:39 -0800 (PST) X-Google-Smtp-Source: ACJfBotYObdqpK5gIyql2fmEcOtjSpbm9icyFKKfk0+NQ2HkopOXkv0Lql2kq09prAx+HzNhymCF X-Received: by 10.98.87.2 with SMTP id l2mr5429788pfb.46.1516288118935; Thu, 18 Jan 2018 07:08:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516288118; cv=none; d=google.com; s=arc-20160816; b=ZTV0dJgkIthEmah2J9CT5SuzB0mdV8piW9bCN60ZO7yMHGjrjou6l0stPqlrH2WJcR yT2NNbNhStJCsoMRPw/iK4dxGLwjMxmcou0WCpO/kqJmpyjDNqqU31HMLdI+jBz8Gw/L ozXPqUX52ZnYjxlYSuozWkTvcdP56GydLGNYu5q5XXrW5OYMOrcLRmltPBFPPWwyC+5j JJBH1yDHWIdqZElnife4+hQLZy6WzsMTN/JWefsVUEt87swHjacC5BRSxoB98+RGO3dw TgJ1g+NrCJ+fXX7u0VJQScs9938Mc33bim9zqMa3OAWuh5PvFGUAqx2dB0EqeA+oZcwb My5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=fQchVJLll+hD0VX2LVzrMP0mC06Mk2d9hvUwv/htmIE=; b=iGMghxVvD+mpqXa607HmaQK5Uxj/iwF+1YJPw/wm+ZsgGUC0/VwovjjslDLxfclDFd FhRTl9dALsZT54LPA5tjRwThH/znpISckA2KbpDXtkp1U0kr1fWLP53OpaLCBHcin5ST tIrU4yfHWOAiqcu441EPr7XRvaKJNRPe55NyRfIfiYI/wvbT1VEQkXv1vqBlc0B+rqdo MCd/Wum3BGzKLZb0o0shw6Ld8a6R0Kxu+coSbFoj3KlF8PtaOiSu3UMKdpmv0Qp3gfJ9 gaLZn0hNKUT7uXlNMPNIqsG+GLELV+rR0fq4hSnN12EB5+NgY/dtE6zsNvzDDoKENru2 ze6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=merlin.20170209 header.b=Cyua715n; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s12si6243082pgc.746.2018.01.18.07.08.24; Thu, 18 Jan 2018 07:08:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=merlin.20170209 header.b=Cyua715n; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756634AbeARPHU (ORCPT + 99 others); Thu, 18 Jan 2018 10:07:20 -0500 Received: from merlin.infradead.org ([205.233.59.134]:47050 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756573AbeARPHM (ORCPT ); Thu, 18 Jan 2018 10:07:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=fQchVJLll+hD0VX2LVzrMP0mC06Mk2d9hvUwv/htmIE=; b=Cyua715nRJdNNpzYfw6VkWDrE yuO8iK01c5SBnmYRJsC26lC88vBwscqtr4VU1G4IXhyYySMSpA3LOIm/VQhxvX5xBQ16XcUSMgtc+ ophm7hlliZj9WDEIOkbYYYNF7p+ETAi9UZbv1YW9lqF9OlYsdx0nyAJFgvty/hZJJxr/nYXyx1xaa x+Asb19hjtK3hGwcG/uW/18LpGYP2fkmUDNkMZgfTISVKn3ltzaBk+bFqFC0QRcm5VFMiwkvN0E3R RQYnD0xfxShMwy+snJZxPZJkVEAz12JrkqiTLNddSX8zRhLpphsCAEyn2sFaexfqgqByO7Y+Y1kxH eElfPuFAw==; Received: from j217100.upc-j.chello.nl ([24.132.217.100] helo=hirez.programming.kicks-ass.net) by merlin.infradead.org with esmtpsa (Exim 4.89 #1 (Red Hat Linux)) id 1ecBmN-0001Rv-B8; Thu, 18 Jan 2018 15:06:59 +0000 Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id 1F6832029F9F9; Thu, 18 Jan 2018 16:06:58 +0100 (CET) Date: Thu, 18 Jan 2018 16:06:58 +0100 From: Peter Zijlstra To: Jia-Ju Bai Cc: nic_swsd@realtek.com, romieu@fr.zoreil.com, alexander.h.duyck@redhat.com, David Miller , dhowells@redhat.com, paulmck@linux.vnet.ibm.com, will.deacon@arm.com, netdev@vger.kernel.org, Linux Kernel Mailing List Subject: Re: net: r8169: a question of memory barrier in the r8169 driver Message-ID: <20180118150658.GE2249@hirez.programming.kicks-ass.net> References: <9a373156-41e5-a78b-cd31-c4b9bdba2696@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9a373156-41e5-a78b-cd31-c4b9bdba2696@gmail.com> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 18, 2018 at 10:06:17PM +0800, Jia-Ju Bai wrote: > In the rt8169 driver, the function "rtl_tx" uses "smp_mb" to sync the > writing operation with rtl8169_start_xmit: > if (tp->dirty_tx != dirty_tx) { > tp->dirty_tx = dirty_tx; > smp_mb(); > ... > } > The function rtl8169_start_xmit reads tp->dirty_tx in TX_FRAGS_READY_FOR: > if (unlikely(!TX_FRAGS_READY_FOR(tp, skb_shinfo(skb)->nr_frags))) { > netif_err(tp, drv, dev, "BUG! Tx Ring full when queue awake!\n"); > goto err_stop_0; > } > But there is no memory barrier around this code. > > Is there a possible data race here? > If not, how this data race is avoided? There is only 1 variable afaict. Memory barriers need at least 2 in order to be able to do _anything_.