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 CD0F1C369C2 for ; Fri, 25 Apr 2025 15:45:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0643B6B0008; Fri, 25 Apr 2025 11:45:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 013196B000A; Fri, 25 Apr 2025 11:45:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1D9A6B000C; Fri, 25 Apr 2025 11:45:56 -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 C3A056B0008 for ; Fri, 25 Apr 2025 11:45:56 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id C43461A1ADC for ; Fri, 25 Apr 2025 15:45:57 +0000 (UTC) X-FDA: 83372991954.05.708EA18 Received: from mail-yb1-f172.google.com (mail-yb1-f172.google.com [209.85.219.172]) by imf26.hostedemail.com (Postfix) with ESMTP id C6C6B14000C for ; Fri, 25 Apr 2025 15:45:55 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=d53aWbhP; spf=pass (imf26.hostedemail.com: domain of jthoughton@google.com designates 209.85.219.172 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745595955; 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:dkim-signature; bh=UcVXa79p/StEb9QjjiKNIb9MucE2Oi4X5Dp4SmHc44s=; b=I/8J/HwMNDAWDzRkVM3zZ4lBrBlwHuZO+lspLk4UFaIuqihqPyxiny3pE/RP4MyCJgIgg/ yEdOjd5CqZkTMxodp/fNUFMsBspaPxCLdF4rJap/yMfY58ExsecN/M2TWFIPoUQ4vSYvbZ J0snPxojtYPwU8+YwkCXAZIpTR/l/+Y= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=d53aWbhP; spf=pass (imf26.hostedemail.com: domain of jthoughton@google.com designates 209.85.219.172 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745595955; a=rsa-sha256; cv=none; b=XnWXumvYi3Ds6ni40XdBhDfTTmNkq91+GbdCFRMlCqhflkZXRA2Gt7VkPBl3fbrQiOeE1o wBbaBAmDZ0oyDVC8D9J5WMf4TfuSpsRNT94FOIPreW3gcbTu+bYlpGUKntIYj0oW/heTBZ wMj+WVNu1o8n8TPRD0ztS8BuF9zoZ6Q= Received: by mail-yb1-f172.google.com with SMTP id 3f1490d57ef6-e5372a2fbddso2177501276.3 for ; Fri, 25 Apr 2025 08:45:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1745595955; x=1746200755; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UcVXa79p/StEb9QjjiKNIb9MucE2Oi4X5Dp4SmHc44s=; b=d53aWbhP6sT+BFlhUyG3xf6bZt9Hn8V4OdVKIJZl+iCtiS7BeYIH+O8JvsI1Bm43LG WZCL0U6E5T7G5e8sn6zGOqYStEzla+k6WTY3nXnotLh+6uXX2UqbuYZ5RJspwXoNQky9 XejyslKTRrohy/RJNeFJ9yfNa6OVKUC031G5QT7xRLUgYhCyxTIGm23ggu1Ei7MYN+sK ONaoOXZGTrG+ockQfjvQ5GobdKU7zgSvskIQ8wIDWSdUJLucvoIs8TBG7HzL46wpL3oT MhKYiuZl0/xDmCWiiVyvYNSFjvq4wlWtZCCnu4wPkpksHEgV8kOTJBOqZlc9VHGJ+u+A thLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745595955; x=1746200755; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UcVXa79p/StEb9QjjiKNIb9MucE2Oi4X5Dp4SmHc44s=; b=TYdEUVxbHIHkP8SWrJ+nhvyIOylsX/w7y+TjS1/cOUhHrhsAOztkk1fLE9vsOT80C9 2B144co1Y3QT61I0cvxf/v4ajNxvT5TtQLFTRKj7XR1IJhapCF7PPPuqYW3ybB0/E+RI azZ/w1LKY/SVFQRdLJUU7P0wOEDloLp10BXfE1dN8dL6Tu9/o+v9OEDrx4MNeybd9xoG cbaC8N2HbrZu1l4Gx1bg9sQ45TFf7sGZdbw2m8j+fcOJ9qz5rZYzscGbksHKoIPWTMfE 5zsqqy0Zp1MvY9DVzMsZHUqSkrxuKzhKzjSAukI8YF9Fib8fk16KiHnz0XqsxRUosx3c 65jQ== X-Forwarded-Encrypted: i=1; AJvYcCUVp/4HwcJCo+ZX0eutQ5zQQ3zKDjDm/t+MjTtpkrw3uL4ROQDC0YwSOLjpBnyPjp7XPgxuQoTlsQ==@kvack.org X-Gm-Message-State: AOJu0Yx944Qk+l8Lmjjflw4V6RRl6sdSLE4FN7M1/QkLgk/MUuZEb3De ++ghN3CB6faFaMTRs3bhuaoKJhakhnvU0Mgf3NllizeWTVQ73BtvCOf+B8asKMY3/aAKGa6jIU8 GQVe3ho5b04D8MuEvD9IawxryxDwE1YLGu3SE X-Gm-Gg: ASbGncsJ56XqAcmgLRu6Y0p5U5d1q2poKL2SczDXeqEytgu4USLtQYpgFxMYp8NfO66 4lE21MXqrJnynrlQMfi+eUuJJ35XiFg5jAwZ6ODBNYCGaIGd3mJZbBocc/MdeWdR+WhEysU6wez EQsNueVCGYC0zA6oOn3/oX8giYXa21xYzi86JoTvJVX/lPj2PbKC7b0rEP X-Google-Smtp-Source: AGHT+IGiFCE5HRHaIs4HQySIeYeaYqYZIhLZDeaQNAZvWV/mDvPqNvHZgZEOyOL6Xzk9926d8I7P4aHPW7KbhD0oyxQ= X-Received: by 2002:a05:6902:158f:b0:e65:91f3:fbdd with SMTP id 3f1490d57ef6-e73165dfe37mr3907829276.22.1745595952069; Fri, 25 Apr 2025 08:45:52 -0700 (PDT) MIME-Version: 1.0 References: <20250424215729.194656-1-peterx@redhat.com> In-Reply-To: <20250424215729.194656-1-peterx@redhat.com> From: James Houghton Date: Fri, 25 Apr 2025 11:45:15 -0400 X-Gm-Features: ATxdqUHU5hoqlwTzQ_qmlUIKG4ZDnT7wrpJniV6HzDlaRGxn2KpZxvWOB3QSl6A Message-ID: Subject: Re: [PATCH 0/2] mm/userfaultfd: Fix uninitialized output field for -EAGAIN race To: Peter Xu Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mike Rapoport , David Hildenbrand , Suren Baghdasaryan , Axel Rasmussen , Andrew Morton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: a4ibny63cwwwkpu38jy3z7ojiiayuasc X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: C6C6B14000C X-Rspam-User: X-HE-Tag: 1745595955-913353 X-HE-Meta: U2FsdGVkX18DSOLp87s9pO3B29CnFhtk/d39EkEjxZkRkWIsIjJFjgo7n/cbBpI7QhghxGyCIJgDiqXuuWHrdLwv5NqRi3oqR62g8y4FCsX5l9JZgfV/PflP6CkrNpXGp1X8OCtY6XGIGidYJe35wLQozy2xtcoC9h7UXAuySUBFIyhHICadhRWE023h57ye7K6k5kW2ON9xGSnzUYs/J6ggS3CJy9Df24lw3gYbHoIyGDfn2c1tUKehS/suPULf1h8Z5CzQHFFAYkOFwt5rdQjbNeBVuvjJO+ekRSQymEAMTLCUpFYG+U54Xt1gwwgrL9UGsgm3Kkfxh5wIQB3OGnLmzWQ34TpBDZS7VsW2Pd0gPuRBFKNFgdwJeTTW92nhm5PzvS2GNZC2mjK2ylbZnEMQRuiRIOnxfcav1OVGBTne2Q/b2WzBtH7Aaorufu/Mf9XPdmIBZPBAvmlHY6V0iq8OIyQKLmjzg2Npfv/qJOvFaR5WJpM7ZyJmkra7/kmQLYugwbIBwbk5r/fAu1JrphkS2ndYHyousfpfiOQ5z5DmX7PC1IRC8YwWa+0cEB1V/XIXUNv2z1Wgdtz5zw9oIiGkeOrIlNLp2x5fwYZAUPKMTf+PiZf86jK7w/kCNAhLe35L7Vfo0QFJ5bWMRsMnvJEGlxfD4JVaRVriJtZRC2bYSl2ExI4QJg1IUdpgvkngyWNhhGdUp3aq6IWSGzRb50mhcC+AcT8rz97YRL68gaAppeC5n1cF0SMQFqRnd3SCoKb3GusV/qNpC0W+mk/iMpLwO/QvKQeGVI+XjWLXha9SR0SYJ3FU2G2tZMYb9xVtR9fLOuGrGCqnRm7cjcvnlFQrjcAadUtapS54OVQoWdZz5pzjcYML/6GP7w2XVubPzJmSEFCJ/6jAdM5dr2bRkdgK69Db3m6WoRrwMHv3gYdSzTGYAt8rDx6vk8saok4efrkFgt6JN2JYRH8FhtA 3cLMO5Q2 9gN6sIXIZ7WdflGD68P3yOCuCyLjwwFZ0osnBReIDx5qoUGajivB5EDplD8+u20ATmDUsXoR3jqCkJMp9rVSqmmIa5c2T5B3hQcB/zQBZjcTnOWjPUUniMOtivVFuVEXxQTeKsBT7X8+SMmVQ3f36nHJmz1L/lXoi6OyKhdGHbHpKI/vqD93Y7QFb1CbZM3vA5IQXZO61QjZqIXx6XDU99N+dzQ== 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: List-Subscribe: List-Unsubscribe: On Thu, Apr 24, 2025 at 5:57=E2=80=AFPM Peter Xu wrote: > > When discussing some userfaultfd issues with Andrea, Andrea pointed out a= n > ABI issue with userfaultfd that existed for years. Luckily the issue > should only be a very corner case one, and the fix (even if changing the > kernel ABI) should only be in the good way, IOW there should have no risk > breaking any userapp but only fixing. FWIW, my userspace basically looks like this: struct uffdio_continue uffdio_continue; int64_t target_len =3D /* whatever */; int64_t bytes_mapped =3D 0; int ioctl_ret; do { uffdio_continue.range =3D /* whatever */; uffdio_continue.mapped =3D 0; ioctl_ret =3D ioctl(uffd, UFFDIO_CONTINUE, &uffdio_continue); if (uffdio_continue.mapped < 0) { break; } bytes_mapped +=3D uffdio_continue.mapped; } while (bytes_mapped < target_len && errno =3D=3D EAGAIN); I think your patch would indeed break this. (Perhaps I shouldn't be reading from `mapped` without first checking that errno =3D=3D EAGAIN.) Well, that's what I would say, except in practice I never actually hit the mmap_changing case while invoking UFFDIO_CONTINUE. :)