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 4B420CD11C2 for ; Wed, 10 Apr 2024 08:07:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9733D6B0087; Wed, 10 Apr 2024 04:07:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 922566B0088; Wed, 10 Apr 2024 04:07:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8111D6B0089; Wed, 10 Apr 2024 04:07:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 6257B6B0087 for ; Wed, 10 Apr 2024 04:07:51 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C81F21206AB for ; Wed, 10 Apr 2024 08:07:50 +0000 (UTC) X-FDA: 81992893500.07.714532C Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by imf17.hostedemail.com (Postfix) with ESMTP id 5143C4001A for ; Wed, 10 Apr 2024 08:07:46 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf17.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712736468; 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=H3WBud9R5LDpU8b9olwVEnCFdJydPgvwPD8wJxLLblU=; b=sXIQk+vVzfODcKRM/iXZLjn+wd6qHjo63AMf+jvKVGyDRUJyaFk9uwfVU7TvOPqL4CAVgs eee8qVGvoarNrI79KtdSKxzUddSP6vzkC+KHy0kkWU7YotkoUj1ci2eikFuRIzoUpuRd/Z NF/jNXcV+WQYfPytnQ7BAgj2VaGzCc0= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf17.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712736468; a=rsa-sha256; cv=none; b=wwjk9cIBdw3nPgbOyYOdaxO4hcrshZS1fcWxCi6GH+86wc6Fl0enzX9pppthyLER282j1e 7lgr2znyqL8ZBHAsR1Xc96h/nKsG9+BLXnuv6wJeSaRm1cYieG+lvyBleAqaJqsp2M7m4m cJW/3PWoQ4Ww3NjugiR0eIkZtoUswNk= Received: from mail.maildlp.com (unknown [172.19.163.44]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4VDwQn2tqGz1GGhl; Wed, 10 Apr 2024 16:06:57 +0800 (CST) Received: from dggpemm100001.china.huawei.com (unknown [7.185.36.93]) by mail.maildlp.com (Postfix) with ESMTPS id 5D373140154; Wed, 10 Apr 2024 16:07:43 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm100001.china.huawei.com (7.185.36.93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 10 Apr 2024 16:07:42 +0800 Message-ID: Date: Wed, 10 Apr 2024 16:07:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 5/7] riscv: mm: accelerate pagefault when badaccess Content-Language: en-US To: Alexandre Ghiti , CC: Russell King , Catalin Marinas , Will Deacon , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexander Gordeev , Gerald Schaefer , Dave Hansen , Andy Lutomirski , Peter Zijlstra , , , , , , , References: <20240403083805.1818160-1-wangkefeng.wang@huawei.com> <20240403083805.1818160-6-wangkefeng.wang@huawei.com> <8fe1a53f-f031-4423-97e1-28d93d0cd59e@ghiti.fr> From: Kefeng Wang In-Reply-To: <8fe1a53f-f031-4423-97e1-28d93d0cd59e@ghiti.fr> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpemm100001.china.huawei.com (7.185.36.93) X-Rspamd-Queue-Id: 5143C4001A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: p6uwgn8u1pfa8wcixkyqfejpwb9s1kqf X-HE-Tag: 1712736466-908680 X-HE-Meta: U2FsdGVkX18YcXaIveKVtjFVNr1qhPD12GQrt6sfOYYXdcxwkLZPCvrdvZMehxkS8N1KjycL3AhzRtTWFOufprf6/DTD9pFNa2MtQcBfjGURf8lAVuTTrmwZpUo4U1GkuI/yeRAhY0xMwbG6zAigMGTZKGNoriguOjMsizhYGHfFz84wVqcnbyxGtW7j5zuVD5FLp4ipnqOQrZYdSuO1dhrq2iUXOfoabInpojbEU9T0Wuy3GerNvmiGwK0n0Y/zR7ejeCn3mGT4K2H8zpyDitxlYqC8N23EwpPRsiI3NoFAVwEfgIgx9ykOFyfEUj0zrQySe3cdFbXle+4l75nyT6NKZVBtb1jhsWXj2dhUhIIXcr8HsoNJ4ju0EHfXnl4Mw5L/v2F+GdNg906IzaCTsmztqE/9/+Usu/1qCXXbXJPtBk0DPZKCU6AtkwSA6Zw6UsptRtvOlJgWERVbQBguqEgdZpYmSHtmkUt/VvNeYWkwlLXbOL3ZImobFSFirwu1OWxUhlDA+ZZa6lnaTIlSSvR/dDZyzSYMniAfofmH7/jWBBMbYMfh/Y9XQ2lDWHvK+vG4XoYh57DEONt85+uw+CmjUQEATUGnLEy88KulBaLaNlPXkPUtb4ctBlFeNwRDlamyvi/4MPLnLKVB8m4KrLmAZ8sYsZ18KqA2tCGKGv8EwwSY7kqnW0mNi92k2Qti0GxTLEyhqsXRUmHoJ/647rVCAV9xLbUWCihiaYR4jm0Gd5lEm5TzXqA6tofyAQ6EMUNnjPDkBdIlJhihnuGfaKeKfhaV0Wj1hWnCTFkaimyG5w0XCX/I0N64n7dYUBHa2G+dYmMiwks9v/R6UV8faJUrbn+DcQEhTyJ8pXeZITN4kGSJCsdPgZe9kdmj0rbdldVHdJXI7Pipnwh5+B5qdV07I+MWcl3ZOc5VDAe7hAvwVDaoZuK7rx6VhaFICL/yis67n0E7wdXSC5E5oMu r9kYwlZN G+zuzjmPJrMOUAZakKBxGQXLnFAaxh6btqHOeFmymUodahg8XWJsrDBmA7zW3f+araZX4AjqmWok/L5yVQh1pup+ry4clnIOdWbdsopETpjpXjKF3mL4Wqa/pS6frm0lPXWR3MNGccipPCbtSgtzINlabWdPcV/txCMRA5/woORxwr+9PiiZFMwrtUIayd+kS62EJlfBh2Ybqv6PZceVGsKKPbrs5g6xEC/GFEPfCnYpOq0VyxPkReH2RYQ== 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 2024/4/10 15:32, Alexandre Ghiti wrote: > Hi Kefeng, > > On 03/04/2024 10:38, Kefeng Wang wrote: >> The access_error() of vma already checked under per-VMA lock, if it >> is a bad access, directly handle error, no need to retry with mmap_lock >> again. Since the page faut is handled under per-VMA lock, count it as >> a vma lock event with VMA_LOCK_SUCCESS. >> >> Reviewed-by: Suren Baghdasaryan >> Signed-off-by: Kefeng Wang >> --- >>   arch/riscv/mm/fault.c | 5 ++++- >>   1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c >> index 3ba1d4dde5dd..b3fcf7d67efb 100644 >> --- a/arch/riscv/mm/fault.c >> +++ b/arch/riscv/mm/fault.c >> @@ -292,7 +292,10 @@ void handle_page_fault(struct pt_regs *regs) >>       if (unlikely(access_error(cause, vma))) { >>           vma_end_read(vma); >> -        goto lock_mmap; >> +        count_vm_vma_lock_event(VMA_LOCK_SUCCESS); >> +        tsk->thread.bad_cause = SEGV_ACCERR; > > > I think we should use the cause variable here instead of SEGV_ACCERR, as > bad_cause is a riscv internal status which describes the real fault that > happened. Oh, I see, it is exception causes on riscv, so it should be diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index b3fcf7d67efb..5224f3733802 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -293,8 +293,8 @@ void handle_page_fault(struct pt_regs *regs) if (unlikely(access_error(cause, vma))) { vma_end_read(vma); count_vm_vma_lock_event(VMA_LOCK_SUCCESS); - tsk->thread.bad_cause = SEGV_ACCERR; - bad_area_nosemaphore(regs, code, addr); + tsk->thread.bad_cause = cause; + bad_area_nosemaphore(regs, SEGV_ACCERR, addr); return; } Hi Alex, could you help to check it? Hi Andrew, please help to squash it after Alex ack it. Thanks both. > > Thanks, > > Alex > > >> +        bad_area_nosemaphore(regs, code, addr); >> +        return; >>       } >>       fault = handle_mm_fault(vma, addr, flags | FAULT_FLAG_VMA_LOCK, >> regs);