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 B1AB3C4708D for ; Wed, 7 Dec 2022 23:33:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 318C38E0003; Wed, 7 Dec 2022 18:33:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2C8E78E0001; Wed, 7 Dec 2022 18:33:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1DE6D8E0003; Wed, 7 Dec 2022 18:33:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 125048E0001 for ; Wed, 7 Dec 2022 18:33:19 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D564BC0E69 for ; Wed, 7 Dec 2022 23:33:18 +0000 (UTC) X-FDA: 80217113676.15.202833A Received: from mail-vs1-f43.google.com (mail-vs1-f43.google.com [209.85.217.43]) by imf16.hostedemail.com (Postfix) with ESMTP id 1EF0D180002 for ; Wed, 7 Dec 2022 23:33:16 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=kqUYXBzX; spf=pass (imf16.hostedemail.com: domain of almasrymina@google.com designates 209.85.217.43 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670455997; 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=caY2y1N7oh+MBX7izGyMu3kfxeaNRPF/jLWflWGryAM=; b=CJ28m1+THnWrd5u0y0aKATBXZttcuf8Q6Kcy9CR1PNKwWFOKjjH9eSzcxg0cGKtS6Jfffk 5sXeb0GGGE4YPZUHXlRXhBGWUlMu7Q1PY0cc4P7GQW68JLhlzhItBCA9GAGwu0F6s10Ym0 aVZiQLhMI21K/7PdAfLRzTzbd7tCAbg= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=kqUYXBzX; spf=pass (imf16.hostedemail.com: domain of almasrymina@google.com designates 209.85.217.43 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670455997; a=rsa-sha256; cv=none; b=Zd7/psqJovIIAFseiRJeVw+xXF8nJOUXghNwBUKmo8w25E4oNctwRWBs7p5/BQOxVJUO7x S866qfe2ubVuYZgS15dE0J44kUqR7Hju9L/USMKbsK5Z1sS0AnzGRQO22SQWgA9gaPYf9W S+AfdRbdA5UAGpJa5CO4M1MBA/6BwfM= Received: by mail-vs1-f43.google.com with SMTP id 3so17920113vsq.7 for ; Wed, 07 Dec 2022 15:33:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=caY2y1N7oh+MBX7izGyMu3kfxeaNRPF/jLWflWGryAM=; b=kqUYXBzX+skKXY7nzHLrrxPYWEiatGlDBHGqfHsfDp7FKPbLxZVFWOIPvt7cgKI2/I oCeZnQp3fXb8ghN/WUDkylq1yXXC5mMHeSdw1EFA2W+pkzEwkF8LkZREvswlEOdFs5GH p5EPgP5hZ7pdSME82EkoVYvu8t7Hrysp9+cmhbh0SkB+nAwjOZc0RTCfSIDP0g7ArJly 7ku+k4QXSGnuYSKHVnfDvJ1t4Za44gjLTJtZswkbOrPwJ8JiKvBwCXBeROcV42fMAr/I qF3ZRFH8mWq1xkboOb45cUyPQfpQdamtUmAiaHcIC0w8YPN87PoUlVVgZeHYK9xtJ+QN Zh5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=caY2y1N7oh+MBX7izGyMu3kfxeaNRPF/jLWflWGryAM=; b=R/Tn64IathMMIhDrq5vcTtrE25Adj7BI97lxRuL50/g68VqBakxWUTWe4pLh+Tn2f3 r6Wf/ADtaFDR5MHIZfw39xNybBvuVu/1oXM1ITG39Vwj6A67U5uWHsy1nFFrGJIfEVaP jeiBm2pz3QONS1w0HNW/HBW5eFtmljmw0KRfSPqaKipvQoOOgisHNUYdzGcL0uDsX4x8 TtMhJmnJ+V969ransAG69OCkcNd8bpG+4bypQVihpek7n5N5h0Ex5U4Cst/6kukuD6MF I0mFlLUFrOEtifcLZY8WONMT86fGA7Oe0efZsTeHzzfm8SzrmG7x1d/eSHXH7zaMAJo9 3lWw== X-Gm-Message-State: ANoB5pmtcdysCgnXYhfKlpykl0DU7cOv7YbR9wakQyzl+JxUkq/vt+pd MalRbzLishapqR33FTILjzwEBchDNm3QtlKnPI8f+A== X-Google-Smtp-Source: AA0mqf51KTJYvFXfsMEAWxTurpzRQ07SVU7sXAGwErCZLvJuMb5Wta+VnWolg7vn3zq1ceyvgNWCvTUiFnlja87W+nA= X-Received: by 2002:a67:ea04:0:b0:3a7:d7bc:c2e9 with SMTP id g4-20020a67ea04000000b003a7d7bcc2e9mr42495328vso.61.1670455996352; Wed, 07 Dec 2022 15:33:16 -0800 (PST) MIME-Version: 1.0 References: <20221021163703.3218176-1-jthoughton@google.com> <20221021163703.3218176-6-jthoughton@google.com> In-Reply-To: <20221021163703.3218176-6-jthoughton@google.com> From: Mina Almasry Date: Wed, 7 Dec 2022 15:33:05 -0800 Message-ID: Subject: Re: [RFC PATCH v2 05/47] hugetlb: make hugetlb_vma_lock_alloc return its failure reason To: James Houghton Cc: Mike Kravetz , Muchun Song , Peter Xu , David Hildenbrand , David Rientjes , Axel Rasmussen , "Zach O'Keefe" , Manish Mishra , Naoya Horiguchi , "Dr . David Alan Gilbert" , "Matthew Wilcox (Oracle)" , Vlastimil Babka , Baolin Wang , Miaohe Lin , Yang Shi , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: nkf5sujmei8adpu9kxqbxbagnxkuhf19 X-Rspam-User: X-Rspamd-Queue-Id: 1EF0D180002 X-Rspamd-Server: rspam06 X-HE-Tag: 1670455996-785571 X-HE-Meta: U2FsdGVkX1+PI80j3WANAVjU/qpqoYaMtOQXwmhFUOL2PUI0JipgwGhAt5bPOiqYxcaBd+50sPCiUQr2jjNDpklV4EVcAW2XcxoLt4S9zLhOeGHUaaf8H7ap7msAdjtKjKeWetSHEoq7huacAxtJmcKVmUY9FZ4DK3aJ1egHgydJr9bIIopJxZJuly9IDw+ZKfevs5WExY21MZtu7DIhyjzEmhl1Brn8DiF8KXXseqDw5lHuIiI9RzlKtdSUfFi75FXbPRYPo03bsUpuwBILBfJSG33K3vAgABUiTCRJpETXro0rBfP8EKDdCdJAiXvfhrgS3y6jipx3JuQkgFP5VXLB7NVP80hLxXvjcErO/Zzye/stHFDDaZbUKPvDeXOmH00Q2DwJyzuKRl+u6625MGU3i+E7+MsCNgqo0AuG+pX1j6eztYbbJ0oIAeSgsv2fqZzVbCbg/I0lMaDIUadTs97gcv5vXD48DYfrVb2y1eH1UPvH21Tnqf0/cxIXoETqqWQFP1toKjrSeRqpQIFNk0dvHYAUjx0s8jxjl3hKSWRoW/k3cUncnTzGu+jh9L88s2S1aNxDEeRKq/aeRJw7frJ857N4z8cbe39+oKfeGGVd09382KVOJiu+6ckBgzIUYWihW24y1/k85kN4jJuBXQBhU0qhB0P9ZF+aCfwcfuJ5baDot48rSn/4p3/enle++jA/lAFPZRyFrWxpjb48MdXKpnwkc6cozp39Cg4qTXUkeOdu+V6s4bbDTo6EAJb4GfHlt9+S5J5Ms2F5LWOxogsU+ru8n6gQtdUiu+AH1PptDOYEKHIe2drZxP6DYO6imoc52KybECwe4aW9r+Nmze+cBeib6qODVS0lbase/6F76sXE5ImsWfBwNZ4pz9bQjnI3cbTpQ3kq9gUtak3XkGtwSgDFZYA8MqaFbo2ioP0qK+0LkVay6wvOTuay/0dTEGnoFLW6X5RSgKSG5L6 qL1PQTOp oVjoc8Du6eDgiKT/HdAFbARK2HAssZZ2xOi5ltDM8cY1uCnggVupJrKjBXA== 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: On Fri, Oct 21, 2022 at 9:37 AM James Houghton wrote: > > Currently hugetlb_vma_lock_alloc doesn't return anything, as there is no > need: if it fails, PMD sharing won't be enabled. However, HGM requires > that the VMA lock exists, so we need to verify that > hugetlb_vma_lock_alloc actually succeeded. If hugetlb_vma_lock_alloc > fails, then we can pass that up to the caller that is attempting to > enable HGM. > > Signed-off-by: James Houghton > --- > mm/hugetlb.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 52cec5b0789e..dc82256b89dd 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -92,7 +92,7 @@ struct mutex *hugetlb_fault_mutex_table ____cacheline_aligned_in_smp; > /* Forward declaration */ > static int hugetlb_acct_memory(struct hstate *h, long delta); > static void hugetlb_vma_lock_free(struct vm_area_struct *vma); > -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma); > +static int hugetlb_vma_lock_alloc(struct vm_area_struct *vma); > static void __hugetlb_vma_unlock_write_free(struct vm_area_struct *vma); > > static inline bool subpool_is_free(struct hugepage_subpool *spool) > @@ -7001,17 +7001,17 @@ static void hugetlb_vma_lock_free(struct vm_area_struct *vma) > } > } > > -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma) > +static int hugetlb_vma_lock_alloc(struct vm_area_struct *vma) > { > struct hugetlb_vma_lock *vma_lock; > > /* Only establish in (flags) sharable vmas */ > if (!vma || !(vma->vm_flags & VM_MAYSHARE)) > - return; > + return -EINVAL; > > - /* Should never get here with non-NULL vm_private_data */ > + /* We've already allocated the lock. */ > if (vma->vm_private_data) > - return; > + return 0; I would have expected -EEXIST here. Also even if the patch looks generally fine it's hard to provide Acked-by now. I need to look at the call site which is in another patch in the series. If there is an opportunity to squash changes to helpers and their call sites please do. > > vma_lock = kmalloc(sizeof(*vma_lock), GFP_KERNEL); > if (!vma_lock) { > @@ -7026,13 +7026,14 @@ static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma) > * allocation failure. > */ > pr_warn_once("HugeTLB: unable to allocate vma specific lock\n"); > - return; > + return -ENOMEM; > } > > kref_init(&vma_lock->refs); > init_rwsem(&vma_lock->rw_sema); > vma_lock->vma = vma; > vma->vm_private_data = vma_lock; > + return 0; > } > > /* > @@ -7160,8 +7161,9 @@ static void hugetlb_vma_lock_free(struct vm_area_struct *vma) > { > } > > -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma) > +static int hugetlb_vma_lock_alloc(struct vm_area_struct *vma) > { > + return 0; > } > > pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma, > -- > 2.38.0.135.g90850a2211-goog >