Received: by 10.223.176.46 with SMTP id f43csp1975230wra; Sun, 21 Jan 2018 08:26:00 -0800 (PST) X-Google-Smtp-Source: AH8x224mnTys9r2vUAQIbNKc3ocIMnU0SdnIBE+AVuth4jXcFZ3C8nQwgiLim+wEszQhcE3lEmc+ X-Received: by 10.98.67.82 with SMTP id q79mr5594951pfa.144.1516551960413; Sun, 21 Jan 2018 08:26:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516551960; cv=none; d=google.com; s=arc-20160816; b=ZFhekM05kTPbB0eeIGY855T/Uwvs/JY0Pfajd+7ftn24EIqcdqbwGQBNWU01gx2LVG uarHlITzt5AhfLXRArr8PPlxYQ7nx4r1Xkg/L2cpjgqN+0DErkqJzzigWBwIdDZPg4O7 rseQxn9p7AVaOBl6RNDQdRbgraZKBJQFKe7kVrMIDxbYY2utri1A2bek5UKsHL81h4ot l8DTW9r0z6EvEXWre0PLbAMKugXiaT0wAZbN2wmFYzyJ3XiD6PL2/UFYpAeexO+CGmyT UypyEsZqoNiqUiNvinusIPB1zYLrYXXvio3ECgLVFwDDI6QbKx+63vhVMWBtidS1rNdv OWlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature:arc-authentication-results; bh=1PpHS0l2NxCEEwqa8rjZLMAQgY6qumbbb6be5u5eFWc=; b=VZyrq+PDOReeFrYydvC8o7JxVTQQY2tT9DbzHsWHmMYPrGuDh3jMxhD2iLR4qNOQkc K65ZAwFrsCbWmUuU0yfoMH7CxmFWhT8yvsqJ7CoiKkQvFI7mYL+8wEmDBH+G0MTwZ3BG 7itr+WGBLYii2xZu/HjPK9RqF9tZK8ufKBlQQ0IzMg+KLRSgNVfmCGsWgCP6xndcjr3U zgS+xfwyir8xerDq/Lgaij2EaUP55mV9eh0o6BEAJuYRxVUX2oJ2Bq2kYtkztx3j48eI OpIG+3K9QVNaxGcsJPav1KlhFrUYUED4E8lHBtSi3noiLAxaAnLKMSejuc03Fdh60aGu ZBmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@Mellanox.com header.s=selector1 header.b=Hsgbq+OR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mellanox.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 37-v6si2638110plc.215.2018.01.21.08.25.46; Sun, 21 Jan 2018 08:26:00 -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=pass header.i=@Mellanox.com header.s=selector1 header.b=Hsgbq+OR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mellanox.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751214AbeAUQZS (ORCPT + 99 others); Sun, 21 Jan 2018 11:25:18 -0500 Received: from mail-eopbgr50070.outbound.protection.outlook.com ([40.107.5.70]:4928 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750793AbeAUQZP (ORCPT ); Sun, 21 Jan 2018 11:25:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=1PpHS0l2NxCEEwqa8rjZLMAQgY6qumbbb6be5u5eFWc=; b=Hsgbq+ORvD23wHT/BOZu/jNEgieTbB9t04G6rENYL77m7rUcsSNbxS7oTp+gDIy5bNlFNhiRygyQI0+Erx7lBcpYJDR7LeLhonzyj2R8YEYKco8k/9vR507S9smTn9pP5EI6hIlHQK6RZBJFp7RAvU6FoP/g8VZOEoBJePDpLAs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=tariqt@mellanox.com; Received: from [10.8.0.245] (193.47.165.251) by AM2PR05MB1137.eurprd05.prod.outlook.com (2a01:111:e400:844d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.428.17; Sun, 21 Jan 2018 16:25:01 +0000 Subject: Re: [PATCH] net/mlx4_en: ensure rx_desc updating reaches HW before prod db updating To: Tariq Toukan , Eric Dumazet , "jianchao.wang" , Jason Gunthorpe Cc: junxiao.bi@oracle.com, netdev@vger.kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, Saeed Mahameed References: <1515728542-3060-1-git-send-email-jianchao.w.wang@oracle.com> <20180112163247.GB15974@ziepe.ca> <1515775567.131759.42.camel@gmail.com> <53b1ac4d-a294-eb98-149e-65d7954243da@oracle.com> <1516376999.3606.39.camel@gmail.com> From: Tariq Toukan Message-ID: <339a7156-9ef1-1f3c-30b8-3cc3558d124e@mellanox.com> Date: Sun, 21 Jan 2018 18:24:55 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: VI1PR08CA0125.eurprd08.prod.outlook.com (2603:10a6:800:d4::27) To AM2PR05MB1137.eurprd05.prod.outlook.com (2a01:111:e400:844d::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e82394d9-223a-45d5-9fd8-08d560eb865a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020);SRVR:AM2PR05MB1137; X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1137;3:rQ1W149t16d/2jrWm7ld3REYpBWOUt5jTlbyfdW9YZMKedcsY6timjKOLkvc6fDZtDehCV5Raa6zyPdP1EEAuFIwuZ/6jmX9MJAK07pJbXpY/QAwItvgoGh607+4shz7Lz6Yojgvk3DUZJd3peBUl7/zrrcl55Zvilt+/bZypZiVh7/3ebgz6m+vS11U6eTSAq0cZ5FmXl1iPomT1/CG7MBCAryylvt7DNLzulFGkUfnGI8D5B2Xahj4DBoavJ90;25:8XZnUjVxHz2GhBPCT/59fp5XOeYzsrHJ9X88D7Io3wVGUM7jfbSM+zq+BwEx7ux6V9ETOytDYXGq1MAkAD0L1xWFv7RVhhH8bFUdRiDi3W4kWKTEgBXiTT3dijvd2tVkW8XH6a86ZCO+GtkexQF+N1P0VjddW87UyJ3mv0K4yPNOu8wXoVBYbm1bFqVt9sNzV25bZdvw5Iu0s9Qc8VPUiQUZ97pDq4xavItMx40xWDVHL4xhye2BDz25CO2iqcmz0px3yXgiTBFIuRsLHgdEZQEUPKeppkBCpIRFZ7H3lLkqCPGRXDJbjxwmn5R3EVIngYUJCTYaw5foXEVnD1prGA==;31:NlPwYXgC+U0jILg03lOyN+wVjE3ym72DW6V/9Oe1OZNDWNn9F4IJeaGLKN3GxaNg1m/VWBAyQx/SET2WgjamxvcoM1rEimRmDjO96ejtoEJCYCHZfMcIpq4pSZhUshzEzrgv6N4J4+h4IMspBJCs2vTHreb30x/Dmy2ZC4Z2CWbfGUcZUjmGvngQ6Sk3/U8fCHuPMocnrTvZeMWNWxW/x3nZFTzRNtgIn0otNWNAu6c= X-MS-TrafficTypeDiagnostic: AM2PR05MB1137: X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1137;20:Yvw/00XPH1fZ0H0Mcm4epDNpzM6Sl8L55xYdfHHPRhzEGtnhPromTM1mhCzrKVgV7MrjGE9kgDln1IhKhoDiMlj2wYeMfT5qE+eusTu8P3iA3IfeB1Fl0A+HaQX7QJbzMUYCWGVvFTeTB925HtgldM+lPZi3/JOQEsJcwi8cl9HgymWi0JeRUMJN0eu+mxnxNjqH4+VSFlltvuIm10VnoCagTRKLKfirgnbGZgIOkOI0kiwNWXKmNUR/NtHF69mguEXGrzczfCJ9r5RJ1l3J+X9/JzXlAqXXuWysSWa5nosskfiSPfEkRWw0/6+Imz7lcvqbdJJD/lNItUhz+YcFH8TXNaRkhwhYBN6es0w4qYvGtYyJCsAM36QDVzpu8SybmWgf/EWo/YTu6jW8XlWUEbgFcnMpxIxRfm8sTNpb3ys215pULRx/gyFDPKSLINxQe+MQWJ8zMHTzmvpr2/g5NFj835jHimEzjdtYpX3fHQijpNdZa8IDWR2RlgswLW0c;4:ONfSyaCQ+/umEpVv5+lHrB6sD4CuLZ+TWWAAPwApydiWaL/FjlL6K+/zYgM27fG+fHA+R/15epNxmn89PfQ6ca/PDVSW3OI8nAD+DAJEw58RaZZo/7TfmIFGktZNw4oknH3u8JaSDG4mV17j6cOgpFFWORAqo7uGgcZYF1T+gFFyB+7V5SY4BJjt3AlFgtAR9NFYrBYSjwhSOSTLOUFUYKStX4oUPrTEJz5vpcthPh9eM7ena2pIS/P37dROijJhE1qVeNdxrkDDwcR9oRvM2S8XzRlC4BcPVGPbejGaLODy6LSA+LPIau5NX5q7G27AwkPd7UcvP59GCgnOsG7sGUIsrgM+eMaZTVbDxSU7OLoXgqg09a/veztDzel4XVAW X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(60795455431006)(9452136761055)(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231023)(2400081)(944501161)(10201501046)(3002001)(6055026)(6041288)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011);SRVR:AM2PR05MB1137;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:AM2PR05MB1137; X-Forefront-PRVS: 0559FB9674 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(396003)(39380400002)(39860400002)(376002)(366004)(346002)(377424004)(51914003)(199004)(189003)(2906002)(64126003)(86362001)(59450400001)(26005)(229853002)(3846002)(97736004)(106356001)(6116002)(77096007)(53936002)(66066001)(65956001)(65806001)(478600001)(966005)(47776003)(6486002)(53546011)(31696002)(2870700001)(386003)(2486003)(52146003)(23676004)(6306002)(93886005)(52116002)(50466002)(76176011)(8676002)(5660300001)(68736007)(81156014)(36756003)(81166006)(305945005)(7736002)(65826007)(6666003)(2950100002)(8936002)(39060400002)(6246003)(4326008)(105586002)(83506002)(31686004)(67846002)(16526018)(110136005)(316002)(16576012)(58126008)(107886003)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR05MB1137;H:[10.8.0.245];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTJQUjA1TUIxMTM3OzIzOlRaTk5nRkN5RFR1UTcwRDVOSHFpci90alNR?= =?utf-8?B?elArNngvcUdlN21WVURxbzhFK0creklNZzhOMFRIblBKZVJRN1NsbzFiSkp1?= =?utf-8?B?MmJnaEZXRnJyRUJYeGhDZURYMWRkSDNkdlh4WnZ2YzY0S0pWa1JxL2FsKzFz?= =?utf-8?B?N1BSMjlrWTkrVkxwQk8vNUdLMHYyS1M3a2RYMzV4RjZpSjZUUStFQkkxTThS?= =?utf-8?B?Mm11RU9ERDFjVUprR3VuZ2g1YjhZL3UxSlpKTmdPM0gzTnZyRGVJdkc5c3BQ?= =?utf-8?B?WTJuSTBUK3p0M1p0MmdkVDI2ZkpkZ3Z1eDBhRHdhMWsxREtPWC9zM1AwZXVZ?= =?utf-8?B?UzNUeFRDbi91OG1uME80czdHVUh0RTBjWEZlTWl3KzJYZC9nNkt1dXNUNXdU?= =?utf-8?B?WmxFR1psd0tRS0NOeFZKNEJ1bUE3T3oxNW5mZFg0RGVJaWNnR1VVa0FrTTFq?= =?utf-8?B?RkxRSG1QOGxLREVWVmp3MXBGTTc5NzRRYlJuZW5RRFd1TGY0alFjd2Jxek5S?= =?utf-8?B?N2xjcVNxbWNQaFdwR1llTzR3NlhPUzdTallmQnRBQ3VJa3RnenNBOWphbSsw?= =?utf-8?B?cWNhSHo4bElZNFNGckdsUVU4TTJiWHNvWHFiQTFzdytCSlV1R1hEQllNMmt1?= =?utf-8?B?WXBOUVhYTXhBekliU2NMUmNIazhQOXQ3QVFmWGVDZWx0MUkxMldiTkxCdmJW?= =?utf-8?B?ZzJwUll6NkJDb2lkeE12c293NitvaHcvTzNZamQ5SmZtR0FQV3ZSZmQ0L1Fh?= =?utf-8?B?c3B5RERhbWdGVTNRYk5aV0hqYk1LR3R2UGlhelF1eGlJVVBoQlNPN00rM3Fw?= =?utf-8?B?VzBDN3hXTzlaNndjenA2eHQyT29sZENDMEV5bkllYjJuRW1Lc1M0SDlSdkFw?= =?utf-8?B?NXFxNnEzWkN4czJZREFIeXJJUFFZb1BUQTMxa1JPWkt3RDhFQldFVHlhSGxq?= =?utf-8?B?TTcrN3cyNGlZejhyZ0MrZEZKMkI5QjNSUkNxL1o5UjlaUFBueDdYWUpzSWRt?= =?utf-8?B?aDNINkVqVlJFYTJhS2ZpL3pQZFplcFJSWjhCMHRvTU0wcUJadytOdXFMbFlZ?= =?utf-8?B?L0xTRm1PN3QwWE1rSkRMNmFaQ1QxTnp5VEtjVzg3ZlFBUU1sMWNSaFNXSlZl?= =?utf-8?B?Z3BYZFR4WlJtRjlOVFV4ZThzckduWXpNVk80N09weGlFN0NmOS9aMTlDd1k5?= =?utf-8?B?RndhR0Z0YkNPcmc2YWlCcHIwdDVzZDRDKzloL2lYZHloTjhTMlhsYU1LVmF6?= =?utf-8?B?b2FrNUI5OFhhNktPVHIwWWc4Z3cva2xlclRuL212Nzk4S09xMzVIM3U0Sy9H?= =?utf-8?B?ekpqMEYxU0NIRDBudzJLQU5lc3hhdFRySTIvTDQwOVptaG5vMXlMMGtqbTdS?= =?utf-8?B?Qk9DMjljaE0rNWlMMDNMYmdBYkFIRVNRaDBOa1E4QTRXQ3RxU0M0UCswMHlp?= =?utf-8?B?UEF5bHdLM28rRGprZjVVWG1MNXBmcE81RUQyUCtacFZ5UEs3U3g0MERmZlRB?= =?utf-8?B?ejR6WUl3cXJDRHgvSUpLRXlHcTd3RFYzTTRMNzF3ZVd0L3RRLzBrVVpYN2VN?= =?utf-8?B?ZDNEMzBHa1d1Z3ZwczJVQStqRkdobTRhVWNaajZKSUFuc0ZlamIzOGJSN3Az?= =?utf-8?B?WThicFdKK0dnMVY3ZmE0aDQzUFJiTFlYM3pkeTJiSTFWeFR1V095N3RDQkFC?= =?utf-8?B?NmZtOTI0VDNUMXVFK2h4Ri9Yd05Ub2xUbW9IanVTMlR5ZGF4Tnc3YlpHalBW?= =?utf-8?B?QnFHcE1SUzR6Q0NwRmlBcE9WakszT1dnYUpjdHd6Ujl4cWJwZzlUdGczM2lv?= =?utf-8?B?R29qYS9HYkNFeWZxa2R6ZUR3aHhPa1QySjhHTXZDazR1d0piZ2xjV0gxVWxo?= =?utf-8?B?Szdsb1llNEdLQXg2dVZHbzU4emxEZ2kvak82SThleDltUW5mVGlLUzZVbExJ?= =?utf-8?B?SlpEQ21GR2FOWWxvZElXb0UxM3BqOHl4MEJuYy9pNmFXRWxBOG5ML2dDb3o4?= =?utf-8?B?NzVpemtkaXRwQktDSHpPTmU4bXJZRVU5M2h4cENUdDUzckdaUXdDTHFoMldK?= =?utf-8?B?YTRMVVhtODhybkNZT3doaW1TYnpHcWE2MTI4bDV3amdQN0lwTnVtSWMzRHJT?= =?utf-8?B?b0E9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1137;6:w8eFgaa/tEYy0P1AUMsCqa6euiMCtgLN9WOI1ziqJx4/C71MSjVP77XFY25lGrGciLnMv75dXPSJXkNdJL5mPaK1B2VsTFFbhJv2GjqrOrRUTMwSbocYKaRNq1sRzlj/oX/+oUompWxDLLlPPz3E50WCdyEv0Y7hRe/pE9UjV2OXyyoN9EkwPZs3Atq6uv9uuBqK6iHkz31T8k9RAdOeHiwYIyXfpbxN2XjhAU/vwXmsG+akDHRfbUk2UkZbMOh71ju1yakXMcG3xrty6BFZd9ZVXgMKZJIeab6tWYVjbIEcJ27zSap5KSyCI/Y4Jze/mXqNXddmndb3pM7PIOCZ6koYb+vA9p2XVgui2ulg9IU=;5:G9wmyb0FQWY7YVVoJraDTqdgPoLajUjMrwqsh2GsdVnztkHoZqtZgb0fCtx8Xkobt/BhZmv1qPdLMLutwL2N4kWAbooFBmRQfgAPtdHPyPlDqrVUkciq2dfNqgMQXff534M0YfPOgxetO3tZMYRfHn3ybZKHhrVVN2GGdBbTV1c=;24:iqmLG/5/hCa8TRqC1Choi7J3KnLIl591RHeLDXvQrVjVhYXbzPkDSrZ8mkxiv6SD5ndGFGrBnI1vl9enP9HoNGM3K3/zzEx47UvglrZKGWg=;7:d+k0MNmq5wDRMN3vfzVSbHoUlUu+zmue5PfcdmkFExXtO2z5+QKD1fduRquWAMVgjus7xSo6etImEoQ8EuFaLdOmgEkO9luQelqAzHIIg5UlzsDrM6pzBxxDLHF/JjgBteQvctrLPztir7WOG/T54G8LkQMnTkYayQ8toufUkwCsvsDZCLPtbR4q+F+A3bMk77MLYwHuv1EfJfMkMf4MHbzJP3H53lMLas/1vQk1wkX2fvTpvX7L9f/1ukOd1Yy/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2018 16:25:01.8585 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e82394d9-223a-45d5-9fd8-08d560eb865a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR05MB1137 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 21/01/2018 11:31 AM, Tariq Toukan wrote: > > > On 19/01/2018 5:49 PM, Eric Dumazet wrote: >> On Fri, 2018-01-19 at 23:16 +0800, jianchao.wang wrote: >>> Hi Tariq >>> >>> Very sad that the crash was reproduced again after applied the patch. Memory barriers vary for different Archs, can you please share more details regarding arch and repro steps? >>> >>> --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c >>> +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c >>> @@ -252,6 +252,7 @@ static inline bool mlx4_en_is_ring_empty(struct >>> mlx4_en_rx_ring *ring) >>>   static inline void mlx4_en_update_rx_prod_db(struct mlx4_en_rx_ring >>> *ring) >>>   { >>> +    dma_wmb(); >> >> So... is wmb() here fixing the issue ? >> >>>       *ring->wqres.db.db = cpu_to_be32(ring->prod & 0xffff); >>>   } >>> >>> I analyzed the kdump, it should be a memory corruption. >>> >>> Thanks >>> Jianchao > > Hmm, this is actually consistent with the example below [1]. > > AIU from the example, it seems that the dma_wmb/dma_rmb barriers are > good for synchronizing cpu/device accesses to the "Streaming DMA mapped" > buffers (the descriptors, went through the dma_map_page() API), but not > for the doorbell (a coherent memory, typically allocated via > dma_alloc_coherent) that requires using the stronger wmb() barrier. > > > [1] Documentation/memory-barriers.txt > >  (*) dma_wmb(); >  (*) dma_rmb(); > >      These are for use with consistent memory to guarantee the ordering >      of writes or reads of shared memory accessible to both the CPU and a >      DMA capable device. > >      For example, consider a device driver that shares memory with a > device >      and uses a descriptor status value to indicate if the descriptor > belongs >      to the device or the CPU, and a doorbell to notify it when new >      descriptors are available: > >     if (desc->status != DEVICE_OWN) { >         /* do not read data until we own descriptor */ >         dma_rmb(); > >         /* read/modify data */ >         read_data = desc->data; >         desc->data = write_data; > >         /* flush modifications before status update */ >         dma_wmb(); > >         /* assign ownership */ >         desc->status = DEVICE_OWN; > >         /* force memory to sync before notifying device via MMIO */ >         wmb(); > >         /* notify device of new descriptors */ >         writel(DESC_NOTIFY, doorbell); >     } > >      The dma_rmb() allows us guarantee the device has released ownership >      before we read the data from the descriptor, and the dma_wmb() allows >      us to guarantee the data is written to the descriptor before the > device >      can see it now has ownership.  The wmb() is needed to guarantee > that the >      cache coherent memory writes have completed before attempting a > write to >      the cache incoherent MMIO region. > >      See Documentation/DMA-API.txt for more information on consistent > memory. > > >>> On 01/15/2018 01:50 PM, jianchao.wang wrote: >>>> Hi Tariq >>>> >>>> Thanks for your kindly response. >>>> >>>> On 01/14/2018 05:47 PM, Tariq Toukan wrote: >>>>> Thanks Jianchao for your patch. >>>>> >>>>> And Thank you guys for your reviews, much appreciated. >>>>> I was off-work on Friday and Saturday. >>>>> >>>>> On 14/01/2018 4:40 AM, jianchao.wang wrote: >>>>>> Dear all >>>>>> >>>>>> Thanks for the kindly response and reviewing. That's really >>>>>> appreciated. >>>>>> >>>>>> On 01/13/2018 12:46 AM, Eric Dumazet wrote: >>>>>>>> Does this need to be dma_wmb(), and should it be in >>>>>>>> mlx4_en_update_rx_prod_db ? >>>>>>>> >>>>>>> >>>>>>> +1 on dma_wmb() >>>>>>> >>>>>>> On what architecture bug was observed ? >>>>>> >>>>>> This issue was observed on x86-64. >>>>>> And I will send a new patch, in which replace wmb() with >>>>>> dma_wmb(), to customer >>>>>> to confirm. >>>>> >>>>> +1 on dma_wmb, let us know once customer confirms. >>>>> Please place it within mlx4_en_update_rx_prod_db as suggested. >>>> >>>> Yes, I have recommended it to customer. >>>> Once I get the result, I will share it here. >>>>> All other calls to mlx4_en_update_rx_prod_db are in control/slow >>>>> path so I prefer being on the safe side, and care less about >>>>> bulking the barrier. >>>>> >>>>> Thanks, >>>>> Tariq >>>>> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at  http://vger.kernel.org/majordomo-info.html >>