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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7ABFC433FE for ; Fri, 8 Oct 2021 22:02:08 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3BE7260F22 for ; Fri, 8 Oct 2021 22:02:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3BE7260F22 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id A6DAC6B0071; Fri, 8 Oct 2021 18:02:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A1C9D6B0072; Fri, 8 Oct 2021 18:02:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E48D6B0073; Fri, 8 Oct 2021 18:02:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0189.hostedemail.com [216.40.44.189]) by kanga.kvack.org (Postfix) with ESMTP id 831726B0071 for ; Fri, 8 Oct 2021 18:02:07 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 2AAD4184793E9 for ; Fri, 8 Oct 2021 22:02:07 +0000 (UTC) X-FDA: 78674643894.21.F7D12B8 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by imf10.hostedemail.com (Postfix) with ESMTP id D0E976003AE6 for ; Fri, 8 Oct 2021 22:02:06 +0000 (UTC) Received: by mail-pg1-f179.google.com with SMTP id m21so4336637pgu.13 for ; Fri, 08 Oct 2021 15:02:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=5UinZ74z2CsW0OaciEdEsvBP6wq+BAWiOp/zdaLjDiM=; b=liQt8Za2zk8164J/xmfMTRki1RHTOwJISamrwRbtBNv8DxGUkZm/Sz7RIKF5aVRWlf JMim/U0BghDW9EQoQBxCjqiKCZDq2SYeSKF5HDdZ3xvkvSHnCXv348SV6xwGxnQrCPRz XzD3dQdekbfIsVUnEdP5wUKuHc7AZU3LmpmLNysu2J6xo+mHQNDJm1TIACcu0YmuNoxx 1OTDTH/qzGe5VivvK8567ITDkPGwYfsacT7M02gC4dLvN4vEOOt/yu9P4YIgCHUOPmU/ ImzKaOlsw0lQx0v/GylQmJx/bIPWwaYGUu4Y9C97qBqYvMa8rkAwSxSXikpa9+a1TU7L VqPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=5UinZ74z2CsW0OaciEdEsvBP6wq+BAWiOp/zdaLjDiM=; b=DR3mr2xqNKA/VHAiHPCThYwKQtHOisbRcQxwASt4YN4hh/LkJYOFWI8zap+uMpYIIz XZsLASKW1YJfl8CKGCHki+I2LM86SHP5z4618xeT+UIhpmCVNoIr4ih15Ca8NfSLwLCV K9He54tG/F0y/TPcU1pPTocSOl/IC8Zu/uSAguoyQwutmp2EUnlN+NSW5EdPUgHFkV8a 9LJKIla/f05wl1DEOJjA7GKJmBkQQjJ+Ka+tznQoUvo8ldkL9Y4QWPDMjc8Rs3umSHzr /hLj4HdMY28Iro2ZMGdGWy4ZzBRW9dIw9GtPpbrOJIh4oF91i1qvm1ISNsEi5xCAYpD0 vh5g== X-Gm-Message-State: AOAM532OhH5o1ORCFj1jU43ex6tWbXu8+vV8i1SF/orIKKhQ/4R3fzoP sbrIfj9pegD6nHIJm0Tz9UI= X-Google-Smtp-Source: ABdhPJznF1BpKNROhYqKyONHuIKHafj4QGG+1F9uQjac/PqWA/pc7iYoVRFpvJ8ylIL2nx8DAK6BQQ== X-Received: by 2002:a05:6a00:1307:b0:43d:2b4:419a with SMTP id j7-20020a056a00130700b0043d02b4419amr12492102pfu.62.1633730525508; Fri, 08 Oct 2021 15:02:05 -0700 (PDT) Received: from smtpclient.apple (c-24-6-216-183.hsd1.ca.comcast.net. [24.6.216.183]) by smtp.gmail.com with ESMTPSA id q18sm280605pfj.46.2021.10.08.15.02.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Oct 2021 15:02:04 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) Subject: Re: [PATCH] mm/userfaultfd: provide unmasked address on page-fault From: Nadav Amit In-Reply-To: Date: Fri, 8 Oct 2021 15:02:02 -0700 Cc: Andrew Morton , Peter Xu , LKML , Linux-MM , Andrea Arcangeli , Mike Rapoport , Jan Kara , stable@vger.kernel.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <20211007235055.469587-1-namit@vmware.com> To: David Hildenbrand X-Mailer: Apple Mail (2.3654.120.0.1.13) X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: D0E976003AE6 X-Stat-Signature: stad1gub6z1azu31t4scgtter1xekbpi Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=liQt8Za2; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of nadav.amit@gmail.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=nadav.amit@gmail.com X-HE-Tag: 1633730526-460939 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 Oct 8, 2021, at 1:05 AM, David Hildenbrand = wrote: >=20 > On 08.10.21 01:50, Nadav Amit wrote: >> From: Nadav Amit >> Userfaultfd is supposed to provide the full address (i.e., unmasked) = of >> the faulting access back to userspace. However, that is not the case = for >> quite some time. >> Even running "userfaultfd_demo" from the userfaultfd man page = provides >> the wrong output (and contradicts the man page). Notice that >> "UFFD_EVENT_PAGEFAULT event" shows the masked address. >> Address returned by mmap() =3D 0x7fc5e30b3000 >> fault_handler_thread(): >> poll() returns: nready =3D 1; POLLIN =3D 1; POLLERR =3D 0 >> UFFD_EVENT_PAGEFAULT event: flags =3D 0; address =3D = 7fc5e30b3000 >> (uffdio_copy.copy returned 4096) >> Read address 0x7fc5e30b300f in main(): A >> Read address 0x7fc5e30b340f in main(): A >> Read address 0x7fc5e30b380f in main(): A >> Read address 0x7fc5e30b3c0f in main(): A >> Add a new "real_address" field to vmf to hold the unmasked address. = It >> is possible to keep the unmasked address in the existing address = field >> (and mask whenever necessary) instead, but this is likely to cause >> backporting problems of this patch. >=20 > Can we be sure that no existing users will rely on this behavior that = has been the case since end of 2016 IIRC, one year after UFFD was = upstreamed? Let me to blow off your mind: how do you be sure that the current = behavior does not make applications to misbehave? It might cause = performance issues as it did for me or hidden correctness issues. > I do wonder what the official ABI nowadays is, because man pages = aren't necessarily the source of truth. Documentation/admin-guide/mm/userfaultfd.rst says: "You get the address = of the access that triggered the missing page event=E2=80=9D. So it is a bug.