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 5BC8AEB64D7 for ; Fri, 30 Jun 2023 06:35:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE0608D0002; Fri, 30 Jun 2023 02:35:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C90588D0001; Fri, 30 Jun 2023 02:35:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B57FC8D0002; Fri, 30 Jun 2023 02:35:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A87A68D0001 for ; Fri, 30 Jun 2023 02:35:32 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 7D93AA095B for ; Fri, 30 Jun 2023 06:35:32 +0000 (UTC) X-FDA: 80958452904.22.4469F67 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by imf17.hostedemail.com (Postfix) with ESMTP id 94D0840018 for ; Fri, 30 Jun 2023 06:35:30 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; spf=pass (imf17.hostedemail.com: domain of jirislaby@gmail.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=jirislaby@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688106930; 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=20rBaj2Y5A8WawnZ5IpIpG7vFTWBtQPIoAz1oe/gFqA=; b=a8iLKjVTn9vXzRPV2CDDQ1uraJYXP2tXTxZTmihChRStp31V7Xb7nSi2P6ZKk9cV+up8lu pjDE4IOWcmWryeCgHh6meO8azdSJAI1LqO5GxlZ6sp2f3wcHX+Pro9X8pZ3krz33PrMX1/ iXjc0XqkPOWliGRUGT9XORBsNzTAdBA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688106930; a=rsa-sha256; cv=none; b=luQPAGMrD19j2B/Yvscq4Gtpn1UUKZ1HLgjmp7Iow4pjm6eT1INDSi/YPblZ2XleyctR8u B3lJzVTiwXN6fURGEvqJ8khWq1d8HvxVv1MHhVul897YolMR6T06cGZMIRXwuaVA1h0DQJ qbP9cT9fW7yooI+4mQRyWVJL9nHTHCU= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; spf=pass (imf17.hostedemail.com: domain of jirislaby@gmail.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=jirislaby@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=none) Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-992b27e1c55so161319666b.2 for ; Thu, 29 Jun 2023 23:35:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688106929; x=1690698929; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=20rBaj2Y5A8WawnZ5IpIpG7vFTWBtQPIoAz1oe/gFqA=; b=IeLwx3q/ajyAZbjLaXtpOVhPBgrNar/FW+g4QeZtaQxKdWKIU9aUlBUpDbGJIlhVk2 k1fOxWUoUWqN0T1KhMyfQH9mHRSanXsRL6K+NmjAZ3LiFFv1rHYs1j9Iiod0aCsa4/LB nGeIeMtsvZhT6itibBDBwonGKlaYQNal0gdSrEON2ERjDKuccvr5sMjXnoLmYe4b2PXC zTKTor/CkkXVNcDWqhf3eD9Xm1/HUkPzNZX5WKC/ItubVyuzzjs8IukPaDDovpORvOo6 +w5tTpbgMVZum8UE4pPDA1TZbjY93p0htmM+8DMKWAh2xXF0gmrTD3NA5p0MjQcCMlB5 GMKg== X-Gm-Message-State: ABy/qLarRxNZY+jMb0yr2+jdZES4aXLsEEFucHXe8mYKgAiE4Bs7KdVN vwHC6E5FhyxcXYWnOyP9jjY= X-Google-Smtp-Source: APBJJlFfYhTxC8ahwzU+JKDiJhjiAHDdaDYcw6muBSFSxnAn39XJR+dtpGgU7WNpRhVqsWEErFSBog== X-Received: by 2002:a17:906:5593:b0:982:6bba:79c9 with SMTP id y19-20020a170906559300b009826bba79c9mr1180362ejp.20.1688106928988; Thu, 29 Jun 2023 23:35:28 -0700 (PDT) Received: from ?IPV6:2a0b:e7c0:0:107::aaaa:59? ([2a0b:e7c0:0:107::aaaa:59]) by smtp.gmail.com with ESMTPSA id l8-20020a170906414800b0098e2969ed44sm6614566ejk.45.2023.06.29.23.35.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 29 Jun 2023 23:35:28 -0700 (PDT) Message-ID: <9a8d788c-b8ba-1b8a-fd79-0e25b1b60bed@kernel.org> Date: Fri, 30 Jun 2023 08:35:26 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v4 29/33] x86/mm: try VMA lock-based page fault handling first Content-Language: en-US To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, paulmck@kernel.org, mingo@redhat.com, will@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, chriscli@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, rppt@kernel.org, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, leewalsh@google.com, posk@google.com, michalechner92@googlemail.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com References: <20230227173632.3292573-1-surenb@google.com> <20230227173632.3292573-30-surenb@google.com> From: Jiri Slaby In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 94D0840018 X-Rspam-User: X-Stat-Signature: eaxd7h46ctzju3nn3fqk1nsdmrrm4noe X-Rspamd-Server: rspam03 X-HE-Tag: 1688106930-517289 X-HE-Meta: U2FsdGVkX1/soka1dnDkiYKthHl/MOMZngF8Y3oSf8AyDJmpEGX8RFOUihXqePGHQ7J4ruR+lYKZaWsFtCIDKzkB8YnnXiNooA81VLyLf3O8BTC1volKmTvUGKvL2viuMqElk8Rs/vYY805vP/jycHiei0aH5vKcz0fUFarDMhP/dPKuO94ldG7m7t208W6NO4QJNsqRXAZtaHnNkoaRjScaD5RuxX7aZWIBpx/eI4tqrRwCZ2qodqWHcYDwvfDBQzKq80aMKDWXAJpnkk9uc/qyE6FdULNy8cDiLiNnter+XJqCASjauU3dYdwh0r72PiyKk6lwQJ+owR7OsoUbc+0Qrr5zRcNNsRLME4WdyEBzkE78LYOB5C/aQAiAC2UX1dKpPbNXl+KS9DJSNxLSWQkedGhGNsj1kgn5qg88gcbMSvQli86bNgCK6ny39SQ2GEEGEJGD7msVXssJyS1s3PsVWYT5xmYWQ1BA/92JCKpj3u9qD6rp5g5n4T+7Tn68M6b6ZHui0WKPCOVC+PFPyPkrbH5vjZnTiqC7O1IwEatANAmdnVcTw8INxO9rGX/zEvoDcLStXHcGoG2BmzWjaYu7oNnQl7uQr8n7Klfg/8fqHV/eRxpiQiYjuOz9qgnPIEgGuRFqiJ9SbBAcbTDIXx5GD//bytwPcJXAIjqcs2newg7HBoVfv2S2kZFenmbSQUwyFxDUWdpmoQAt4Ki0yjKyGtru8SdHPc5wb0TpcesT6cwnlHdpqCXCPE56hHfo4hZ7v3bYb+3aSrz7JOsAx7Fq7KtduNKpOldR1hhMXFja7mnrsNpqB6j5nPtvqWfARn9IxSPOReqx4VGUX1gvyGnfTxNzSz8MudoGJVrDU/9qApJIWvklfKN5n6Ef3ArG2ebk1MoLTKav+8evu/KuVAKP0B2BJv9/yZqzXk67n0Oga3xFKWlRKYB5hCCJtF2U+F16Hi+X+W8QnISwryB eUT8sKbs IYedzHemP5Jp178XLgB5NLyZ+yoIhVbDYVP5evo4mMZQAk1E/0vo5WwPr05k3ug5iwvuj758I1+nFPyTFMtI1HFCZf9igUXqLLc9bb5Xxygiu90z6AV5BPGEJQ/buHwsSP8pOSNin53NJizLgY0Kg0e0NXvsg/4DB0NEMgRU9TLcBNOHLBBtQgRiG713smtzCu6ldZu87eO+X2DDi/yVmHAVFf4ltYcoPwgunCk6cL4J5oJME94pO/yq14kV8wIayQA4pQi8IDITTWlRJMlFcIv96CTbvVFLBOpUQqkLtPAK4eDlUaosp0u9O3ZIkkwi8s1C5s4zvce95JOQPTWdwXkvP12EBMJr62B9CkSUlk76AwLsLtAAd7i88Vn5dXcZFlKOgxBdENW81JLaFPtCTq2U4P5bjkaiEUnUX8+zO7zNYn6rl7PFJ2qKb4pVsgUUFtECNa/6ojtgfcRBIoi1xGA+v14xmWmXHSGKpTXumk/Jg/SzCMFjBerZL4jrSwQGVECULzvWbFcsGt+InaTeJ5F67pQYlejxgkahz5v800mSy8v/km5XbZziuoA== 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 29. 06. 23, 17:30, Suren Baghdasaryan wrote: > On Thu, Jun 29, 2023 at 7:40 AM Jiri Slaby wrote: >> >> Hi, >> >> On 27. 02. 23, 18:36, Suren Baghdasaryan wrote: >>> Attempt VMA lock-based page fault handling first, and fall back to the >>> existing mmap_lock-based handling if that fails. >>> >>> Signed-off-by: Suren Baghdasaryan >>> --- >>> arch/x86/Kconfig | 1 + >>> arch/x86/mm/fault.c | 36 ++++++++++++++++++++++++++++++++++++ >>> 2 files changed, 37 insertions(+) >>> >>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig >>> index a825bf031f49..df21fba77db1 100644 >>> --- a/arch/x86/Kconfig >>> +++ b/arch/x86/Kconfig >>> @@ -27,6 +27,7 @@ config X86_64 >>> # Options that are inherently 64-bit kernel only: >>> select ARCH_HAS_GIGANTIC_PAGE >>> select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 >>> + select ARCH_SUPPORTS_PER_VMA_LOCK >>> select ARCH_USE_CMPXCHG_LOCKREF >>> select HAVE_ARCH_SOFT_DIRTY >>> select MODULES_USE_ELF_RELA >>> diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c >>> index a498ae1fbe66..e4399983c50c 100644 >>> --- a/arch/x86/mm/fault.c >>> +++ b/arch/x86/mm/fault.c >>> @@ -19,6 +19,7 @@ >>> #include /* faulthandler_disabled() */ >>> #include /* efi_crash_gracefully_on_page_fault()*/ >>> #include >>> +#include /* find_and_lock_vma() */ >>> >>> #include /* boot_cpu_has, ... */ >>> #include /* dotraplinkage, ... */ >>> @@ -1333,6 +1334,38 @@ void do_user_addr_fault(struct pt_regs *regs, >>> } >>> #endif >>> >>> +#ifdef CONFIG_PER_VMA_LOCK >>> + if (!(flags & FAULT_FLAG_USER)) >>> + goto lock_mmap; >>> + >>> + vma = lock_vma_under_rcu(mm, address); >>> + if (!vma) >>> + goto lock_mmap; >>> + >>> + if (unlikely(access_error(error_code, vma))) { >>> + vma_end_read(vma); >>> + goto lock_mmap; >>> + } >>> + fault = handle_mm_fault(vma, address, flags | FAULT_FLAG_VMA_LOCK, regs); >>> + vma_end_read(vma); >>> + >>> + if (!(fault & VM_FAULT_RETRY)) { >>> + count_vm_vma_lock_event(VMA_LOCK_SUCCESS); >>> + goto done; >>> + } >>> + count_vm_vma_lock_event(VMA_LOCK_RETRY); >> >> This is apparently not strong enough as it causes go build failures like: >> >> [ 409s] strconv >> [ 409s] releasep: m=0x579e2000 m->p=0x5781c600 p->m=0x0 p->status=2 >> [ 409s] fatal error: releasep: invalid p state >> [ 409s] >> >> [ 325s] hash/adler32 >> [ 325s] hash/crc32 >> [ 325s] cmd/internal/codesign >> [ 336s] fatal error: runtime: out of memory > > Hi Jiri, > Thanks for reporting! I'm not familiar with go builds. Could you > please explain the error to me or point me to some documentation to > decipher that error? Sorry, we are on the same boat -- me neither. It only popped up in our (openSUSE) build system and I only tracked it down by bisection. Let me know if I can try something (like a patch or gathering some debug info). thanks, -- js suse labs