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 00FE5C197A0 for ; Thu, 16 Nov 2023 11:13:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6AA0644015F; Thu, 16 Nov 2023 06:13:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 631ED6B0458; Thu, 16 Nov 2023 06:13:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4ABF244015F; Thu, 16 Nov 2023 06:13:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 3319D6B0456 for ; Thu, 16 Nov 2023 06:13:22 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0F25F1CB169 for ; Thu, 16 Nov 2023 11:13:22 +0000 (UTC) X-FDA: 81463556244.27.E595CAD Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf02.hostedemail.com (Postfix) with ESMTP id 1BC3A80012 for ; Thu, 16 Nov 2023 11:13:19 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700133200; a=rsa-sha256; cv=none; b=xZ4o414bxC7KVWjglGNxRuDQ8+/20Qorq8kJ8LnJvxJLV3MhrFQ15iHOgNhg/Vvpg48/vL BkTH2cqodbPKpL+jmz1KLjBCM9jyhJsRcORhaCG+pA2rzHHd/CRAU9meUvmm4Yf8WXsq2e Dka6Dal8XwTMdkKOEjlamu/yWI3GzRU= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700133200; 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; bh=H4HCwr2j6uA9i+DdbiYHyH5Xn4RN8tL3PiSkMY5Icf4=; b=54UKBkMwiRBPM2zX+KDm3b/xXhg766MET42M2kYVWY+OuWNW4PLF/qWKPwPu7EbDT6z865 VMEyk6LHKT3EqkmopE9YZ9+pHC/h4MctRz1l3l5N+z8bIZ7gGU3IsqYdeCZS7RdT1TEPcW JY7ouIYU+qOSxZnw2dhTiV8vlAJM+u0= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0AD061595; Thu, 16 Nov 2023 03:14:05 -0800 (PST) Received: from [10.1.35.163] (XHFQ2J9959.cambridge.arm.com [10.1.35.163]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D20143F6C4; Thu, 16 Nov 2023 03:13:15 -0800 (PST) Message-ID: <75e721cb-18c2-4717-bdbe-af346b1deafa@arm.com> Date: Thu, 16 Nov 2023 11:13:14 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 01/14] mm: Batch-copy PTE ranges during fork() Content-Language: en-GB To: David Hildenbrand , kernel test robot , Catalin Marinas , Will Deacon , Ard Biesheuvel , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Zenghui Yu , Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Andrew Morton , Anshuman Khandual , Matthew Wilcox , Yu Zhao , Mark Rutland , Kefeng Wang , John Hubbard , Zi Yan Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20231115163018.1303287-2-ryan.roberts@arm.com> <202311160516.kHhfmjvl-lkp@intel.com> <4e8d329c-eda6-4ff8-bb56-8924bb4583b2@redhat.com> <930b5f6a-27d9-43da-bf9f-1478c8de1af8@redhat.com> From: Ryan Roberts In-Reply-To: <930b5f6a-27d9-43da-bf9f-1478c8de1af8@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 1BC3A80012 X-Stat-Signature: xggmapeozm1wj6bxwz6k3cgc761ppaxf X-HE-Tag: 1700133199-607885 X-HE-Meta: U2FsdGVkX19PrbagfDOP3qkEtzFfyVZPJMV/IYsYl5t6rechE4lJQTSFeh1KSLwyj0Gu4phoUuW3YmrsRJwsKdIwQTDs++EEsBH+c1UhWBqHMVc8IKEDOEvBqzamffsSvfvKHONAN/MTZuhTcJ12hI7dGsUgyvQ6ATlTYwBED169VVk9b2PQKc963SNkZe0FkorsJpzFeBMF2mdd/Q5nuORJGTR4xU5tew7ww3Fgh9+WjGeigQ+32VoLdNGoBFYEQy4zvvrEfQ9ePCged+BDS8572dnkTcB6mVajH3TEmK68V3xPN5TmqAmymV+NRDfrat+Ulz19q297igisUNO/9ZxfPAwXp2BYwVxKhDLliQpciGCfgt5D9+yBCBKlpIZxBRYh7K2KQdSi+RImXwO7/4avIEpPFYxPQacJSVFcjo9S88IMcuJ+VYmMBXrwwFL5lpt/yz08NHqBi9oVjBASzyGuNiuD3UPTIvy54WwrBAmDn6wOsMmH08ftkcS0EnoT8zdO0zy0VdpwmXCOao696a+jSU3GwO3mDIpJ14xqYjor7Mq79VIyai2c/exfdHsCptizfZv0i4VSL4MHxMkAbEHQVdGRbANaNSjgNWX/u0saXACyDS5q7x/TAd3YSA7heH7HcMcPe4SnD6Xtg/V0BwDg21A+u5FB8MiYhfe1/YuS3Qi0CXeGBLUKGYjTrDkCJKXTGQyRVb7B+nAMROv+8VG2SzgHCTKsK8i63TMpMgv+cBZFM1mQEE45q67fDkI2kQ9WNfPAV6CNe9NQefYbkuzq6aCcpIMMGxMMe7enodp3u7I8B61heu9hld7RJFnbG76nG72Qkpjrh0hnMzBuJkKTHB3ZUBSNEfjZbK1QPDehYePEaoZepnx6WsgXAXiYzeEPE9v+d11JSyt32mUSCpaPb/yePwgbB66sikoG0D7eR+7JFrZAX50FH/C/scL/FzAnFRsxHMlzQ9Y+DIQ BQu2xeRO c4Un9lA2kiwdLgj3S3/JheF94IWC0VSpcrZmx/WjRRs30wJx+maqbm14+48ueAKuGJT5+6i5W+VMU/cuY5ii6AlvrS4HBZ9SyMtgUyVX5yRE5M/IHE+JL2fhBueUQybZ1TZmYh1wxg4wSa6dkHYCtR498gyoBjlQrVuXEyFNUlSOv1DqBVXh7z0YX6s4juZH1XBepGEZC+Eb7rd9SzHu2UrtszNFp/AcQMAXhjpO7lQmGbEzguhwulS0ndj3kINJH1uf7blU+5oZVCHMydsLapvYKEAZr+jBQHalSmKNZ3gMPK2f9B0+jIYJi+BdcrdMlxvSz0BUsesCTO9giVMkv3bFgogpf+RTBGLriKltc9QQ01g8HivOzHiZ3wnzGUAnlqGHy2smDCklX4Vuqmdprfox1F4+cTDqrn0ieT79zQqoB+yE66FCgcHa4kAOIAD+0mjvaef/AN2Ij9nivKQ2Ctx8kujTH1G0fCJPhTCT3y7CbwDJmCJGtRRyBMvpCpReEIX/m 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 16/11/2023 11:01, David Hildenbrand wrote: > On 16.11.23 11:36, Ryan Roberts wrote: >> On 16/11/2023 10:12, David Hildenbrand wrote: >>> On 16.11.23 11:07, Ryan Roberts wrote: >>>> Hi All, >>>> >>>> Hoping for some guidance below! >>>> >>>> >>>> On 15/11/2023 21:26, kernel test robot wrote: >>>>> Hi Ryan, >>>>> >>>>> kernel test robot noticed the following build errors: >>>>> >>>>> [auto build test ERROR on akpm-mm/mm-everything] >>>>> [also build test ERROR on linus/master v6.7-rc1 next-20231115] >>>>> [cannot apply to arm64/for-next/core efi/next] >>>>> [If your patch is applied to the wrong git tree, kindly drop us a note. >>>>> And when submitting patch, we suggest to use '--base' as documented in >>>>> https://git-scm.com/docs/git-format-patch#_base_tree_information] >>>>> >>>>> url: >>>>> https://github.com/intel-lab-lkp/linux/commits/Ryan-Roberts/mm-Batch-copy-PTE-ranges-during-fork/20231116-010123 >>>>> base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git >>>>> mm-everything >>>>> patch link: >>>>> https://lore.kernel.org/r/20231115163018.1303287-2-ryan.roberts%40arm.com >>>>> patch subject: [PATCH v2 01/14] mm: Batch-copy PTE ranges during fork() >>>>> config: arm-randconfig-002-20231116 >>>>> (https://download.01.org/0day-ci/archive/20231116/202311160516.kHhfmjvl-lkp@intel.com/config) >>>>> compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0 >>>>> reproduce (this is a W=1 build): >>>>> (https://download.01.org/0day-ci/archive/20231116/202311160516.kHhfmjvl-lkp@intel.com/reproduce) >>>>> >>>>> If you fix the issue in a separate patch/commit (i.e. not just a new >>>>> version of >>>>> the same patch/commit), kindly add following tags >>>>> | Reported-by: kernel test robot >>>>> | Closes: >>>>> https://lore.kernel.org/oe-kbuild-all/202311160516.kHhfmjvl-lkp@intel.com/ >>>>> >>>>> All errors (new ones prefixed by >>): >>>>> >>>>>      mm/memory.c: In function 'folio_nr_pages_cont_mapped': >>>>>>> mm/memory.c:969:16: error: implicit declaration of function 'pte_pgprot'; >>>>>>> did you mean 'ptep_get'? [-Werror=implicit-function-declaration] >>>>>        969 |         prot = pte_pgprot(pte_mkold(pte_mkclean(ptent))); >>>>>            |                ^~~~~~~~~~ >>>>>            |                ptep_get >>>>>      cc1: some warnings being treated as errors >>>> >>>> It turns out that pte_pgprot() is not universal; its only implemented by >>>> architectures that select CONFIG_HAVE_IOREMAP_PROT (currently arc, arm64, >>>> loongarch, mips, powerpc, s390, sh, x86). >>>> >>>> I'm using it in core-mm to help calculate the number of "contiguously mapped" >>>> pages within a folio (note that's not the same as arm64's notion of >>>> contpte-mapped. I just want to know that there are N physically contiguous >>>> pages >>>> mapped virtually contiguously with the same permissions). And I'm using >>>> pte_pgprot() to extract the permissions for each pte to compare. It's important >>>> that we compare the permissions because just because the pages belongs to the >>>> same folio doesn't imply they are mapped with the same permissions; think >>>> mprotect()ing a sub-range. >>>> >>>> I don't have a great idea for how to fix this - does anyone have any thoughts? >>> >>> KIS :) fork() operates on individual VMAs if I am not daydreaming. >>> >>> Just check for the obvious pte_write()/dirty/ and you'll be fine. >> >> Yes, that seems much simpler! I think we might have to be careful about the uffd >> wp bit too? I think that's it - are there any other exotic bits that might need >> to be considered? > > Good question. Mimicing what the current code already does should be sufficient. > uffd-wp should have the PTE R/O. You can set the contpte bit independent of any > SW bit (uffd-wp, softdirty, ...) I guess, no need to worry about that. > OK thanks. I'll rework for this approach in v3.