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 84457CD128A for ; Thu, 11 Apr 2024 11:11:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 071B06B0085; Thu, 11 Apr 2024 07:11:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0216C6B0092; Thu, 11 Apr 2024 07:11:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E2B2C6B0095; Thu, 11 Apr 2024 07:11:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C40116B008A for ; Thu, 11 Apr 2024 07:11:55 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5B7A6160B65 for ; Thu, 11 Apr 2024 11:11:55 +0000 (UTC) X-FDA: 81996986190.25.1260270 Received: from szxga06-in.huawei.com (szxga06-in.huawei.com [45.249.212.32]) by imf06.hostedemail.com (Postfix) with ESMTP id 46772180002 for ; Thu, 11 Apr 2024 11:11:51 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf06.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.32 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=1712833913; 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=8rK6C+cb9A2ImvXEShOUjArrx85/7D7TC/H1jrKiHpU=; b=ktplPy5pkjelcWcxBWHs+r4LbjSglq9LMxZNSThvut+SJgijo7/uCPFfoeVT+/K80JIy8E Ih/ChbqPUowpU7hw6IVk6p2W7G176pUSXP1ABp6wmpZ0snR6z6OL17Sa8vid5fgPvjJ7tj 79LoQZG1qJAySVxLAh0ydxA5BKVaNlQ= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf06.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.32 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712833913; a=rsa-sha256; cv=none; b=Yt+UU2NhHwjgW6aYyNyAmYbgh1FWlV3/ptDm/Q5w+MRcE8ciAGsY5ztnM4Ch1JeQIVRHfS E65KoYUUwH+8EuGg+4F9hFSdsFaH3zvY//ZCKZ2sEP2EZ6KRyOedNW97kOu/UAB+V0Zupm WDdHu6KE+I1+KLufKs78OZ3SwR0zUSk= Received: from mail.maildlp.com (unknown [172.19.162.112]) by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4VFcSV49xbz1wr6j; Thu, 11 Apr 2024 19:10:50 +0800 (CST) Received: from dggpemm100001.china.huawei.com (unknown [7.185.36.93]) by mail.maildlp.com (Postfix) with ESMTPS id 77E221400D9; Thu, 11 Apr 2024 19:11:46 +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; Thu, 11 Apr 2024 19:11:46 +0800 Message-ID: <9946fd84-7e1c-45c1-8249-36890903760f@huawei.com> Date: Thu, 11 Apr 2024 19:11:45 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] arm64: mm: drop VM_FAULT_BADMAP/VM_FAULT_BADACCESS Content-Language: en-US To: Catalin Marinas CC: Andrew Morton , Russell King , Will Deacon , , References: <20240407081211.2292362-1-wangkefeng.wang@huawei.com> <20240407081211.2292362-2-wangkefeng.wang@huawei.com> From: Kefeng Wang In-Reply-To: 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: 46772180002 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 55sx33fsuq84yebxhqj9aybhhune7m5k X-HE-Tag: 1712833911-40888 X-HE-Meta: U2FsdGVkX18XsTsab9TRLDoTO0GYUTqRw+Kq/R1aW48oKD+l5r1n5j+rELBxiexVwMfG/n1cuSpmDNo7rbfGvN0IClNnAE7Ro7umSUhBBGHXp3TYH27rMpZZ8ogNln+/Q6QaOdsKKnKIr+EYk3RDyJIkHC+oxk8qGD8lTEVrPc1h2w/jLjysOVMst39oSoErcCO7AbBfSz7gE3wFt7ZOwfuWM7+jRUJa20Nzp/gZalqsRuxXPem48Ey7jH/5e7XeRx9k70jJ5V2eSYthv+O5cUrVQtGD5ChAc3pABFGjJMT4R119uQDjRrzCqDP20S11/fHaLXflN7bfpI4fn0awrGGP/93G3alqJ3WOaLKamhDmVUEZfKcOG4XBMlg9wk73UATrzY1qwUUKCkWfc0qEu28edeAb2scat/Rll8jkf9d+DW3XiPyFk9M2/KPledjWPDnxSuZRDNrR4LEidEjq7tj26C/9W85oJFKs4v8fpxxtdRlPo49iDYsX7ct0aD975aHzw+W0asYwywHNb9FXFf5xjXiznvm3e+nYAJtkjzxJCtT6WYuk9ZqIo4D2/dGdx0n7b13j+7Fov9gYN8B3kuNYZWlS4cm647g3C7w/V+1edTCE8oLtRRXgVHsczpRbXCaoB3E/sn1geYxEk8yemVC+tl3Jfu2T4fnKLNYEwavZowmhBjiKaCMqZr48RkRNstrsmnHlljUv5t/LSayiWarT0pCTJD82b+7nmM+YVYRWD0+dNFs2yjeTNLIgaayIiKlXtebwQkFdFfreIlesslLlu/sOu4HKpPnEyUeWa2+5B8POtmhhEGurxYos1EZitR1owL+wD7YY2/51J+D/iRtOYJ63RB1K2HC0QLcwWCXQE6Ar55yKxfnC6kfT507Tm/OhioIcD2/SR1ADENh8NxxUvd8MtAD2VMy76sMdsk5gjywTxw+3U4j34MCBXSwkNWfiIsM4I5bP26DRj3z GGbm84mx T3ayfB3nURN/FQANCVX6zns3yuUiVn3p3SuTy1WLJohL2h9yqDoYYbY+wm8uyzmSLJLl5bMhEOsStaQTTvHn4ZdkGvfftI00x1YWVA+BQcrJ0zRPa+zBHT2gdb4ZA5e9slLM9ZlOQ09J6JciHGlj1exjtqukxmg6nCPswD07xdvzDuh1JGcbTQAfLoySatmkzzJOVUPVNJP/4wvv8BmRCEpe0GsbCnY2JVVr5SN8fA/9vCLs= 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/11 17:59, Catalin Marinas wrote: > On Wed, Apr 10, 2024 at 06:58:27PM +0800, Kefeng Wang wrote: >> On 2024/4/10 9:30, Kefeng Wang wrote: >>> On 2024/4/9 22:28, Catalin Marinas wrote: >>>> On Sun, Apr 07, 2024 at 04:12:10PM +0800, Kefeng Wang wrote: >>>>> diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c >>>>> index 405f9aa831bd..61a2acae0dca 100644 >>>>> --- a/arch/arm64/mm/fault.c >>>>> +++ b/arch/arm64/mm/fault.c >>>>> @@ -500,9 +500,6 @@ static bool is_write_abort(unsigned long esr) >>>>>       return (esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM); >>>>>   } >>>>> -#define VM_FAULT_BADMAP        ((__force vm_fault_t)0x010000) >>>>> -#define VM_FAULT_BADACCESS    ((__force vm_fault_t)0x020000) >>>>> - >>>>>   static int __kprobes do_page_fault(unsigned long far, unsigned >>>>> long esr, >>>>>                      struct pt_regs *regs) >>>>>   { >>>>> @@ -513,6 +510,7 @@ static int __kprobes do_page_fault(unsigned >>>>> long far, unsigned long esr, >>>>>       unsigned int mm_flags = FAULT_FLAG_DEFAULT; >>>>>       unsigned long addr = untagged_addr(far); >>>>>       struct vm_area_struct *vma; >>>>> +    int si_code; >>>> >>>> I think we should initialise this to 0. Currently all paths seem to set >>>> si_code to something meaningful but I'm not sure the last 'else' close >>>> in this patch is guaranteed to always cover exactly those earlier code >>>> paths updating si_code. I'm not talking about the 'goto bad_area' paths >>>> since they set 'fault' to 0 but the fall through after the second (under >>>> the mm lock) handle_mm_fault(). > [...] >>>>> +    fault = handle_mm_fault(vma, addr, mm_flags, regs); >>>>>       /* Quick path to respond to signals */ >>>>>       if (fault_signal_pending(fault, regs)) { >>>>>           if (!user_mode(regs)) >>>>> @@ -626,13 +628,11 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, >>>>>       mmap_read_unlock(mm); >>>>>   done: >>>>> -    /* >>>>> -     * Handle the "normal" (no error) case first. >>>>> -     */ >>>>> -    if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP | >>>>> -                  VM_FAULT_BADACCESS)))) >>>>> +    /* Handle the "normal" (no error) case first. */ >>>>> +    if (likely(!(fault & VM_FAULT_ERROR))) >>>>>           return 0; >> >> Another choice, we set si_code = SEGV_MAPERR here, since normal >> pagefault don't use si_code, only the error patch need to initialize. > > Yes, I think initialising it here would be fine. That's the fall-through > case I was concerned about. All the other goto bad_area places already > initialise si_code. > Thanks for your confirm, will send v2 soon.