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 F1816C433EF for ; Thu, 21 Jul 2022 14:11:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 14EB16B0071; Thu, 21 Jul 2022 10:11:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0FB296B0072; Thu, 21 Jul 2022 10:11:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F05578E0001; Thu, 21 Jul 2022 10:11:00 -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 DD2716B0071 for ; Thu, 21 Jul 2022 10:11:00 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B4849808E0 for ; Thu, 21 Jul 2022 14:11:00 +0000 (UTC) X-FDA: 79711293480.22.70E5410 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 419491400A3 for ; Thu, 21 Jul 2022 14:11:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658412659; h=from:from: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; bh=rDTTu30CW6yuJVbQ/60UukKUOMp8krfp5ZoEixBMzVc=; b=TW4/XwhYTPOwJ88IQ7C/gY/LF05CDONYXkMCjrFs4EHpL+XKmy10FvsIc7Hq8MxlQSv4O+ WjADx1FiGLf3UoFPr8P1BifF3ikZZqlx/lR6kC1NrgXNjk/2k9KZ0ujnvXg4HhAwyH8jfu pJq/WNhCNGz/5wH+2tXJ5fDJlDMhiDc= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-643-VjgCB8EoPxGHJQJMbwEWzA-1; Thu, 21 Jul 2022 10:10:55 -0400 X-MC-Unique: VjgCB8EoPxGHJQJMbwEWzA-1 Received: by mail-wr1-f72.google.com with SMTP id m2-20020adfc582000000b0021e28acded7so376389wrg.13 for ; Thu, 21 Jul 2022 07:10:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:from:to:cc:references:organization:subject :in-reply-to:content-transfer-encoding; bh=rDTTu30CW6yuJVbQ/60UukKUOMp8krfp5ZoEixBMzVc=; b=ziV3rTWnaZ96S/eUMGSeaVdlpxg9U4Uzhp5sxT49kRamFwVfCiw7snkUE2ZxyFaygl 7E/ZA+zSv7lCLvht64QWNkRHI23wXHMwX1r1wKPxDSbutwwySx/bnHLUyjTNLgkSlXCF XGRRpWUY0YI/vFAFgpIRCNjNpf3CRLVhrHqt3obtryO/j4bKa3axxNT4GARoQO8mCLaD 3PLC4PbqEvZtlE7r4m6HnnQjvT9f0VUiZ0QlRHV2xHJPlBOtZ5t1/9tcs524129Yb+QD XL4cYPXVl8VJ9nj6p816CpMAcI4RRFxQy/4QCTwaPgbrlwSMlGWtdlMa7jgsJczRcuzw 9T/w== X-Gm-Message-State: AJIora9tErPg7z5tzz3PeIbPsJt3KglcdcMRP1N3MVysYmQpfTen9xMd ZTBwd11jWRNggTQ7NptYMHdMTunMTUvr994GTnpW6DCJ0wOsqptvSOm49Vmeb7LCk3OlRXGJLqI Ok+QqGrPlxxs= X-Received: by 2002:a7b:c7d2:0:b0:3a3:209d:cdc6 with SMTP id z18-20020a7bc7d2000000b003a3209dcdc6mr8649600wmk.55.1658412652697; Thu, 21 Jul 2022 07:10:52 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vpPVSt5eQQkxyxRPFJ6jginy3ckuXzWnSclnptMjXfdA4Nd/j5PEpqKX37REEkffQhXExeEA== X-Received: by 2002:a7b:c7d2:0:b0:3a3:209d:cdc6 with SMTP id z18-20020a7bc7d2000000b003a3209dcdc6mr8649580wmk.55.1658412652388; Thu, 21 Jul 2022 07:10:52 -0700 (PDT) Received: from ?IPV6:2003:cb:c707:e000:25d3:15fa:4c8b:7e8d? (p200300cbc707e00025d315fa4c8b7e8d.dip0.t-ipconnect.de. [2003:cb:c707:e000:25d3:15fa:4c8b:7e8d]) by smtp.gmail.com with ESMTPSA id d5-20020adff845000000b0021dd08ad8d7sm2133349wrq.46.2022.07.21.07.10.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Jul 2022 07:10:51 -0700 (PDT) Message-ID: <7a6b346a-9225-c6f4-aca4-93c588b6917e@redhat.com> Date: Thu, 21 Jul 2022 16:10:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 From: David Hildenbrand To: Nadav Amit Cc: Peter Xu , Linux MM , LKML , Andrew Morton , Mike Rapoport , Axel Rasmussen , Andrea Arcangeli , Andrew Cooper , Andy Lutomirski , Dave Hansen , Peter Zijlstra , Thomas Gleixner , Will Deacon , Yu Zhao , Nick Piggin References: <20220718120212.3180-1-namit@vmware.com> <20220718120212.3180-2-namit@vmware.com> <017facf0-7ef8-3faf-138d-3013a20b37db@redhat.com> <2b4393ce-95c9-dd3e-8495-058a139e771e@redhat.com> <69022bad-d6f1-d830-224d-eb8e5c90d5c7@redhat.com> <4ad140b5-1d5b-2486-0893-7886a9cdfd76@redhat.com> <95320077-52CF-4CB0-92F9-523E1AE74A3D@gmail.com> <468a7114-7541-0d5e-c1fc-083bbb95e78d@redhat.com> <8e2dcae3-5f50-cd59-7588-b8f566549ad4@redhat.com> Organization: Red Hat Subject: Re: [RFC PATCH 01/14] userfaultfd: set dirty and young on writeprotect In-Reply-To: <8e2dcae3-5f50-cd59-7588-b8f566549ad4@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="TW4/XwhY"; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf09.hostedemail.com: domain of david@redhat.com has no SPF policy when checking 170.10.129.124) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1658412660; 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=rDTTu30CW6yuJVbQ/60UukKUOMp8krfp5ZoEixBMzVc=; b=MdxBjJdteEvR7Tg3lxVm+QUw/t0megXeo04UD8rG0cPhbcgwud+eiWLAYQDe+ObhlEc0c9 QiPcowtuERkGnff7Vm+jTts1tSgFM+lRV3VwDionYwNiEsv7cF+680pvJlkgwI+NToCmoJ D6asF1O/1N54WdPVjM3Jf88ev969VZ8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1658412660; a=rsa-sha256; cv=none; b=jehW7bfl3zvfu89jTMsVN6eMNRturWjxj8N6gh3iioubBPKmgjkoEJLH/A1SYY1JyaOAqQ mf4RlLuRt8CjtvyNJUNkYzx0vQJkKhE7tBdw1RY9fhkq3LaLMyGHtJgK5MgbL/Ul3zJwWS toBGljoYuTna3drbdrqFQBxnrJAb+Ag= X-Rspam-User: X-Stat-Signature: 1jj8nt5hub5ymsf668t6xsu8i939dmch X-Rspamd-Queue-Id: 419491400A3 Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="TW4/XwhY"; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf09.hostedemail.com: domain of david@redhat.com has no SPF policy when checking 170.10.129.124) smtp.mailfrom=david@redhat.com X-Rspamd-Server: rspam04 X-HE-Tag: 1658412660-470500 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 21.07.22 09:52, David Hildenbrand wrote: >>> Yes. Especially for any MAP_PRIVATE mappings. >>> >>> If you want to write to something that's not mapped writable in a >>> MAP_PRIVATE mapping it >>> a) Has to be an exclusive anonymous page >>> b) The pte has to be dirty >> >> Do you need both conditions to be true? I thought (a) is sufficient (if >> the soft-dirty and related checks succeed). > > If we force-write to a page, we need it to be dirty to tell reclaim code > that the content stale. We can either mark the pte dirty manually, or > just let the write fault handler deal with it to simplify GUP code. This > needs some more thought, but that's my understanding. Extending on my previous answer after staring at the code a) I have to dig if the FOLL_FORCE special-retry-handling is required for MAP_SHARED at all. check_vma_flags() allows FOLL_FORCE only on MAP_PRIVATE VMAs that lack VM_WRITE. Consequently, I would have assumed that the first write fault should be sufficient on a MAP_SHARED VMA to actually map the PTE writable and not require any of that special retry magic. b) I wonder if we have to take care of uffd-wp and softdirty (just like in mprotect code here) as well in case we stumble over an exclusive anonymous page. Yes, the VMA is currently not writable, but I'd have expected at least softdirty tracking to apply. ... I'll dig into the details. -- Thanks, David / dhildenb