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 7A208C4332F for ; Fri, 18 Nov 2022 20:16:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BA6346B0074; Fri, 18 Nov 2022 15:16:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B56666B0075; Fri, 18 Nov 2022 15:16:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A6C1A8E0001; Fri, 18 Nov 2022 15:16:37 -0500 (EST) 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 983186B0074 for ; Fri, 18 Nov 2022 15:16:37 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 679121403B3 for ; Fri, 18 Nov 2022 20:16:37 +0000 (UTC) X-FDA: 80147670834.17.83F7751 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by imf16.hostedemail.com (Postfix) with ESMTP id B082B18000C for ; Fri, 18 Nov 2022 20:16:36 +0000 (UTC) Received: from [192.168.10.28] (unknown [39.46.5.142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: usama.anjum) by madras.collabora.co.uk (Postfix) with ESMTPSA id 847C56602A03; Fri, 18 Nov 2022 20:16:31 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1668802594; bh=TSwxHSQBbkuzfXNvA6Zh6Vo8JX+fo2F06/ARbcL6rXs=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=k1J5LHCdWvwMWsDdLUDxxETULJBgP8mYDOZRVancMsCHtccJl4JqMtgOX1rw6slqa fvCCqYbxU2YfcdkE/bFAJ4R8kICQi5dRkS24i/m1pltx5BPT4STyJaj6CP3D/4URbx ggo+T7nON06FiwkspEtHXjnG/CInjMdsTmR/UXf1qNpauLRvu7scWEhyQiCnkPtkcH fcO1Y6QCZP1F3TejpypgmN0N61vo19xWFzX5V7X5+dwUnAvO+ieu5LJsCwkI6Cxnyi s1pSg6PIBb/5AFXyukQsYVLijxqY/R+SPS2EwBtnI8PXpdjUDDu5xI8QfIJGM+1Fg8 lRfYQpnNk+vMQ== Message-ID: Date: Sat, 19 Nov 2022 01:16:26 +0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Cc: Muhammad Usama Anjum , Nadav Amit , Andrea Arcangeli , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v4 1/3] mm/mprotect: Fix soft-dirty check in can_change_pte_writable() Content-Language: en-US To: Peter Xu , David Hildenbrand References: <20220725142048.30450-1-peterx@redhat.com> <20220725142048.30450-2-peterx@redhat.com> From: Muhammad Usama Anjum In-Reply-To: <20220725142048.30450-2-peterx@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1668802597; a=rsa-sha256; cv=none; b=h4xvgODYEREuZcajIfpn1QB0YPDtqbYEph6cFDMd3Zj5zjcyd3zQCMz1byaWFl1sl+qnhJ RNytOclagKLvhO5HpUJZqNrC4Gy2rowGjlIRc1+NAVw45nm89rwNjgHqGWKTcLRuOC8XP8 aqbSA96jnWm3xSntRFyozvfPKuwzDMA= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=k1J5LHCd; dmarc=pass (policy=none) header.from=collabora.com; spf=pass (imf16.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1668802597; 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=++Tnkbp/GqNt+ZeZ45rpi51RxfgYLRAaRMQRnT8qU/c=; b=I65Z8aIESBmmDQD5Iyal1N4SSerCCX3cdtJAo4x1cWZcGsbd71GJG0TYETz8bV3KBH34OI BM1hu4j6lfBJ4L7Mqkba5c07xJZgvyeuFuDPWX+pL9Prvx3hJXGTwkgC1ZufL0PdnXdYKI OqASvxyqafsyPUrOLw7qCp+OIQ2OW8U= Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=k1J5LHCd; dmarc=pass (policy=none) header.from=collabora.com; spf=pass (imf16.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com X-Rspam-User: X-Stat-Signature: npx3q66mn4phkzhxgrdm188zi5ogrtyo X-Rspamd-Queue-Id: B082B18000C X-Rspamd-Server: rspam11 X-HE-Tag: 1668802596-549558 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000037, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Peter and David, On 7/25/22 7:20 PM, Peter Xu wrote: > The check wanted to make sure when soft-dirty tracking is enabled we won't > grant write bit by accident, as a page fault is needed for dirty tracking. > The intention is correct but we didn't check it right because VM_SOFTDIRTY > set actually means soft-dirty tracking disabled. Fix it. [...] > +static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma) > +{ > + /* > + * NOTE: we must check this before VM_SOFTDIRTY on soft-dirty > + * enablements, because when without soft-dirty being compiled in, > + * VM_SOFTDIRTY is defined as 0x0, then !(vm_flags & VM_SOFTDIRTY) > + * will be constantly true. > + */ > + if (!IS_ENABLED(CONFIG_MEM_SOFT_DIRTY)) > + return false; > + > + /* > + * Soft-dirty is kind of special: its tracking is enabled when the > + * vma flags not set. > + */ > + return !(vma->vm_flags & VM_SOFTDIRTY); > +} I'm sorry. I'm unable to understand the inversion here. > its tracking is enabled when the vma flags not set. VM_SOFTDIRTY is set on the VMA when new VMA is allocated to mark is soft-dirty. When we write to clear_refs to clear soft-dirty bit, VM_SOFTDIRTY is cleared from the VMA as well. Then why do you say tracking is enabled when the vma flags not set? I'm missing some obvious thing. Maybe the meaning of tracking is to see if VM_SOFTDIRTY needs to be set. If VM_SOFTDIRTY is already set, tracking isn't needed. Can you give an example here? -- BR, Muhammad Usama Anjum