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 483BDC4332F for ; Thu, 8 Dec 2022 13:14:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B7DFE8E0003; Thu, 8 Dec 2022 08:14:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B067A8E0001; Thu, 8 Dec 2022 08:14:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 981598E0003; Thu, 8 Dec 2022 08:14:49 -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 887A48E0001 for ; Thu, 8 Dec 2022 08:14:49 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 59EE9120957 for ; Thu, 8 Dec 2022 13:14:49 +0000 (UTC) X-FDA: 80219183898.18.CC7C5EA Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf23.hostedemail.com (Postfix) with ESMTP id 4701E140016 for ; Thu, 8 Dec 2022 13:14:47 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=T1LF5I7E; spf=pass (imf23.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670505287; 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=Bt0mI+NueNF1oGdvpp+UZTOceJ8THEeyXlJD5KoeMbA=; b=27HVWzuo3agvY9hxA+BbeAec9yFfnB9KGWCSxf6ysY4uJd3TADiAXQwODkZi6joW2WFIIw btEDTjJ+4KBmvy3mG2zlCWUByJt4f/zIPFeK0dKXw08qPHLKH4ePcgcrgDv8g9aa2PT/mW NtDfMOvHP28EWL8x2OaMDf9LP3l4T8M= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=T1LF5I7E; spf=pass (imf23.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670505287; a=rsa-sha256; cv=none; b=oHSGvPU95GIlyKLnmRCG//ILHBoUHgnZfcciUtfa+9B2bjB/aGEE332syHES8UGx//0XGk TvUeMmoI7DyJqDDMoI+5d8a2u37GxfnjpqFU7HaEAyPgTPyCtiB05hdeESyeiloBWChtrH s3DBs7CwZjEWnn5qnoZdSY8QESLkz4g= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1670505286; h=from:from: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=Bt0mI+NueNF1oGdvpp+UZTOceJ8THEeyXlJD5KoeMbA=; b=T1LF5I7EJ3dhfdkIln5WKT7nRxxSTU18xMqHHi3DqKf4n5o71nhZzE/s9otbrbHd1xWo5a HsWUCK4Nj/eo6uoPS+naOu4jhuEVuHE1pto5agP1/RtMAzW1U/MxCln2PfB8HjsC98vCBC DTWAW2ugdDC69N8RkiCIFH7QBWkOLUM= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-390-6mAsAjNwP8KGGB7NO00-ag-1; Thu, 08 Dec 2022 08:14:45 -0500 X-MC-Unique: 6mAsAjNwP8KGGB7NO00-ag-1 Received: by mail-wm1-f69.google.com with SMTP id ay19-20020a05600c1e1300b003cf758f1617so2393168wmb.5 for ; Thu, 08 Dec 2022 05:14:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Bt0mI+NueNF1oGdvpp+UZTOceJ8THEeyXlJD5KoeMbA=; b=jH7sZcLptq2mcpwPjiSBne0Iv7Wb4/2Z471JUL855rpO6VuxSY+hzDsFtiDkDA0/5R uPAW9qB037mkdZ7w09TT4WCyD1lGer5XrAkVbVh4ehNsluKO5FWjw7PZ8d0fNfYFUI1q f6TKPkJ1LOEujhMjpDL3zNzWq3ZDCX0rZ0PEO/tLVnuv/kZpOsN0ydjsQm1cYOmwDan+ nCZKSb9hrCH/hBJAwwQQH9LW2R5wIGNOwuDuOWTaNl1x/RjrSqYS+hcJ48eOo0GLwS2w 8/kK7u5LpkEwPfU4aqYg8I3SQAf4s6e9+o7xW5AFYhkAVREWVtSuy7iNG7Dgy4Rkt7h5 Syag== X-Gm-Message-State: ANoB5pmIIy38PXyU6Bf+0I6Z5r7J+9A9VyR0ASME5QPCggfe1tNMfqkP 9yLBC++NfMvNlqArRzl/dgo8eZk7ocSFUc1ATFuHubc9BfPj5eAb6E85Uu2W1l7ULPTJ07BR37C mKcIRvpgZJmU= X-Received: by 2002:a05:600c:3418:b0:3cf:84e9:e722 with SMTP id y24-20020a05600c341800b003cf84e9e722mr2733718wmp.8.1670505283744; Thu, 08 Dec 2022 05:14:43 -0800 (PST) X-Google-Smtp-Source: AA0mqf6K3viiXjbuYrwpcAvPCLjLFhaitAlUA8gWGgPz/SU8KRfd8EQfZvYDrxNpOvKqfEOj5i5Mwg== X-Received: by 2002:a05:600c:3418:b0:3cf:84e9:e722 with SMTP id y24-20020a05600c341800b003cf84e9e722mr2733710wmp.8.1670505283396; Thu, 08 Dec 2022 05:14:43 -0800 (PST) Received: from ?IPV6:2a09:80c0:192:0:5dac:bf3d:c41:c3e7? ([2a09:80c0:192:0:5dac:bf3d:c41:c3e7]) by smtp.gmail.com with ESMTPSA id i1-20020adfaac1000000b002238ea5750csm27528687wrc.72.2022.12.08.05.14.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Dec 2022 05:14:42 -0800 (PST) Message-ID: Date: Thu, 8 Dec 2022 14:14:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 To: Peter Xu , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Muchun Song , John Hubbard , Andrea Arcangeli , James Houghton , Jann Horn , Rik van Riel , Miaohe Lin , Andrew Morton , Mike Kravetz , Nadav Amit References: <20221207203034.650899-1-peterx@redhat.com> <20221207203034.650899-9-peterx@redhat.com> From: David Hildenbrand Organization: Red Hat Subject: Re: [PATCH v2 08/10] mm/hugetlb: Make walk_hugetlb_range() safe to pmd unshare In-Reply-To: <20221207203034.650899-9-peterx@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4701E140016 X-Rspam-User: X-Stat-Signature: 4nzs9iqdniqiq6p7uipgfnd4aq1jdhcg X-HE-Tag: 1670505287-697660 X-HE-Meta: U2FsdGVkX1+Xu//00O5KmegMCL8f2G2KBJCtbMAuK6BgTyZlJ6A6md/mJtoojA8o267wKkH5PqyiCs1VOVaKcHV9KNzkdsS+7WSx5EhWBHtaeSFoft9P0UslUAQHGQQPbSCF5LvcE+zjnBlImSLnG6tnjdcE8R2UEMFPW2CRw2SSjNTBtEHl9GdsOf1zifNxU8UrD+ZXurxk3glDwEFxcq62bsnRnheQ1FUeULPxTbgBuotrK/5YBT6Bccm8xNsDRrttJL4DEq7W2BpQtBiMyPITUInBEVkRaBwx+yainJyfwpJFwWI/bxjyxWOFq3DPtS8WglFrbPqaafSjxIKf4rnpZFfanRr3ZbzSjTLs6L6Qfw3Rxf8NQ/N0nxX0FBV2GgIwKJca9BaI7/t43Ko57Zg/731aSsjmm7xrCii8oCDCmaYfkG9zNZYVEKV6hJ5fnXs7Qw+l/UHvoNdLlcPGotk9xiteqe/GyYOma/yQo/5ycSBaZ9fvlv2CHQ7lM9ncn5ETT1LxT+/qznhJzNg/w4TJ2DK2XlsQPV1IA9A4S8q+rgjZAReIuqTDTrA7cLipMYOkRcbRAmpnD+eQ6rA2s38X8v5Q8IBsGr3cFENTqgszZtonAvXny92zWSlaUxyDCfd23Jf8uxPE7riOJ55YiNwv39eQnrLI+OxHCALbY4TUXyl5n+jmhxmWsmgLdSjzs1LLUHO5M12R4l19OcHso8rImf9Q1KmAa8crzsRNbHkGRAVOE8OdNw55iOvkfDhR/cAOWzgJixIslzgtRM8tdjC5wpNrzg/lOfwhcxt378N6UBcc5A0KZbecIPkBkTFyUaqORxAdHMK9t0lc2eXM8kxB4eerw2kbtmjYG6SgDUNVRRTBH1ctsd3clizvHUA5qtks0uMoVEAdcNst7r72M+kbGechCk0800ZSa9loHv6aFOMblzysA3cYaPqaUaU8J8tBQekreWT++mBy1M8 Uzpt01l3 ck7XeGDk4SSV6RZbfE90dj17sKSECqy2GP/YlPpHPaDES1SqgWu7L+XackLDcBtojNLvOMj8w0WfU7T5ymMywwM3UgdvDkGLJGaamAh74JC58lQD7ryKoDTsuEl/xmQ+QIQYaUxBge+Fw/9EbqKEiejBuJeAGOodx0B9zjFjsQ/c9xi6JwALqQ1jVmXalmCkXOndjcJmTKuOso9V0YuYAiw5s7wq+r4tGiFl9PsQ1l1Iyy4MzQGGaZhr1Iian4qhQ36yfjyqx5zCtAwU= 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 07.12.22 21:30, Peter Xu wrote: > Since walk_hugetlb_range() walks the pgtable, it needs the vma lock > to make sure the pgtable page will not be freed concurrently. > > Reviewed-by: Mike Kravetz > Signed-off-by: Peter Xu > --- > arch/s390/mm/gmap.c | 2 ++ > fs/proc/task_mmu.c | 2 ++ > include/linux/pagewalk.h | 11 ++++++++++- > mm/hmm.c | 15 ++++++++++++++- > mm/pagewalk.c | 2 ++ > 5 files changed, 30 insertions(+), 2 deletions(-) > > diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c > index 8947451ae021..292a54c490d4 100644 > --- a/arch/s390/mm/gmap.c > +++ b/arch/s390/mm/gmap.c > @@ -2643,7 +2643,9 @@ static int __s390_enable_skey_hugetlb(pte_t *pte, unsigned long addr, > end = start + HPAGE_SIZE - 1; > __storage_key_init_range(start, end); > set_bit(PG_arch_1, &page->flags); > + hugetlb_vma_unlock_read(walk->vma); > cond_resched(); > + hugetlb_vma_lock_read(walk->vma); > return 0; > } > > diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c > index e35a0398db63..cf3887fb2905 100644 > --- a/fs/proc/task_mmu.c > +++ b/fs/proc/task_mmu.c > @@ -1613,7 +1613,9 @@ static int pagemap_hugetlb_range(pte_t *ptep, unsigned long hmask, > frame++; > } > > + hugetlb_vma_unlock_read(walk->vma); > cond_resched(); > + hugetlb_vma_lock_read(walk->vma); We already hold the mmap_lock and reschedule. Even without the cond_resched() we might happily reschedule on a preemptive kernel. So I'm not sure if this optimization is strictly required or even helpful in practice here. In the worst case, concurrent unsharing would have to wait. For example, s390_enable_skey() is called at most once for a VM, for most VMs it gets never even called. Or am I missing something important? -- Thanks, David / dhildenb