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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7154BC43334 for ; Mon, 20 Jun 2022 15:21:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D136A8E0001; Mon, 20 Jun 2022 11:21:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CC3A36B0073; Mon, 20 Jun 2022 11:21:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B8C2B8E0001; Mon, 20 Jun 2022 11:21:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A64D46B0071 for ; Mon, 20 Jun 2022 11:21:58 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 7B5CE60196 for ; Mon, 20 Jun 2022 15:21:58 +0000 (UTC) X-FDA: 79598979516.30.9668A03 Received: from eu-smtp-delivery-151.mimecast.com (eu-smtp-delivery-151.mimecast.com [185.58.86.151]) by imf15.hostedemail.com (Postfix) with ESMTP id D23F3A0097 for ; Mon, 20 Jun 2022 15:21:57 +0000 (UTC) Received: from AcuMS.aculab.com (156.67.243.121 [156.67.243.121]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id uk-mta-265-iuU6fljHOQqCeFZLSZgSgA-1; Mon, 20 Jun 2022 16:21:53 +0100 X-MC-Unique: iuU6fljHOQqCeFZLSZgSgA-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) by AcuMS.aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) with Microsoft SMTP Server (TLS) id 15.0.1497.36; Mon, 20 Jun 2022 16:21:51 +0100 Received: from AcuMS.Aculab.com ([fe80::994c:f5c2:35d6:9b65]) by AcuMS.aculab.com ([fe80::994c:f5c2:35d6:9b65%12]) with mapi id 15.00.1497.036; Mon, 20 Jun 2022 16:21:51 +0100 From: David Laight To: 'Kent Overstreet' CC: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "pmladek@suse.com" , "rostedt@goodmis.org" , "enozhatsky@chromium.org" , "linux@rasmusvillemoes.dk" , "willy@infradead.org" Subject: RE: [PATCH v4 00/34] Printbufs - new data structure for building strings Thread-Topic: [PATCH v4 00/34] Printbufs - new data structure for building strings Thread-Index: AQHYhD6oUJ9HZdIC7US1XHhH4yp3Qa1XsEIggAClXQCAABGg4A== Date: Mon, 20 Jun 2022 15:21:50 +0000 Message-ID: References: <20220620004233.3805-1-kent.overstreet@gmail.com> <0a5901f8460f452a89c9b0cda32fb833@AcuMS.aculab.com> <20220620150514.3tjy5dv7pv5frcwd@moria.home.lan> In-Reply-To: <20220620150514.3tjy5dv7pv5frcwd@moria.home.lan> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655738518; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=l9V+tP67ndhZxslziyCSQoRBDL60Yq4tkpJeHrfyinY=; b=B03k9K5cE/CTXC/syqpYFV2FPHjNt5R3dPAOANlC2OKXv1YkT8SA6+bsWrpLosnyUs+5PG gzeuyToB01gAyMM6rLPAAd/n+QYZhkKblby16393bF+HBKB4Bok6/kIM/29WjC4oCM6aO8 eXI/cNIrgdjatOCC2J4zsQWYbSnmjrA= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of david.laight@aculab.com designates 185.58.86.151 as permitted sender) smtp.mailfrom=david.laight@aculab.com; dmarc=pass (policy=none) header.from=aculab.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1655738518; a=rsa-sha256; cv=none; b=eU9hSQhpj8zXvJhRAKRbzI3w8Oe2S8WxshqrSTtd4AMbo0vKaCddknW4VhU50BlxW6P4Ux K54I6QGk+aKzDs3DG7dO1LWq+yMJAt470cBeMga6PvwKcLg3Wx/4j+Nd0DpOoljsRgm1jQ efmJosOkn9jcV76kFjAJolaVnqwh/ZI= X-Stat-Signature: ubdyyt7ox4815n3wcxqz1fb4cdoytou1 X-Rspamd-Queue-Id: D23F3A0097 X-Rspamd-Server: rspam11 X-Rspam-User: Authentication-Results: imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of david.laight@aculab.com designates 185.58.86.151 as permitted sender) smtp.mailfrom=david.laight@aculab.com; dmarc=pass (policy=none) header.from=aculab.com X-HE-Tag: 1655738517-94084 X-Bogosity: Ham, tests=bogofilter, spamicity=0.002985, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Kent Overstreet > Sent: 20 June 2022 16:07 > On Mon, Jun 20, 2022 at 04:19:31AM +0000, David Laight wrote: > > From: Kent Overstreet > > > Rasmus pointed out that -fno-strict-aliasing is going to cause gcc = to generate > > > nasty code, and indeed it unfortunately does but according to worst= case > > > scenario microbenchmarks it's not a problem for actual performance. > > > > Just copy some of the structure members to local variables > > and, if necessary, write them back at the end. >=20 > You must not have read any of the code - half the point of this patch ser= ies is > implementing proper helpers for printing chars, strings of bytes, etc. an= d that > doesn't work if we're not using actual types. I'm talking about things like: =09out->buf[out->pos] =3D c; (or whatever the field names are.) Even without strict aliasing the compiler has to reread 'buf' and 'pos' every iteration. Of course, you might find the compiler decides to 'optimise' the loop to memcpy() or memset(). =09David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1= PT, UK Registration No: 1397386 (Wales)