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 00CBDC38145 for ; Thu, 8 Sep 2022 17:38:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 09B926B0072; Thu, 8 Sep 2022 13:38:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 023CE6B0073; Thu, 8 Sep 2022 13:38:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE0038D0001; Thu, 8 Sep 2022 13:38:45 -0400 (EDT) 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 CA7DF6B0072 for ; Thu, 8 Sep 2022 13:38:45 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A06E540AEB for ; Thu, 8 Sep 2022 17:38:45 +0000 (UTC) X-FDA: 79889628210.09.C8FFF2A Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf06.hostedemail.com (Postfix) with ESMTP id 0504E180074 for ; Thu, 8 Sep 2022 17:38:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1662658724; 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: in-reply-to:in-reply-to:references:references; bh=u3VyZ3w1bOu5Udrn5Alq1L+olcWnXxs8SfgOS75iA0c=; b=G2VBfV2PEPKkaOEi2/g74kmduVLuVZi+lqjK6jko21u7sS1Wl3tZ574uEX2RymZK6tVLIz 9ZoaLxl3QhBi7806Jc08kXj28Ls4hK6xS/K9TBMsDfO9AdjMJbIWMZQVDLO2SORFTD9lX6 LZO/QA7iyjvTx0C5Ez9Lc/FzP05mUyA= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-634-KvXJbTA1NcWGbBz0VU_V8A-1; Thu, 08 Sep 2022 13:38:33 -0400 X-MC-Unique: KvXJbTA1NcWGbBz0VU_V8A-1 Received: by mail-qt1-f198.google.com with SMTP id fy12-20020a05622a5a0c00b00344569022f7so15081749qtb.17 for ; Thu, 08 Sep 2022 10:38:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date; bh=u3VyZ3w1bOu5Udrn5Alq1L+olcWnXxs8SfgOS75iA0c=; b=iss8sGMQvOb/kM+LPJADGLHzhbXiRewo46bPRYAZKZRGEXC0lkAiIdreMx4yaWOckU sVsZaViu5hqWi5/lDAWYLjakix19CpdqacfblJts/NHY47vAPA0YkZhlglx1xyn2ntn/ rGFXQN6VXptrzzv1f7vUqOn/dMkII26qnMqahHaIL08fW9SYw/IpdwVfRjmrQME8Vjgk v+13thNo9eUVLleEQnl+1TTmEnThwCjLv6NlVrREqnhSVfMknpUUWEUiWyDH598lzP4b oybsSikji0M4R4QyyAuWuhL3og5Y7mCi8dkAWMPtSpZbow5dICnXZy6PwXbxXuQTmNZx oWhQ== X-Gm-Message-State: ACgBeo2vRwPy8JZe7yAxbP15Qzhqvdga2vrQ9ftQL0b410ffGTEBzOdi gT5DmHOeeAcuKxWJXJkO6WqDJ1nOV0QoPzepuy3nWNfP7aomssW4CQzotrjfkoreRXApLYrZc3m xe9DUh2+Y2lY= X-Received: by 2002:a05:6214:2aae:b0:496:cf51:bacf with SMTP id js14-20020a0562142aae00b00496cf51bacfmr8541631qvb.29.1662658713343; Thu, 08 Sep 2022 10:38:33 -0700 (PDT) X-Google-Smtp-Source: AA6agR6xoeqcxpfkCjwLToZdiSnU4SU+olAUgAizlwk76xC6Z+dQWjOGeSXKAZ5YEKu/VRuFnik+Mg== X-Received: by 2002:a05:6214:2aae:b0:496:cf51:bacf with SMTP id js14-20020a0562142aae00b00496cf51bacfmr8541609qvb.29.1662658713038; Thu, 08 Sep 2022 10:38:33 -0700 (PDT) Received: from xz-m1.local (bras-base-aurron9127w-grc-35-70-27-3-10.dsl.bell.ca. [70.27.3.10]) by smtp.gmail.com with ESMTPSA id x24-20020ac87a98000000b003431446588fsm14638554qtr.5.2022.09.08.10.38.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 10:38:32 -0700 (PDT) Date: Thu, 8 Sep 2022 13:38:31 -0400 From: Peter Xu To: James Houghton Cc: Mike Kravetz , Muchun Song , David Hildenbrand , David Rientjes , Axel Rasmussen , Mina Almasry , Jue Wang , Manish Mishra , "Dr . David Alan Gilbert" , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 07/26] hugetlb: add hugetlb_pte to track HugeTLB page table entries Message-ID: References: <20220624173656.2033256-1-jthoughton@google.com> <20220624173656.2033256-8-jthoughton@google.com> MIME-Version: 1.0 In-Reply-To: <20220624173656.2033256-8-jthoughton@google.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662658725; a=rsa-sha256; cv=none; b=qma1dlpTYkXD/S3LRwSBqEGlQOi09i3T0eLQ7kUPTJzHVKzxzLLyKpkaXyJZQ6wbwOpJJP kCBaVQ6ssXn0FH5FBU6GZhp3Scwcj8vv4qfWrZPX8DyPbTcUBtZUDZPCm1V2Wjpk+eznT2 Qtvg+aQ9FH3G88i9seAdDOcVtDiCvjE= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=G2VBfV2P; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf06.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662658725; 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=u3VyZ3w1bOu5Udrn5Alq1L+olcWnXxs8SfgOS75iA0c=; b=r0OjG/VXGK7muk3Ken7MxI+pot8mca8p2Nd05HLxiVXx1DomPlvJU8DuNTBylVa5QYsEts MEVkHeLtk6w0eFlaxbes9VJ2POVvgombANba27pzvNpsoveXnUO3B1r698XrWrPxS6Ib14 kpkNd/Q+mSA86mfPkZ2VdQBvxKMW2ZY= X-Stat-Signature: ne1jyy5osi1mum4z4ncpxrqx4nj3tqm7 X-Rspamd-Queue-Id: 0504E180074 X-Rspam-User: Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=G2VBfV2P; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf06.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com X-Rspamd-Server: rspam12 X-HE-Tag: 1662658724-134710 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: James, On Fri, Jun 24, 2022 at 05:36:37PM +0000, James Houghton wrote: > +static inline > +spinlock_t *hugetlb_pte_lockptr(struct mm_struct *mm, struct hugetlb_pte *hpte) > +{ > + > + BUG_ON(!hpte->ptep); > + // Only use huge_pte_lockptr if we are at leaf-level. Otherwise use > + // the regular page table lock. > + if (hugetlb_pte_none(hpte) || hugetlb_pte_present_leaf(hpte)) > + return huge_pte_lockptr(hugetlb_pte_shift(hpte), > + mm, hpte->ptep); > + return &mm->page_table_lock; > +} Today when I re-read part of this thread, I found that I'm not sure whether this is safe. IIUC taking different locks depending on the state of pte may lead to issues. For example, could below race happen where two threads can be taking different locks even if stumbled over the same pmd entry? thread 1 thread 2 -------- -------- hugetlb_pte_lockptr (for pmd level) pte_none()==true, take pmd lock pmd_alloc() hugetlb_pte_lockptr (for pmd level) pte is pgtable entry (so !none, !present_leaf) take page_table_lock (can run concurrently with thread 1...) pte_alloc() ... -- Peter Xu