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 25CD7C4345F for ; Wed, 17 Apr 2024 10:53:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AEFE96B0087; Wed, 17 Apr 2024 06:53:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AA11F6B0088; Wed, 17 Apr 2024 06:53:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 967C16B0089; Wed, 17 Apr 2024 06:53:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 789156B0087 for ; Wed, 17 Apr 2024 06:53:16 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 05BED40AEB for ; Wed, 17 Apr 2024 10:53:16 +0000 (UTC) X-FDA: 82018711992.06.B206BB4 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf08.hostedemail.com (Postfix) with ESMTP id 1D72916000D for ; Wed, 17 Apr 2024 10:53:13 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf08.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713351194; 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=O171MMBToLq4rk4iXXmJ17mGxrA6Imu6S0PZmUprpsI=; b=X1WPQx3EY8nRZcby4Ug1ba4S50cyK6TUUBz3X3NmwiFLVGE52dAibEhNN3xElb887GM1NC /keKbue7C3cJDENmnXNN6uaq8fmbqXD17LfwLrLPWik97w89p2lTeLemF9754pZt4dYVhZ dX87J1P5VzEs0rlLjsTOP5y4jJ7O8e0= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf08.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713351194; a=rsa-sha256; cv=none; b=cn17XY06pCvxYUk40Wmc0/NCtL8YcB11q2FkckjDlvRZJSyFxotMgr43DuAAsP6FEBH3Lk tTga44FsshywJCRvIxJTCK+ieaRQGv1UvogZ1Cyy5PkzmfAa8QPt6zEb+BmM/cFKfo8tZs NYA4jOX5Hx5hxgNQfaDxQQz8/MJLHOY= 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 EDE41339; Wed, 17 Apr 2024 03:53:40 -0700 (PDT) Received: from [10.1.37.181] (XHFQ2J9959.cambridge.arm.com [10.1.37.181]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F02873F64C; Wed, 17 Apr 2024 03:53:10 -0700 (PDT) Message-ID: <39905c50-a228-4e85-a5de-3b10cae5f2bc@arm.com> Date: Wed, 17 Apr 2024 11:53:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v7 1/3] mm/madvise: introduce clear_young_dirty_ptes() batch helper Content-Language: en-GB To: Lance Yang , David Hildenbrand Cc: 21cnbao@gmail.com, akpm@linux-foundation.org, fengwei.yin@intel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mhocko@suse.com, minchan@kernel.org, peterx@redhat.com, shy828301@gmail.com, songmuchun@bytedance.com, wangkefeng.wang@huawei.com, xiehuan09@gmail.com, zokeefe@google.com References: <20240417050426.66194-1-ioworker0@gmail.com> <76d22c08-82db-4ea8-a7cd-c77589e132e3@redhat.com> From: Ryan Roberts In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 1D72916000D X-Stat-Signature: sza8krq4g6d6wcgmu9x9cnfgjsycr5i3 X-HE-Tag: 1713351193-517685 X-HE-Meta: U2FsdGVkX1/UwvjwuBbWslMhm0JzR2hpf0S17PO6AqL5vuMg5COjkW+/kAeBS44x5j5a/EGYebb0xFptxFh/86YPN0m7zvJtP9EdsqOC7Xj/zVkZCzIIsNJbQ8NP6eK83Qh4x2Fd0h0YJUb/QKNwOoM9Tx2wNpAr3vDa81RQaeRhsDGepc1EM75NpbrjDr8BTDn95RO6a3mMpan+LyrGvAlZ+XD+JPq2MOKf9TLP9FkQJg8xVCiVX4dQpBpjKOSAr+J+0Al92FTFDGASRfmkIpuEiDGqKHT2KoS6o9iwZlXk5cD+tnx97FPqbcAgmczRf4V4PMShZIZgo0YFqXvCr9j4aZ04pePcUmUaslK8VDZyLsuRggTLRDkAvvZa4qKL0VxKzquUH4rQUQV8kswQm1eyEymHzJERHxzTRnH8w0ieYTA9rxkv/BXFQvB4lZuT7hVbsxxjUUIsBemPhmfv6yNa1Gglkpis0Q+qT133lIyjvotrSDnhj4OqM3+0qaI3MSrpjZ2d47rT6Sv1wF9zCKcHk78CgP+GZ8kF5HSDYV9bMW0neEeOmweXeAdRmM6u1x6fYOWyFkQa4KkREC+MDX8cX59PdQ//TBn4zGiFIStAwzS/JO1vfmj8mmP7jeTgHMofWCv0I2WjoHsqqjUAjjY2rpDj6Eqn2skqwQpsxYpRTjyl7hLSoGlpE3LSz6QWoQQle0Nv0Mfz+EWe0gU4vOVqmuSQp2mMlaitHW70UsBDz7QZXwE39C8exx1ocNxN1AsaYKbtNHaC+EbcGPQpwtyt75quXNjc9mq8jIDx6rkoL9wmgEKfWPTgF/TWfUfiVgxfCnOVljhKvT88dgxY+54BfVSEUSHoAQrS7tavwIbakty3t3q89TIsWLo9w2o3K+Mqp2OJHBg= 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 17/04/2024 10:01, Lance Yang wrote: > On Wed, Apr 17, 2024 at 4:19 PM David Hildenbrand wrote: >> >> On 17.04.24 07:04, Lance Yang wrote: >>> Hey David, Ryan, >>> >>> How about this change? >>> >>> static inline void clear_young_dirty_ptes(struct vm_area_struct *vma, >>> unsigned long addr, pte_t *ptep, >>> unsigned int nr, cydp_t flags) >>> { >>> if (flags == CYDP_CLEAR_YOUNG) { >>> for (;;) { >>> ptep_test_and_clear_young(vma, addr, ptep); >>> if (--nr == 0) >>> break; >>> ptep++; >>> addr += PAGE_SIZE; >>> } >>> return; >>> } >>> >>> pte_t pte; >>> >>> for (;;) { >>> pte = ptep_get_and_clear(vma->vm_mm, addr, ptep); >>> >>> if (flags & CYDP_CLEAR_YOUNG) >>> pte = pte_mkold(pte); >>> if (flags & CYDP_CLEAR_DIRTY) >>> pte = pte_mkclean(pte); >>> >>> if (--nr == 0) >>> break; >>> ptep++; >>> addr += PAGE_SIZE; >>> } >>> } >> >> Likely it might be best to just KIS for now and leave it as is. The >> compiler should optimize out based on flags already, that's what I ignored. > > Got it. Let's keep it as is for now :) Yep agreed; you're passing the flags as constants so the compiler should be completely removing one half of the conditional. And if the input isn't a constant, I'd still expect the compiler to hoist the conditional out of the loop. > > Thanks, > Lance > >> >> -- >> Cheers, >> >> David / dhildenb >>