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,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 58048C5DF64 for ; Wed, 6 Nov 2019 11:43:30 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 14D482077C for ; Wed, 6 Nov 2019 11:43:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="AMoMgDms" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14D482077C 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 9F1BD6B0007; Wed, 6 Nov 2019 06:43:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9A2346B0008; Wed, 6 Nov 2019 06:43:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 890C76B000A; Wed, 6 Nov 2019 06:43:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0176.hostedemail.com [216.40.44.176]) by kanga.kvack.org (Postfix) with ESMTP id 74C976B0007 for ; Wed, 6 Nov 2019 06:43:29 -0500 (EST) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with SMTP id 3C8AC499604 for ; Wed, 6 Nov 2019 11:43:29 +0000 (UTC) X-FDA: 76125667338.16.flock56_588c400d3243a X-HE-Tag: flock56_588c400d3243a X-Filterd-Recvd-Size: 5551 Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by imf22.hostedemail.com (Postfix) with ESMTP for ; Wed, 6 Nov 2019 11:43:28 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id e6so23512754wrw.1 for ; Wed, 06 Nov 2019 03:43:28 -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=oviSo2vQyP5WNzHBrALh8PHN1O89oBQ3lHXp2iVwkx4=; b=AMoMgDms0Vqzbibr4AMLNyeU9fMcN8OSko8dig82pp7sY7ww9a/WcijppXgF87ju0Q vUqTn1kH9p0JNPRCnWd9514KhfradTel71ozWGH4oP+mhnA/pTOgns31r51suo5QcaQk CYxNXgOnWIWFT4jJWV7ZVoOV4Lz0owVUlNWLrtC5A9XkCu1VTggBWsSry6vf06aFseF3 Y7+wPSvCU34VYn9Sx0Ih04vg8aGDgNn78Wh5dYJG1GIL73pNbm7SekI4lfBQTFlqkb0C /0TL2eZcNca1QiFQTLptlCdecWeLwGhEXnPglChIHtZbSOB+S9TDOUIGURYu51IP7zZ6 By6Q== 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=oviSo2vQyP5WNzHBrALh8PHN1O89oBQ3lHXp2iVwkx4=; b=bqT4zXV9kkkmT0zPRSaxZ4AOhGEpT/eJUHOxrGswTuXsbcBNkeV6iNga37z4F2KNHh 8iU3pqiH8m8NnpZld72FV1L8AqKK2uXjjecAWO4Ea0vk7vns+nZN+WKQF5qvIXhaN1TE iH3zFSFpWp2rzQmvrgCpQRRy37RovwYzemGafHfateRPjNbudiM5w1crY/ANHidvqJ+Q M1IqW+bYpTTc1Z81/OZG4bZlEm/qi3iomOAYPgw8jzax+dQlTDz4NzyeFHy9lHk6spOS pHwQhsY4H7YCKCWa9r+SK7AjtCvjk/zSAhaWiCrDjSHMhO2PKmDSdezQZpdyB52i6qAc 9G1g== X-Gm-Message-State: APjAAAVT+5y9Q5SmW1vMH2zj8zS+/4iPBzoWoQOhX3ROHmfxVniKneF+ 26cWBpGUJGqlqNVFh68xrR1CgZdJ47HloN6IzXHsiQ== X-Google-Smtp-Source: APXvYqyCEh8ZY+xW3HPXHpfj+op1h1SgQ9mgzGn9uJeMaJODEZOJrKoLeX+/vJHH9EhYfV70VaR1D0My/dIzW6rmy8M= X-Received: by 2002:a05:6000:18c:: with SMTP id p12mr331600wrx.154.1573040606631; Wed, 06 Nov 2019 03:43:26 -0800 (PST) MIME-Version: 1.0 References: <20191030142237.249532-1-glider@google.com> <20191030142237.249532-3-glider@google.com> <20191101055033.GA226263@google.com> In-Reply-To: <20191101055033.GA226263@google.com> From: Alexander Potapenko Date: Wed, 6 Nov 2019 12:43:15 +0100 Message-ID: Subject: Re: [PATCH RFC v2 02/25] stackdepot: prevent Clang from optimizing away stackdepot_memcmp() To: Sergey Senozhatsky Cc: Vegard Nossum , Dmitry Vyukov , Linux Memory Management List , Al Viro , Andrew Morton , Andrey Ryabinin , Andy Lutomirski , Ard Biesheuvel , Arnd Bergmann , 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 Fri, Nov 1, 2019 at 6:50 AM Sergey Senozhatsky wrote: > > On (19/10/30 15:22), glider@google.com wrote: > > Clang may replace stackdepot_memcmp() with a call to instrumented bcmp(= ), > > which is exactly what we wanted to avoid creating stackdepot_memcmp(). > > Add a compiler barrier() to prevent optimizations. > > [..] > > > @@ -163,6 +163,11 @@ int stackdepot_memcmp(const unsigned long *u1, con= st unsigned long *u2, > > unsigned int n) > > { > > for ( ; n-- ; u1++, u2++) { > > + /* > > + * Prevent Clang from replacing this function with a bcmp= () > > + * call. > > + */ > > + barrier(); > > if (*u1 !=3D *u2) > > return 1; > > } > > Would 'volatile' do the trick? It does. I can replace the barrier with a volatile if you think that's bett= er. However this'll add a checkpatch warning, as volatiles are discouraged for synchronization (although in this case there's no synchronization) > > -ss --=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