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 X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B8743C07E94 for ; Fri, 4 Jun 2021 16:15:49 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5B1DA613FF for ; Fri, 4 Jun 2021 16:15:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5B1DA613FF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=shutemov.name Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E14AA6B00AB; Fri, 4 Jun 2021 12:15:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DC5B56B00AD; Fri, 4 Jun 2021 12:15:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C3D106B00AE; Fri, 4 Jun 2021 12:15:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0155.hostedemail.com [216.40.44.155]) by kanga.kvack.org (Postfix) with ESMTP id 954A16B00AB for ; Fri, 4 Jun 2021 12:15:48 -0400 (EDT) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 3AFD8801892B for ; Fri, 4 Jun 2021 16:15:48 +0000 (UTC) X-FDA: 78216542376.12.377BCF5 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf04.hostedemail.com (Postfix) with ESMTP id 497FB2BCD for ; Fri, 4 Jun 2021 16:15:37 +0000 (UTC) Received: by mail-ej1-f47.google.com with SMTP id c10so15292255eja.11 for ; Fri, 04 Jun 2021 09:15:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov-name.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=csBRe6GCVEfaRNmTYDJTX2l/VpfE7TNuHayFgxQM24o=; b=QZRcmT5KadNWFjVQjJiemyr5SdfPveEFwW6PgIgkrNW0XBjGd9OvK0iQOuLwr71XMR stL/FJX5RLtW812HBNpRSycdp4S9aNlAPcBTVKmcp5N629lqvEDLXHFvmSO9sqxv6bOD TtL4hE6CV4TAxs8+ZISrfDHKyGOTNR++1q2+1cmvfkOcY/UHCsxKDlDVJFh9v4eFxyMB S7hMnTxn/z9/P82qloYQz2JtX4zDwjRcLKRYUMh5V0uttf2BpkpfSPzaZYXMdeVqPewr UfGDLn/tlVWYm9fW2Jl1ggJKYNSJtIjysyLkX5HGv6xUVMVe7cVS/CNxw5FJkC7ou0Ch xV7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=csBRe6GCVEfaRNmTYDJTX2l/VpfE7TNuHayFgxQM24o=; b=B7KftpMbtUO9GTum+0Ty9kBcu6b6B8XzhN/4+fEjeIG5K7HZXi1Thk4PBpYEJYQMPY wv57aNW10j597J/Jm/WdMj6K2VgF+WU489CaEK7mtWcy12OClpYOg2kCXE7oavJezPNp nC+h7Fx1KD2bTDaWLA1Hclws4g+fZ1ff1LbP6o8df1Hmn2/grhyyzthmNRmIUEA+fUR7 EKHR+RuJqyWZYfsndRupOopZAeve7RhGQo1TY7HERpmNB/v4UXD7Fo4L8ojQPrDABXx2 Qe4E3ltXHKO40p/9YTSWyfjdoH6HeBH6Pnqr9HgpEZwPBh/pKE6ihLXWNDuieLfQhWF3 h+kA== X-Gm-Message-State: AOAM532aXs9Un/EUrj+ybhbC3xS8dZLFniQYjLCu8ZzpFQgvtC1EHmRF oepa38/jLcCdbrXpMDqMj4rWviBtIT8R7g== X-Google-Smtp-Source: ABdhPJz5y8pTqpmmdrBUS4ezybF5vsGudceRYwvvOvGEcx55Qqdyvt+K7SqvaM6smIu8T2YaTnvFpw== X-Received: by 2002:a2e:2d11:: with SMTP id t17mr3902830ljt.56.1622821636863; Fri, 04 Jun 2021 08:47:16 -0700 (PDT) Received: from box.localdomain ([86.57.175.117]) by smtp.gmail.com with ESMTPSA id r27sm647044lfp.95.2021.06.04.08.47.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jun 2021 08:47:16 -0700 (PDT) Received: by box.localdomain (Postfix, from userid 1000) id 6ADE91027A9; Fri, 4 Jun 2021 18:47:28 +0300 (+03) Date: Fri, 4 Jun 2021 18:47:28 +0300 From: "Kirill A. Shutemov" To: Hugh Dickins Cc: Peter Xu , Andrew Morton , "Kirill A. Shutemov" , Yang Shi , Wang Yugui , Matthew Wilcox , Naoya Horiguchi , Alistair Popple , Ralph Campbell , Zi Yan , Miaohe Lin , Minchan Kim , Jue Wang , Jan Kara , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/7] mm/thp: try_to_unmap() use TTU_SYNC for safe DEBUG_VM splitting Message-ID: <20210604154728.itpbqhwub5squt2u@box.shutemov.name> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=shutemov-name.20150623.gappssmtp.com header.s=20150623 header.b=QZRcmT5K; spf=none (imf04.hostedemail.com: domain of kirill@shutemov.name has no SPF policy when checking 209.85.218.47) smtp.mailfrom=kirill@shutemov.name; dmarc=none X-Rspamd-Server: rspam03 X-Stat-Signature: wopmrsfuz8f5ydjrm11jeneamcd694fp X-Rspamd-Queue-Id: 497FB2BCD X-HE-Tag: 1622823337-185637 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 Thu, Jun 03, 2021 at 07:54:11PM -0700, Hugh Dickins wrote: > On Thu, 3 Jun 2021, Peter Xu wrote: > > On Tue, Jun 01, 2021 at 02:07:53PM -0700, Hugh Dickins wrote: > > > diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c > > > index 2cf01d933f13..b45d22738b45 100644 > > > --- a/mm/page_vma_mapped.c > > > +++ b/mm/page_vma_mapped.c > > > @@ -212,6 +212,14 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw) > > > pvmw->ptl = NULL; > > > } > > > } else if (!pmd_present(pmde)) { > > > + /* > > > + * If PVMW_SYNC, take and drop THP pmd lock so that we > > > + * cannot return prematurely, while zap_huge_pmd() has > > > + * cleared *pmd but not decremented compound_mapcount(). > > > + */ > > > + if ((pvmw->flags & PVMW_SYNC) && > > > + PageTransCompound(pvmw->page)) > > > + spin_unlock(pmd_lock(mm, pvmw->pmd)); > > > return false; > > > } > > > if (!map_pte(pvmw)) > > > > Sorry if I missed something important, but I'm totally confused on how this > > unlock is pairing with another lock().. > > I imagine you're reading that as spin_unlock(pmd_lockptr(blah)); > no, the lock is right there, inside spin_unlock(pmd_lock(blah)). Oh.. It made me scratch head too. Could you rewrite it in a more readable way? -- Kirill A. Shutemov