Received: by 10.223.176.46 with SMTP id f43csp2443780wra; Thu, 25 Jan 2018 09:56:32 -0800 (PST) X-Google-Smtp-Source: AH8x227QdvkxomnvaZj3uzmw7ZOy3iIn30lQle3gVlMlWAq90zUSokyVCZptWm2ULi9KV7clDkkc X-Received: by 10.101.82.1 with SMTP id o1mr13521470pgp.259.1516902992458; Thu, 25 Jan 2018 09:56:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516902992; cv=none; d=google.com; s=arc-20160816; b=bQFOkPV95EfQcB5zoHqGlZZ1xy3ocQOSCL1gU80h/k0bMMpXjmypsnoLEPqYOXJ2IO pkBxm+VQqX87H9C/S0JvqRaPfWiVJmIav7YNDtqpYiIJMAUoV4O+dzaD3mvh7ukfS1G2 hATJ0EYI7AwCiYJ8R04Bfy42SX6Hz/e3lTFCu408vJgtsOrc8UqCkhY1kWwpMBboKPT6 h8+TL+EoxMOTIJYs+E8cumB5xBmRDfq1o/awR0brqKa9f4hCmBybSfImqcf6CNgshBeY 48Iqv/SJodT5deoOb/4UpxsfhCm4N9n67yfBqx2NXDSbE/w7lyAIGooJg1Yc46UH/raR YPOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=UOdMo+oj041Z2DSUa2iN3zg+Nj84ICe7Cii/ZoHjO1g=; b=lmZfflCvDE5Blh+CkiM3Rz3ZAhqV4pK0WFTv6BCNIPBMwG4KLRBBor7Z5Hs0J/Gk54 txnmvx05oTWSk5X8Xjmk/iE7a2xxWyWrivAkun+/fTUw4lNeE6XxNiU5YpQyqbasQuIV WpAsH2J48hN9iJOgTeLAko0Xap0txVH3/FE42RPFXGPHcJmT6uOgrk8z06QRI/e1a4QT TF1a1PqrA1CXpRvE1Jis/BpGqF5sgnJ+0K+gN32rQgHso7SuTzNkQNLsSLNZ8nvLlZ+3 LF4gWlgX91W/mhJd+0ziimU+ioQ2bVsx/B5njKGopNnpGf/birmEvklAVAlumqVg5qnK 3W7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=MWj5i7V+; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j10si4921598pfk.351.2018.01.25.09.56.17; Thu, 25 Jan 2018 09:56:32 -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=fail header.i=@gmail.com header.s=20161025 header.b=MWj5i7V+; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751284AbeAYRzD (ORCPT + 99 others); Thu, 25 Jan 2018 12:55:03 -0500 Received: from mail-io0-f178.google.com ([209.85.223.178]:34674 "EHLO mail-io0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751106AbeAYRzB (ORCPT ); Thu, 25 Jan 2018 12:55:01 -0500 Received: by mail-io0-f178.google.com with SMTP id c17so9521622iod.1; Thu, 25 Jan 2018 09:55:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=UOdMo+oj041Z2DSUa2iN3zg+Nj84ICe7Cii/ZoHjO1g=; b=MWj5i7V+Jmp7sBgkCGnFmf0UCLbmt16NYz7cmiVR7kXhNy6bAy7gUfJqJpzYOB2N9T y1pu1dp+AOua7CbcEYn08GhbnplXMOHQ6LI56fH4l9097+gNKGaB5HH/tFWSXLb5ME0e 5TlOKoRfPPY6fFZSLdjwGLZbE+5jRSEK7iMRhALqmIP9RQF+S/4g1ENNbLICesNH6cXO rGeQb0ydN9O1PZLfqKadn0Jugi/1fpHQzZZrrugSynVgTNVMXLQ04c8TL8dDqq16FNj4 GFiNCceMBOTVAw+IHvQK23gWpcNQ9sWeR0FWGZEHgKQqHC++xaj7ZU7C8XMQtv0C8ahR ASIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=UOdMo+oj041Z2DSUa2iN3zg+Nj84ICe7Cii/ZoHjO1g=; b=Ze6d706pJ7XgWVcmKgx10dnxIsFWVmskTHovsiR20DkdbIorjGSCEMpJP35B7GAJXm +wf+fjAOTj2WByyn442vsGx69YT8XxmRGS/jgvB9mDRtoc7oHbolw2/WQ5R2n1iDVslJ WvByGps/LzUoOHv26TABblFdDp1PIKnAz6QtvESzf2PLquWEs/FycdusgHlpSiJkBSfd 55f5hz8f6tfO/ffTd+kYWpt3+gDwk9bXCRTahFcSjOs2Vy0vIr8PSpxEdHR0UW8KFjGI rF5waZlHIPbCf/zH3OleM7mXzuI7tohIQ4AEeMq/+in/dxeKiVn73yIGsVRzJnVVa346 mWuQ== X-Gm-Message-State: AKwxytc65U9sZUd/jQJMJsiHmnxcXM0BEiWzOY5YdcPMfMFMcYFEh9mT 0IeOPxR6UkxbqB6h1IsykbCmoroi7S6NTJYTUw8= X-Received: by 10.107.81.20 with SMTP id f20mr13880213iob.174.1516902901072; Thu, 25 Jan 2018 09:55:01 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.59.196 with HTTP; Thu, 25 Jan 2018 09:55:00 -0800 (PST) In-Reply-To: References: <20180109163745.3692-1-aryabinin@virtuozzo.com> <50fcfba8-fc16-b4a1-d117-24ebbe959c0c@virtuozzo.com> From: Linus Torvalds Date: Thu, 25 Jan 2018 09:55:00 -0800 X-Google-Sender-Auth: ycn8tesyFqAjDFzZ3EkhIWfEhhU Message-ID: Subject: Re: [PATCH] lib/strscpy: remove word-at-a-time optimization. To: Dmitry Vyukov Cc: Rasmus Villemoes , Andrey Ryabinin , Andrew Morton , Linux Kernel Mailing List , Kees Cook , Eryu Guan , Alexander Potapenko , Chris Metcalf , David Laight , stable , kasan-dev Content-Type: multipart/mixed; boundary="089e0825e99893f17d05639d7ab6" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --089e0825e99893f17d05639d7ab6 Content-Type: text/plain; charset="UTF-8" On Thu, Jan 25, 2018 at 12:32 AM, Dmitry Vyukov wrote: > On Wed, Jan 24, 2018 at 6:52 PM, Linus Torvalds > wrote: >> >> So I'd *much* rather have some way to tell KASAN that word-at-a-time >> is going on. Because that approach definitely makes a difference in >> other places. > > The other option was to use READ_ONCE_NOCHECK(). How about just using the same accessor that we do for the dcache case. That gives a reasonable example of the whole word-at-a-time model, and should be good. COMPLETELY UNTESTED patch attached. This needs to be verified. It does limit the word-at-a-time code to the architectures that select both HAVE_EFFICIENT_UNALIGNED_ACCESS and DCACHE_WORD_ACCESS, but that seems a reasonable choice anyway. Linus --089e0825e99893f17d05639d7ab6 Content-Type: text/plain; charset="US-ASCII"; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jcustioq0 IGxpYi9zdHJpbmcuYyB8IDI4ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp Yi9zdHJpbmcuYyBiL2xpYi9zdHJpbmcuYwppbmRleCA2NGE5ZTMzZjFkYWEuLjI1YTNjMjAwMzA3 ZSAxMDA2NDQKLS0tIGEvbGliL3N0cmluZy5jCisrKyBiL2xpYi9zdHJpbmcuYwpAQCAtMTc3LDMz ICsxNzcsMTggQEAgRVhQT1JUX1NZTUJPTChzdHJsY3B5KTsKICAqLwogc3NpemVfdCBzdHJzY3B5 KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGNvdW50KQogewotCWNvbnN0IHN0 cnVjdCB3b3JkX2F0X2FfdGltZSBjb25zdGFudHMgPSBXT1JEX0FUX0FfVElNRV9DT05TVEFOVFM7 Ci0Jc2l6ZV90IG1heCA9IGNvdW50OwogCWxvbmcgcmVzID0gMDsKIAogCWlmIChjb3VudCA9PSAw KQogCQlyZXR1cm4gLUUyQklHOwogCi0jaWZkZWYgQ09ORklHX0hBVkVfRUZGSUNJRU5UX1VOQUxJ R05FRF9BQ0NFU1MKLQkvKgotCSAqIElmIHNyYyBpcyB1bmFsaWduZWQsIGRvbid0IGNyb3NzIGEg cGFnZSBib3VuZGFyeSwKLQkgKiBzaW5jZSB3ZSBkb24ndCBrbm93IGlmIHRoZSBuZXh0IHBhZ2Ug aXMgbWFwcGVkLgotCSAqLwotCWlmICgobG9uZylzcmMgJiAoc2l6ZW9mKGxvbmcpIC0gMSkpIHsK LQkJc2l6ZV90IGxpbWl0ID0gUEFHRV9TSVpFIC0gKChsb25nKXNyYyAmIChQQUdFX1NJWkUgLSAx KSk7Ci0JCWlmIChsaW1pdCA8IG1heCkKLQkJCW1heCA9IGxpbWl0OwotCX0KLSNlbHNlCi0JLyog SWYgc3JjIG9yIGRlc3QgaXMgdW5hbGlnbmVkLCBkb24ndCBkbyB3b3JkLWF0LWEtdGltZS4gKi8K LQlpZiAoKChsb25nKSBkZXN0IHwgKGxvbmcpIHNyYykgJiAoc2l6ZW9mKGxvbmcpIC0gMSkpCi0J CW1heCA9IDA7Ci0jZW5kaWYKLQotCXdoaWxlIChtYXggPj0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcp KSB7CisjaWYgQ09ORklHX0hBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1MgJiYgQ09ORklH X0RDQUNIRV9XT1JEX0FDQ0VTUworeworCWNvbnN0IHN0cnVjdCB3b3JkX2F0X2FfdGltZSBjb25z dGFudHMgPSBXT1JEX0FUX0FfVElNRV9DT05TVEFOVFM7CisJd2hpbGUgKGNvdW50ID49IHNpemVv Zih1bnNpZ25lZCBsb25nKSkgewogCQl1bnNpZ25lZCBsb25nIGMsIGRhdGE7CiAKLQkJYyA9ICoo dW5zaWduZWQgbG9uZyAqKShzcmMrcmVzKTsKKwkJYyA9IGxvYWRfdW5hbGlnbmVkX3plcm9wYWQo c3JjK3Jlcyk7CiAJCWlmIChoYXNfemVybyhjLCAmZGF0YSwgJmNvbnN0YW50cykpIHsKIAkJCWRh dGEgPSBwcmVwX3plcm9fbWFzayhjLCBkYXRhLCAmY29uc3RhbnRzKTsKIAkJCWRhdGEgPSBjcmVh dGVfemVyb19tYXNrKGRhdGEpOwpAQCAtMjEzLDggKzE5OCw5IEBAIHNzaXplX3Qgc3Ryc2NweShj aGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBjb3VudCkKIAkJKih1bnNpZ25lZCBs b25nICopKGRlc3QrcmVzKSA9IGM7CiAJCXJlcyArPSBzaXplb2YodW5zaWduZWQgbG9uZyk7CiAJ CWNvdW50IC09IHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQkJbWF4IC09IHNpemVvZih1bnNpZ25l ZCBsb25nKTsKIAl9Cit9CisjZW5kaWYKIAogCXdoaWxlIChjb3VudCkgewogCQljaGFyIGM7Cg== --089e0825e99893f17d05639d7ab6--