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 D1898D2E9C3 for ; Mon, 11 Nov 2024 09:19:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 679466B0088; Mon, 11 Nov 2024 04:19:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 629696B0089; Mon, 11 Nov 2024 04:19:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4CB5D6B008C; Mon, 11 Nov 2024 04:19:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2E6976B0088 for ; Mon, 11 Nov 2024 04:19:37 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D15A91C7436 for ; Mon, 11 Nov 2024 09:19:36 +0000 (UTC) X-FDA: 82773264546.19.B988268 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf28.hostedemail.com (Postfix) with ESMTP id 91597C0008 for ; Mon, 11 Nov 2024 09:18:53 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xb3YGT3+; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=NkTbxvYn; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xb3YGT3+; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=NkTbxvYn; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf28.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731316600; a=rsa-sha256; cv=none; b=2KKmNGzhDWwi5tiJAnIbFHIWdoUiwfgWeR1g7e5MT/0Y4jQ1gfWgu64QJWUPHtUQfTni56 qdVgiBGhLfdnDO2EImmEtax/jVyfO8CsBmzGTq9iCnhGNEOAJk/jjXyuTOs5w4EIAPKniP l/hKznAmpgr8woBS9JRTK2mJ0A9qt6M= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xb3YGT3+; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=NkTbxvYn; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xb3YGT3+; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=NkTbxvYn; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf28.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731316600; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VZpFZqEeNUo0RNOS01WLG212re3rhrvrASd53kvI70g=; b=2CKShRFlPl8gKKiqxhedERo9Mq/Ysln0jXP9l86lL6HgjjbPctneT6fHd8tFpUz3nVUonu w7s69Scm37bm6HPOi5PNOh03gIKABRhtw9UizMAryQXt/YyxBinGVzXsQtHe1GJGuC/1/3 rV0Mijf4Ydt7cTmaeqe0LK6Ws4maByw= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 012DF219AE; Mon, 11 Nov 2024 09:19:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1731316773; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=VZpFZqEeNUo0RNOS01WLG212re3rhrvrASd53kvI70g=; b=xb3YGT3+fOoqCtaVa8cXlmSqv1SOpgQT9G094A4H47Cjv7N4Jq0p6UMsKo4nL1DZaYl+ZF HLCV5gLQnWGxgM3gw6sR+QB0XGNjZ2AaSuP5i8voyU0yTmvtRqGElZ08pyHQQejx3jsxQi FVSjMw5FA2B4YE02ZHr14HxxIJfBKV4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1731316773; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=VZpFZqEeNUo0RNOS01WLG212re3rhrvrASd53kvI70g=; b=NkTbxvYnYFRu4Sx1Cf2htZWNk543Nce/EerOmsqL7DDGYCRn/X6N9mn+TT22+cO2Mb2HWA mbbkFYCK/O9tO5Aw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1731316773; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=VZpFZqEeNUo0RNOS01WLG212re3rhrvrASd53kvI70g=; b=xb3YGT3+fOoqCtaVa8cXlmSqv1SOpgQT9G094A4H47Cjv7N4Jq0p6UMsKo4nL1DZaYl+ZF HLCV5gLQnWGxgM3gw6sR+QB0XGNjZ2AaSuP5i8voyU0yTmvtRqGElZ08pyHQQejx3jsxQi FVSjMw5FA2B4YE02ZHr14HxxIJfBKV4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1731316773; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=VZpFZqEeNUo0RNOS01WLG212re3rhrvrASd53kvI70g=; b=NkTbxvYnYFRu4Sx1Cf2htZWNk543Nce/EerOmsqL7DDGYCRn/X6N9mn+TT22+cO2Mb2HWA mbbkFYCK/O9tO5Aw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B6C40137FB; Mon, 11 Nov 2024 09:19:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id XH3rKSPMMWejAQAAD6G6ig (envelope-from ); Mon, 11 Nov 2024 09:19:31 +0000 Date: Mon, 11 Nov 2024 10:19:26 +0100 From: Oscar Salvador To: Peter Xu Cc: Ackerley Tng , muchun.song@linux.dev, akpm@linux-foundation.org, rientjes@google.com, fvdl@google.com, jthoughton@google.com, david@redhat.com, isaku.yamahata@intel.com, zhiquan1.li@intel.com, fan.du@intel.com, jun.miao@intel.com, tabba@google.com, quic_eberman@quicinc.com, roypat@amazon.co.uk, jgg@nvidia.com, jhubbard@nvidia.com, seanjc@google.com, pbonzini@redhat.com, erdemaktas@google.com, vannapurve@google.com, pgonda@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [RFC PATCH 2/3] mm: hugetlb: Refactor vma_has_reserves() to should_use_hstate_resv() Message-ID: References: <3d1946d01f63104de913c0979b5a596e2add1672.1728684491.git.ackerleytng@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Action: no action X-Stat-Signature: zt4ian188hqhcuze99c6cnfnnzdgkqin X-Rspamd-Queue-Id: 91597C0008 X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1731316733-664234 X-HE-Meta: U2FsdGVkX189GWNNqj96p1VOeLMNPXoSMhQLO/F0oSMHQI6AVap3i4e4GhCBfe0ckl79r/l86yZVsLzgHOl1saW92H0cIrs02u+/AtQ9tpu5QLDFxejjnmUi1JwfyMSOtBWTBl3C6CmHX3YyTJwWQrZGPi+gmIXyP94OdTLoBR0WrgnlVlUMqDKdUlh9G63Q91aGR6W3cL7qNhgvA+5aLJIbe+OaENuSwQOkAUI48PhAfvheyyBDrPmOZQ+/YRIsdZLFrzXJLepxSWVhud/gHJpKiREJl0sdHp9whEB4HUhF8CSghkIx5VK6elpwzvrN3/TyerK1o8+33pTTsjeaY2vKmAM3omhtlhY3W4M6ORMRT1eLRjS5k6UNx+sucgPheBQZ+pYN1HsFsd9Z9VkLgAtnO7m/YmayjMcg74f1Nr01QoGsRfjxPMf5hvCLNkQ9sCcaozO6CkdANvSj48+49YkWMg2AoklWgk/hZYPXfiQEPrF4YB9I/BIOKHQvq9SJtXDCK4Jgo4C5uPMU76a691HMtOkDCh5F0GsYYQlOjViaXE1HSlOz9a/SEBdmVZ0EOT1FnmNqDx8w2HGasr82d9icAXAn+aG3Cp56Fr6/W16nrjinrkp2RuGZMYgxUkJJnQ/1631VQYY9g5LZyiyJ7me6GvdpYMJF9zxtamTWMgY9t9mr3el8vphIeG0U8RG17OO11vbxgDJF18rdgRQ0q2VyhwJ+L+M+10JDG4BFiR3jD/ayAw8Acydfral42AaWMcIth++2WHE2SZJy4hTv/BqPbU+HrCIw7ufxeeYobzVKcyAALRjLrte4vnNK4YJO8ynUEYXQmXqV0LAx0L4bVz3bYsqAf3SuCmmq9VYIzshrM3yFejdy12GfgaIIJ4UEr4mNo4lwS1/zYPdoma2FoFqjqoeskkM6g7qY6KXPbY4G1l9vnFDWWEemfPlUk24PnpOD4tZdnP/9dOK45OD sHsjIGSS XdYKF65eU+ANllCgejw+KblDFLxFftAtQYvj2VP4X3Ca0jMbqz1RyaOYe6Ee1yzjWoDsNosbzX+pDRH2CgNo2u1/EjItfU5z9HD/CXVsUMIU8ndosdaN1u5kLpcH1gGr2NTPSIalbkuH646NnzHcRDl1huVi+g3E5etKvs/E3ErjS1x2UtiKvlZaaXazagPCDTdrVO1rBMcK0r/g60bWxWrQf7VraNOhJXIq+WLxxbpLScZ5d9RXxcZTUXKAe5ugntmtc2/j24mKsghm8cVCclGeg0N3Yl4VrQU2O7T9KW2SMhPDtd/khRT8rbw== 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 Tue, Nov 05, 2024 at 01:46:39PM -0500, Peter Xu wrote: > I wonder if this patch could be merged with the 3rd, IIUC this can > fundamentally be seen as a movement of what patch 3 was removed. I think it makes sense to merge it, yes. > Furthermore, I do feel like should_use_hstate_resv() could be redundant on > its own on many things. ... > Then let's look at chg==0 processing all above: what does it say? I > suppose it means "we don't need another global reservation". It means if > chg==0 we always will use an existing reservation. From math POV it also > is true, so it can already be moved out ahead, IIUC, like this: > > static bool should_use_hstate_resv(struct vm_area_struct *vma, long chg, > bool avoid_reserve) > { > if (avoid_reserve) > return false; > > if (chg == 0) > return true; > > if (vma->vm_flags & VM_NORESERVE) > return false; > > if (vma->vm_flags & VM_MAYSHARE) > return false; > > if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) > return false; > > return false; <--------------------- [1] > } > > Move on. If I read it right, above [1] is exactly for avoid_reserve==1 > case, where it basically says "it's !NORESERVE, private, and it's not the > vma resv owner, either fork() or CoW". If my reading is correct, it means > after your patch 2, [1] should never be reachable at all.. I would hope > adding a panic() right above would be ok. > > And irrelevant of whether my understanding is correct.. math-wise above is > also already the same as: > > static bool should_use_hstate_resv(struct vm_area_struct *vma, long chg, > bool avoid_reserve) > { > if (avoid_reserve) > return false; > > if (chg == 0) > return true; > > return false; > } I have been looking into this because hugetlb reservations always make me uneasy, but I think you are right. CoW and fork both set avoid_reserve to 1, copy_hugetlb_range ... alloc_hugetlb_folio(dst_vma, addr, 1) hugetlb_wp outside_reserve = 1 alloc_hugetlb_folio(..., outside_reserve) So I think you are right and this can be simplified. I would not add a panic though, maybe some kind of warning (VM_DEBUG?). -- Oscar Salvador SUSE Labs