From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.4 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE835C5DF60 for ; Thu, 7 Nov 2019 09:43:49 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 767F5214D8 for ; Thu, 7 Nov 2019 09:43:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="KvIf+LL5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 767F5214D8 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 091E76B0007; Thu, 7 Nov 2019 04:43:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 01B2A6B0008; Thu, 7 Nov 2019 04:43:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E24B06B000A; Thu, 7 Nov 2019 04:43:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0005.hostedemail.com [216.40.44.5]) by kanga.kvack.org (Postfix) with ESMTP id C9C196B0007 for ; Thu, 7 Nov 2019 04:43:48 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with SMTP id 911E18249980 for ; Thu, 7 Nov 2019 09:43:48 +0000 (UTC) X-FDA: 76128994536.07.key29_78818b7424f0c X-HE-Tag: key29_78818b7424f0c X-Filterd-Recvd-Size: 6309 Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by imf10.hostedemail.com (Postfix) with ESMTP for ; Thu, 7 Nov 2019 09:43:47 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id a17so3649856wmb.0 for ; Thu, 07 Nov 2019 01:43:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=9GtSKNSuvNfZX21EIMFoBS8i9wtVzdkZdMmG3LHz2DY=; b=KvIf+LL5E4twR06OmUm9FCbRW9C/9Tm118cE+Y9gbIJR0j07l4fB8fguHlOHmGGu7X J/DPMvb0eW55ZUcMtU7VHh2smpJ2S8MQ2kKny9+gj66lav5vCb1hn/HZpzVmXfxgVfUQ t5Sv1ht0BMt/yE7IEyLOuMZ43dRh9b19ooMQaXfRbw8PUUGBsED/FqDbzoqBXOacjQ4r dk6cZBQjtT2QW91Nmm2rJ+jXRc/583GPXhYv3velbS0/eQdVC+wXx3Gxlv6rtm14TaCM kYEPh/TxTQQoToCPmPlF4OnSlyLm6DQlu5zMRwPn3PPxhZ4QfR9Nlns1j+sRI7DHMiLJ GMSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=9GtSKNSuvNfZX21EIMFoBS8i9wtVzdkZdMmG3LHz2DY=; b=duc9KZYcbgw+gkFbQqYcmUklVDX4WWn4S8z9cPkDndHcv1pQrLqtKGmSN3ALZAvhBD osiPRwKwlnZek2Bg/BjQxAGgVzZGmb3mlXLAESfW3lC4kMzzPgSrQ+qu3FRE+bGZdspm xA7U25ZFFrnPxwn9KDE0/j3gSr0M5sZQwYUyZD9D3D/p5jOVcg9ECZeQCkFQ8QZLwbQl PubnT3dxI8Iq6J3RIpMynb7HAeiN/zBieKXpQtTLUGGIWIyiBZfydWG+IcdOumeu1gBE c8BDoa1qt/ELWqiFUOdQ+dd0Ou//tdm0Lt+5DPofwJlcnKItXAjyxIOn8IIN9eirztPH R+nQ== X-Gm-Message-State: APjAAAXt3fgGBndaRVf+ZouQJ1eN7tmpeSCQebkjDU/ApIF9LPBvLuwG 0CAC7bUz46KYcwYN4A/vt9tgLSR0mnXnUhCsKs+zog== X-Google-Smtp-Source: APXvYqygPJ84XNT1BNSo0ZivqgixaVNB3xUjfEM+0N2fwUyH8wNQyrKdoLrNgAs1xYlEDtEE5oMogRJYHWtcgKB4pKw= X-Received: by 2002:a7b:c341:: with SMTP id l1mr1886178wmj.140.1573119826269; Thu, 07 Nov 2019 01:43:46 -0800 (PST) MIME-Version: 1.0 References: <20191030142237.249532-1-glider@google.com> <20191030142237.249532-3-glider@google.com> <20191101055033.GA226263@google.com> <20191107060816.GA93084@google.com> In-Reply-To: From: Alexander Potapenko Date: Thu, 7 Nov 2019 10:43:34 +0100 Message-ID: Subject: Re: [PATCH RFC v2 02/25] stackdepot: prevent Clang from optimizing away stackdepot_memcmp() To: Arnd Bergmann Cc: Sergey Senozhatsky , Vegard Nossum , Dmitry Vyukov , Linux Memory Management List , Al Viro , Andrew Morton , Andrey Ryabinin , Andy Lutomirski , Ard Biesheuvel , Christoph Hellwig , Dmitry Torokhov , Eric Dumazet , Eric Van Hensbergen , Greg Kroah-Hartman , Harry Wentland , Herbert Xu , Ingo Molnar , Jens Axboe , "Martin K . Petersen" , Martin Schwidefsky , "Michael S. Tsirkin" , Michal Simek , Petr Mladek , Sergey Senozhatsky , Steven Rostedt , Takashi Iwai , "Theodore Ts'o" , Thomas Gleixner , Wolfram Sang , Vasily Gorbik , Ilya Leoshkevich , Mark Rutland , Matthew Wilcox , Randy Dunlap , Andrey Konovalov , Marco Elver Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, Nov 7, 2019 at 10:29 AM Arnd Bergmann wrote: > > On Thu, Nov 7, 2019 at 10:22 AM Alexander Potapenko w= rote: > > On Thu, Nov 7, 2019 at 10:04 AM Arnd Bergmann wrote: > > > On Thu, Nov 7, 2019 at 7:08 AM Sergey Senozhatsky > > > wrote: > > > > > > > > Yeah, 'volatile' in this case will do what it sort of meant to do -= prevent > > > > compiler optimizations. So, like you said, it's not a synchronizati= on issue > > > > and we don't 'volatile' data structures. > > > > > > The normal way to do a volatile access would be > > > READ_ONCE()/WRITE_ONCE(), but that seems stronger than > > > the barrier() here. I'd just stick to adding a barrier. > > I actually like the READ_ONCE idea more, as READ_ONCE is really a > > documented way to prevent the compiler from merging reads, which is > > what we want here. > > Fair enough. > > > I also thought that the original barrier() statement was just a > > compiler barrier, which didn't introduce any additional CPU > > instructions. > > Turns out I was wrong, and barrier() also serves as a memory barrier. > > The definition of barrier is > > #define barrier() __asm__ __volatile__("": : :"memory") > > which is no actual barrier instruction but is a full barrier to the compi= ler. And you're right again, shame on me and my reading skills. > Only for the Intel ecc compiler it is defined as an intrinsic that I don'= t > know. > Arnd --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg