Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp193340imj; Thu, 14 Feb 2019 18:23:05 -0800 (PST) X-Google-Smtp-Source: AHgI3IaqhSK9JyhLBA75qMM7hDC/ZFClypMU2xnjICrDoTvPcbwPn56WkjIA8KXdHPNDzUSEeKf2 X-Received: by 2002:a63:d50f:: with SMTP id c15mr6910554pgg.287.1550197385170; Thu, 14 Feb 2019 18:23:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550197385; cv=none; d=google.com; s=arc-20160816; b=D3mpDzcyjkZM48ZvAhEs0YE8HEYiVv891yeJb53zlxe6qNAHFYbiAMD9dKg3ps700N ldZwLJZw0TA1AbmYipRooqfdTy1lTa812wSoGo+bQNnyyPU3AJQt3AfQL82mWXLf/Hw4 Y6fF8cEMJ6nZ1z/v/PP/zv02W4B33tBqN+y9mdm4NAhU+ayeGlC48lXbLmtyQCVOVj69 olj5jpRBbtB9rDJ2FowlpywqvGGbtBy668K3uCzFdfJ9R883BRIZ86ZPvf/6a7ZnPFtq jq0EH3L2fVyOgkWcU2hE0QjHm2mtlEFPpatlk1bmgNVsVgwDDkYotSHkt33SA1OyeR0t h4qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=z+9zbb8RFe/yUhMkwO8O4v64fl479cQbUFQDaaeTxkI=; b=cyFWU8WhCvp70M6AZJ2R5kYyGVp8NXOn1xhymZ47zMgkK9c5IdU8IqWjz5zBghEKhc Ysbt6vwwMzuCXzPjbzTJv4S4COY0tNxqqVn+cswoyMfXFoq6HC4b7WUkG9rWhZJdzVoF cX2wnqIQR2ym7t1vTussoXlozFRlU6cTlbCMLd2wKBWMYXp8Agt2x6P/G9h9y/znh6sW zqkzkvVhmW0qDU0zTQcYh7ExNGcZjYl3AweYXWa2vZgXZHitxMagA9Z8l/2xkdX7EQRF I9ZFqYSD3yX4U3H2ubDPULrZRmf5V8Y+ejDbHCXa1snPdwMvE+cyfQb68qA5+be7IO9h JlGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=B80IEHWH; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t11si3799653pgp.209.2019.02.14.18.22.48; Thu, 14 Feb 2019 18:23:05 -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=@gmail.com header.s=20161025 header.b=B80IEHWH; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728453AbfBNXKk (ORCPT + 99 others); Thu, 14 Feb 2019 18:10:40 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:40954 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725975AbfBNXKk (ORCPT ); Thu, 14 Feb 2019 18:10:40 -0500 Received: by mail-wr1-f67.google.com with SMTP id q1so8352343wrp.7; Thu, 14 Feb 2019 15:10:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=z+9zbb8RFe/yUhMkwO8O4v64fl479cQbUFQDaaeTxkI=; b=B80IEHWH7Opk+JI5pSyBN4WBwwOYdiaWFl5lpRa56dKMWQrdo0SWI013F9SnWvp4RU a4xLPNKiVu07GJ1V7SYGutQTTXfzXuy7JpPMaCZ24/2Op1XfDcdkxZMRzHfbqAFjrFpw SklayuQMtbEtVR/7bOqkXTvN+qe9TiN5iOahznxESvMsLUm642K93wv2CyS9BvegFx3U OcRMfZEkQjDQChQB7YhbPScjb1bLjsnQwEK6iCk0M5fNlDU7nKcz6EAWOWf7Dfc/kvwJ C1wGcbVsMUIqUMzWqKgK8CRMX8WJzStgIy0HvBfie3isr4IJbfeSWGGtGaQnric/khNQ LrMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=z+9zbb8RFe/yUhMkwO8O4v64fl479cQbUFQDaaeTxkI=; b=a6k1QS0HdAwEUgF4W4WV93QntnIaDkUSjhaSYcd6YOxGb5FHZTmJG9uVjTtHMPeKwY 25pytrI68b+pjWuHmZTi2DkLsXMSv0Dh5RpQWc8VyLaF2B2lD2kJs7jJN+IHqI8hP4ba 4spKHbX7dVOpqAb5CzgQwIZnHayjyHRVLz3L51tCAIJ8wrSx9zZEADltRyPtq6MMiVUo uj9TN3epRLmQyyKWeoKdCaTF/8K2qwqBJoPapKlJe+BR4bil/uuScsOeVIXGpg4MY8UV N40vGWs6hD1utl4XHW8zj2KrT3vHwbOr6N3nCrZ51Rbil134qpLuLQtuhcrRO/iRYU03 yXwg== X-Gm-Message-State: AHQUAuZYlRINruZxmrkBujwfBz9FYfvtp0/yJPc8rE4FEx8fUk+8+Yn9 MOmY4yj7FCERahYT670Mrc6pwhuANPA= X-Received: by 2002:adf:e949:: with SMTP id m9mr4830622wrn.1.1550185838039; Thu, 14 Feb 2019 15:10:38 -0800 (PST) Received: from [10.32.107.126] ([80.227.69.14]) by smtp.gmail.com with ESMTPSA id o12sm10467992wre.0.2019.02.14.15.10.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Feb 2019 15:10:37 -0800 (PST) Subject: Re: [RFC PATCH v5 03/12] __wr_after_init: Core and default arch To: Peter Zijlstra Cc: Igor Stoppa , Andy Lutomirski , Nadav Amit , Matthew Wilcox , Kees Cook , Dave Hansen , Mimi Zohar , Thiago Jung Bauermann , Ahmed Soliman , linux-integrity@vger.kernel.org, kernel-hardening@lists.openwall.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20190214112849.GM32494@hirez.programming.kicks-ass.net> From: Igor Stoppa Message-ID: <6e9ec71c-ee75-9b1e-9ff8-a3210030e85d@gmail.com> Date: Fri, 15 Feb 2019 01:10:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <20190214112849.GM32494@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/02/2019 13:28, Peter Zijlstra wrote: > On Thu, Feb 14, 2019 at 12:41:32AM +0200, Igor Stoppa wrote: [...] >> +#define wr_rcu_assign_pointer(p, v) ({ \ >> + smp_mb(); \ >> + wr_assign(p, v); \ >> + p; \ >> +}) > > This requires that wr_memcpy() (through wr_assign) is single-copy-atomic > for native types. There is not a comment in sight that states this. Right, I kinda expected native-aligned <-> atomic, but it's not necessarily true. It should be confirmed when enabling write rare on a new architecture. I'll add the comment. > Also, is this true of x86/arm64 memcpy ? For x86_64: https://elixir.bootlin.com/linux/v5.0-rc6/source/arch/x86/include/asm/uaccess.h#L462 the mov"itype" part should deal with atomic copy of native, aligned types. For arm64: https://elixir.bootlin.com/linux/v5.0-rc6/source/arch/arm64/lib/copy_template.S#L110 .Ltiny15 deals with copying less than 16 bytes, which includes pointers. When the data is aligned, the copy of a pointer should be atomic. -- igor