Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp1604277rdb; Mon, 2 Oct 2023 15:10:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGBdPrlRNHawovFH4vpTIBCIkfpR4ccAX1g3fhCEhCarhV/P6Gi6JDzIO0MOxYuG+KRGcLg X-Received: by 2002:a05:6358:e49f:b0:143:7bba:3c73 with SMTP id by31-20020a056358e49f00b001437bba3c73mr14718921rwb.1.1696284653693; Mon, 02 Oct 2023 15:10:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696284653; cv=none; d=google.com; s=arc-20160816; b=D6olJ2Vz+8CwudyRcrW/tNT7sqSBNHZ3/RGODaxRXcO6uS4U9JtOvap5qicyWKv/Y1 2iBHMZWzWDxUivG+Z615WuHniMaIbSs/f6lzAcFR0Kw4K6rC9xa/0hhPyGamieq9PIxH uAOrKz4g/ZukXhXfp2VOyVR+jEiEnZOZcG4T3XrHoSXI/XZrCOru+9BTacYmpU3qnXYT 6Wrct6d6oRKKSwp33rn1L30H0qfHaqDrqprJz8aS2e70DWzbnMBGD8qIAW4IrEiIvjLe kdKiDNpqn7Ud2FFR+Bp4hsz3BaJ7REO1BVVdYBjwUauZjib7DBS1VjmykFmUxN7XXZb4 ++TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=EE6kgS5NryeWM2eNYlqUNOE7bxNuh8Nz6QyL7U8srO0=; fh=R8Zb3En80Gi8vEx+T2/tYtfxbjodQMVbLM5TmvEByQA=; b=dgp3HIaCO5kY0h2yZoEeYMT+wifvrvPx+bZg50/xciK/h/E+g028I0q7DPUfZseO/a C/g2qE+3HdBzRX9Dko9A2xmnfguhndf9FnZ45gF+GSMJ62Ux8tOWaSpN3mZatB/2/Ico 7BYxvHdAR5nK1iDFyO/1JNm8QLj6Qekf36lCQUcgtNY4q7fS2TAgbjcFOO3qewshFdbN Vhr/lMyT8mSYyt+c1dodECJIfKd5qXXuqZ3fOr3kKDIiNgZXjJfMkVMBFypYrCDa/PXY 3BhRfSr3IeuKoUGUPzQ0iTaBwAiiU8toaWzHT18EDVFo1A5CSHi8uV7uMY1jic2Z4Tb3 UMNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b="Y/A08K4r"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id r193-20020a632bca000000b0057458518e21si28007845pgr.630.2023.10.02.15.10.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 15:10:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b="Y/A08K4r"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 9BDE48051C78; Mon, 2 Oct 2023 08:56:19 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238363AbjJBP4F (ORCPT + 99 others); Mon, 2 Oct 2023 11:56:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238323AbjJBPz4 (ORCPT ); Mon, 2 Oct 2023 11:55:56 -0400 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AEB3BFE for ; Mon, 2 Oct 2023 08:55:48 -0700 (PDT) Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-32336a30d18so8518098f8f.2 for ; Mon, 02 Oct 2023 08:55:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696262147; x=1696866947; darn=vger.kernel.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=EE6kgS5NryeWM2eNYlqUNOE7bxNuh8Nz6QyL7U8srO0=; b=Y/A08K4rOTR+BD603+oKzq7iRMgXVNysGNpUPpUZ9BBTMGHCHOYDUBeTXqcsPieb1U gYUNif5kQKO7ZjwS9Nun9P7nP9AU+NYi6P6JAkivjsRVhAMhB2O+0L6hTo5ZH82t3YMS 7ZzGTFcnMWL2aYl4ynwIIBESrQOEOZhPyowjz0wlNvqW+yZJvt5SJg8dSZGqw2mFP2B3 oveLYGvvV9aeZEcRjm2nYdhBt6dxKrIyvu8TAaA5vRPYmNSx5xkndLZeG0ccBASUy4+9 KeU4I/iZl+5hdh0uSIgWV6XW1B1I6uoh90uwm62nuyp+xtydQT/V6UHnYgYJ9Xqlr3zd 20ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696262147; x=1696866947; 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=EE6kgS5NryeWM2eNYlqUNOE7bxNuh8Nz6QyL7U8srO0=; b=fBAgt1COEyVju1HN2a6+NI5djQJkEpo7LdpD6nhbkKr4wsWYakgmahZWGrK9/W/ffH rooqcAqgd7Pq6ivk16CfvU1V2qbv6NamZU+L/G4zFFHtaV86DhornkPiQD5/f2Teo9I9 zybn5PzZFRvoKitjmaQ90HytY9RQM09OA9aiy68kMzLnn6399lhXFosbwyWGWR78upOc Xr5LYlN7iO7J0jMp7D+6kb6vd08BtALkUJE3rRObo8Nz+zEJXTtLHH9lXEPFscTsTzRf 3rlaz82j2FOH0ddihzwZc8krQ2dT5Ti0/YjhCX5z6iuLJy9/wr+nZybPDv7xP+y7CF2P fqLw== X-Gm-Message-State: AOJu0YyIjvtFuXa1SCL0mG0B2JD5XCrsgy9kY3i5gsc9bx06tz9hgjPl wF62+fQ55h2M2p0ho6F10jH0ax4Ty21Ju/QSVQYt4w== X-Received: by 2002:a5d:610a:0:b0:314:1f1e:3a85 with SMTP id v10-20020a5d610a000000b003141f1e3a85mr9647998wrt.61.1696262146901; Mon, 02 Oct 2023 08:55:46 -0700 (PDT) MIME-Version: 1.0 References: <20230923013148.1390521-1-surenb@google.com> <20230923013148.1390521-3-surenb@google.com> <03f95e90-82bd-6ee2-7c0d-d4dc5d3e15ee@redhat.com> <98b21e78-a90d-8b54-3659-e9b890be094f@redhat.com> <85e5390c-660c-ef9e-b415-00ee71bc5cbf@redhat.com> In-Reply-To: From: Lokesh Gidra Date: Mon, 2 Oct 2023 16:55:35 +0100 Message-ID: Subject: Re: [PATCH v2 2/3] userfaultfd: UFFDIO_REMAP uABI To: Peter Xu Cc: David Hildenbrand , Jann Horn , Suren Baghdasaryan , akpm@linux-foundation.org, viro@zeniv.linux.org.uk, brauner@kernel.org, shuah@kernel.org, aarcange@redhat.com, hughd@google.com, mhocko@suse.com, axelrasmussen@google.com, rppt@kernel.org, willy@infradead.org, Liam.Howlett@oracle.com, zhangpeng362@huawei.com, bgeffon@google.com, kaleshsingh@google.com, ngeoffray@google.com, jdduke@google.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 02 Oct 2023 08:56:19 -0700 (PDT) On Mon, Oct 2, 2023 at 4:46=E2=80=AFPM Lokesh Gidra wrote: > > On Mon, Oct 2, 2023 at 4:21=E2=80=AFPM Peter Xu wrote= : > > > > On Mon, Oct 02, 2023 at 10:00:03AM +0200, David Hildenbrand wrote: > > > In case we cannot simply remap the page, the fallback sequence (from = the > > > cover letter) would be triggered. > > > > > > 1) UFFDIO_COPY > > > 2) MADV_DONTNEED > > > > > > So we would just handle the operation internally without a fallback. > > > > Note that I think there will be a slight difference on whole remap > > atomicity, on what happens if the page is modified after UFFDIO_COPY bu= t > > before DONTNEED. > > > > UFFDIO_REMAP guarantees full atomicity when moving the page, IOW, threa= ds > > can be updating the pages when ioctl(UFFDIO_REMAP), data won't get lost > > during movement, and it will generate a missing event after moved, with > > latest data showing up on dest. > > > > I'm not sure that means such a fallback is a problem, Suren may know > > better with the use case. > > Although there is no problem in using fallback with our use case but > as a user of userfaultfd, I'd suggest leaving it to the developer. > Failing with appropriate errno makes more sense. If handled in the > kernel, then the user may assume at the end of the operation that the > src vma is completely unmapped. And if not correctness issues, it > could lead to memory leaks. I meant that in addition to the possibility of correctness issues due to lack of atomicity, it could also lead to memory leaks, as the user may assume that src vma is empty post-operation. IMHO, it's better to fail with errno so that the user would fix the code with necessary changes (like using DONTFORK, if forking). > > > > Thanks, > > > > -- > > Peter Xu > >