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 49265C3DA7A for ; Thu, 5 Jan 2023 10:19:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B196C940015; Thu, 5 Jan 2023 05:19:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AC85B940008; Thu, 5 Jan 2023 05:19:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 98F5B940015; Thu, 5 Jan 2023 05:19:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 87704940008 for ; Thu, 5 Jan 2023 05:19:32 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5F3381608EE for ; Thu, 5 Jan 2023 10:19:32 +0000 (UTC) X-FDA: 80320348584.15.59421E4 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf08.hostedemail.com (Postfix) with ESMTP id CE629160007 for ; Thu, 5 Jan 2023 10:19:30 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=R0e0fs1q; spf=pass (imf08.hostedemail.com: domain of 3MqS2YwoKCHkgqelrdeqlkdlldib.Zljifkru-jjhsXZh.lod@flex--jthoughton.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3MqS2YwoKCHkgqelrdeqlkdlldib.Zljifkru-jjhsXZh.lod@flex--jthoughton.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672913970; a=rsa-sha256; cv=none; b=gsb4gJ5nu6BH083+YVkEQxUrTAMONIEo0Mc4lmVPiv39xSGDE1n+GPVWG+mqYwBunVrpBy deqDE21hoSi363R3NY5cea3f4AeB7QgoL8KNzw5z0F4av4ZU6FMn/rDVUZa0cN/r+ki9eI rtH+BcCvb7IO+pTXFnbMNR+Pc35aByI= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=R0e0fs1q; spf=pass (imf08.hostedemail.com: domain of 3MqS2YwoKCHkgqelrdeqlkdlldib.Zljifkru-jjhsXZh.lod@flex--jthoughton.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3MqS2YwoKCHkgqelrdeqlkdlldib.Zljifkru-jjhsXZh.lod@flex--jthoughton.bounces.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=1672913970; 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=NiUhznaM6wSBHvFTCRNfcVBZtE9H57LW0vfZq/kiKq4=; b=PEQETR1Q13lY7qTFtNh9UATfllHyaKijak4MRf5c6stRRs/NoEDuzgpCgMXGjwp/H4cUGs bvJn5Eft9iLoY7lHRswO+O78ik5XZH2roUI2bk7nmg/C1SbJPJcThXW+xDZrLZnV+aV7je Fm7t9rXbS3x8LZL8Rnv3b49ENJ1MU8Q= Received: by mail-yb1-f202.google.com with SMTP id n190-20020a25dac7000000b007447d7a25e4so35872535ybf.9 for ; Thu, 05 Jan 2023 02:19:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=NiUhznaM6wSBHvFTCRNfcVBZtE9H57LW0vfZq/kiKq4=; b=R0e0fs1qHnnMIp3WQSIqsS/oYtW5o+Yj7Qa36R5hH23w7ZdGxSpC7WlTWoe3UlQfRD dGgTxvzDN/xImPp7YvQkVKm27XaeHjtfDYvAANhaT1tIjTWlY7bJyEtqoyb0eUUUqrU8 QXro3ShToMB2A8M5U7Ys2rZi65CcMRN/fFJOZAG6TsQBgyFYz/TZFDkv9hIUQiwwQiem r9xHbnsfSv7cyl5PTzK6aFGrR3WmNbvqetolrPlO4hROQfy+iN7qwrrmjuqcIxUxBVSJ t16F0RLTvqQFbGkRUXJ/5oh9tgpANRdg+EBmcNIs00ZH4Psbt9wmtDm5WNvKRja9aVfR jqgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NiUhznaM6wSBHvFTCRNfcVBZtE9H57LW0vfZq/kiKq4=; b=H7JR11nxSDck4bud4VzdaGlKcdkMnx9qJI7UpqMeye3RE9iYpHyBmbxWb87YCIpkHA KfK7akIy7Bq5uZy9TjNlK9DHZAONxoIgg2awDjgEO1L1G0SpcOC7Hs9XqNyv4js010uz 5ttC5sC7K5YSLw5QaPcLndUMsilZ+HSzzRVZOjwsgBl+zwD5IchZ3kWqlqaMk+l5Q9lB VV3fXY+j7alufOttBeetczExkUpYU4tnF0gw5JEIT3rauLxf3PeOGmpizngr5iXxAnvH W7rlI6+jbc8UJynKeZJcO/j/ZON4PRwNqMCINoD+IV6blF9o/GAreBiryBofl38fNzmx Ac8w== X-Gm-Message-State: AFqh2kqIjGD66um36nOegjg3vMZ6yPKFlPHbrsEZ90jJSGYtzQ3FdM5F FnvbFsRh0DZIUIKHn0BlvJ126q6j737DfhRE X-Google-Smtp-Source: AMrXdXs97hJ5UkX9w2wjCZam/ryTvIgotSl/r0iqjglatCp7QBztYQWA8nmijVJuzbrdnXpFOYzs+TfhnvrDByvB X-Received: from jthoughton.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:2a4f]) (user=jthoughton job=sendgmr) by 2002:a25:cf02:0:b0:7b4:fa63:5519 with SMTP id f2-20020a25cf02000000b007b4fa635519mr198616ybg.270.1672913970030; Thu, 05 Jan 2023 02:19:30 -0800 (PST) Date: Thu, 5 Jan 2023 10:18:22 +0000 In-Reply-To: <20230105101844.1893104-1-jthoughton@google.com> Mime-Version: 1.0 References: <20230105101844.1893104-1-jthoughton@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230105101844.1893104-25-jthoughton@google.com> Subject: [PATCH 24/46] rmap: update hugetlb lock comment for HGM From: James Houghton To: Mike Kravetz , Muchun Song , Peter Xu Cc: David Hildenbrand , David Rientjes , Axel Rasmussen , Mina Almasry , "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, James Houghton Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: CE629160007 X-Rspamd-Server: rspam01 X-Stat-Signature: pqzhabq84eawafr3o5btj6cgowrnuf36 X-HE-Tag: 1672913970-518916 X-HE-Meta: U2FsdGVkX18BLTxjUm+wfJpwtjWe/yqAlqfAHer9grxEOmaxTefxGtjYpd6OGN9HL2E6MFLZJsp8j42D698bytPjpFK1zpT4mzHpz5GbEgVehvPREiix7+RwuNccxzIuhQZQTCdFyWWwmE2sPd/py1Iyoq7YmRjb/uCRfSlqmzBreo1JUrhgGoiyYI4W8CrD/DFoMLG5ARyiptIrP03ppsHq/yfGZSdLLGRNej/Caii3FqKsTl8DaEhsXRCXNc+lt/Ht6HnzPBxnr8ColIMKjnVstd94086cYagZxgHL5kV8ilsmZMWuFO00Rhzh90o5boxsHuIKUd8Dij1eubrFAAJ0wg2P1/7HQ4E/C2mBjynA/Lu6Uq7DnuFgSxLTJPQ4RIhbrY/FQl7OtH6nGHPhaBvHmqeeRdCzn4tr2AbB1wJJe2/tv6Y3pu8+CjolVBEgXzSga+M7VEAbXQIoGGo96PDDAHB4gJ0uEQ75ZnBUTLpmQ6hVAJztoCtHXe0shyWfe20Osf92b8uU2B9DdvzaPGrfMQIqH0XSRJBKwCefymuTtcOj1xMAw30OZuin3pXR/pFVdHCjMMJjwtPWmbB+KsPvp27y1d5K3VRVMXWyt6lW6lG0KI1cOPH2k/sPjfKWBCrg1g3wQKyJHhb18LLRY/hCbwl/mnxb70nG2BH6Iw7K74KLPGa1pxcLbBSBTQV0sq69gQqYnugK0yuODBWTYfd6KoOgTc68zUz8XrCCPM4gcUjxxs63FsYJdK3byxrbQfItjrQ8AO9kkJlMzG/p35QXU7kY/+vnUH/I5ZpXc+Ucqar3yyuQ/bf2eYDOrdoU1SU2B5xtVZuNMoTjvkCLvqBG69gbcZA5MEEzF3ry599uuaIdG82wsPVdtx9C+ZZdOZ40soHRW6d8YnM8frh0tWxvFGpa8bSD4lSIVdoQm3gouCyWB4a1M1gpld8HTrDvtObZvTo9RGaK1PAuW6r 7Hm39M1Y jjD6tyh/JfYDO5t95buW0oaVL1KPLABVrUhGEIsPMBaCcpinE7bocXuvXoNduPekhCp8q3V72+e64w9WmbMhDv83p11scB6tCLdf9iRZ9bufAUx1UpgNpR0GDVdzFdexUP31TJRfayRuMotZHS4qRK+lwwFh4YtXaPEvNkOduLdirUpJuFMlp1u9n81c2vcfIOTwOQZ0qsgDDVYWHW7fLC1nazYEHQU8D6LyYCWPL62DZxjR8xP3gJEbek6NSR9yfVKomqvXa2TPYgDLYtXdiXltF34fbVTOw5jMDwjKvB553K+nwjjgDLFIO1033Hiaqt2+vqr3f3LZlzy9TF3knuSnJI29h1IRbEh9xUv+mKYX1uyvJnTncqPMccCdeMnX4lcLr2LQ6qkz+jWQ= 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: The VMA lock is used to prevent high-granularity HugeTLB mappings from being collapsed while other threads are doing high-granularity page table walks. Signed-off-by: James Houghton --- include/linux/hugetlb.h | 12 ++++++++++++ mm/rmap.c | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index b7cf45535d64..daf993fdbc38 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -156,6 +156,18 @@ struct file_region { #endif }; +/* + * The HugeTLB VMA lock is used to synchronize HugeTLB page table walks. + * Right now, it is only used for VM_SHARED mappings. + * - The read lock is held when we want to stabilize mappings (prevent PMD + * unsharing or MADV_COLLAPSE for high-granularity mappings). + * - The write lock is held when we want to free mappings (PMD unsharing and + * MADV_COLLAPSE for high-granularity mappings). + * + * Note: For PMD unsharing and MADV_COLLAPSE, the i_mmap_rwsem is held for + * writing as well, so page table walkers will also be safe if they hold + * i_mmap_rwsem for at least reading. See hugetlb_walk() for more information. + */ struct hugetlb_vma_lock { struct kref refs; struct rw_semaphore rw_sema; diff --git a/mm/rmap.c b/mm/rmap.c index ff7e6c770b0a..076ea77010e5 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -47,7 +47,8 @@ * * hugetlbfs PageHuge() take locks in this order: * hugetlb_fault_mutex (hugetlbfs specific page fault mutex) - * vma_lock (hugetlb specific lock for pmd_sharing) + * vma_lock (hugetlb specific lock for pmd_sharing and high-granularity + * mapping) * mapping->i_mmap_rwsem (also used for hugetlb pmd sharing) * page->flags PG_locked (lock_page) */ -- 2.39.0.314.g84b9a713c41-goog