Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2736615ybb; Mon, 30 Mar 2020 11:51:32 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtSSflAbo3mhFsjVMBvWq+1cl6XmfzPoqfCVCmeAUezZMzPnOLoMuE5bRdNYgXehDNO9Z71 X-Received: by 2002:a05:6808:8f0:: with SMTP id d16mr527188oic.37.1585594292507; Mon, 30 Mar 2020 11:51:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585594292; cv=none; d=google.com; s=arc-20160816; b=FI+VJYRKKDba0/XRKCGUuN+iniD87grWhgfJaIIsS3LKu/X/HTmDMOSEBUCZ+zWwhr 0lG501PVJStSgnhL14gjhA/Mtdli/6taBnSyPESnxnhBzfJlAnYCAcEQuR9Bm9g0gcY4 j3NbAgIhwAwEGCrXyYGPfrEyGsv9JCgWicUpseH443NGt2aPYemM8lmA2kJ7RnNIH2Kn IpsLVeiNeO/o86reRYKl/S8OfXKYD+/j43ONemmNuOYWAxlX7CrXQqA7U0cAR9FDUEbB Q17LJRaOo7w//hP+mZu2eZymSSzP7yXGwlp+dXUfnWvVuaMe1N7Fp1LxaHepUmWaUQtC jiyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uq6i06ZRPQUaQNiRIjd3mMYsSETxbSCVlPPKZNi2Fmg=; b=VzzZdm4+gCudBC/+4ATSpH3ZSTLqqEk+9Ifbz2/AX+Gm2RZjCxjnjf5+0Qp7iOXDEn /ytZoan8Oo5Dwza8jnrIPJrHxVkyHi89d7T1zHa8zpKv21yfifUxJwLWXT+8hc3nVOo3 0OtlwcLKNc4ggnnM/Zs818AhkvKk+MQaDmVzZfKXv03qY/wEjpeIiyutJ4EPOMRo9JTJ KRamAOYWzFeqtWkvA3DXx2EDzPSQX0ePKXqMHJTIp6JIhSKMA8eVfiTSo3z8BriJKjnQ ofYJVRtFasGvCNVVFMoSu4vkPNP1eUFHi+K5FyWCmteFKlk8YgK385b5B2x6Na7H/KRQ ogNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MZ2sqeTo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i132si6224604oih.249.2020.03.30.11.51.19; Mon, 30 Mar 2020 11:51:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MZ2sqeTo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727749AbgC3Su4 (ORCPT + 99 others); Mon, 30 Mar 2020 14:50:56 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:38219 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726017AbgC3Suz (ORCPT ); Mon, 30 Mar 2020 14:50:55 -0400 Received: by mail-ed1-f68.google.com with SMTP id e5so22059822edq.5 for ; Mon, 30 Mar 2020 11:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uq6i06ZRPQUaQNiRIjd3mMYsSETxbSCVlPPKZNi2Fmg=; b=MZ2sqeToqwXrscQMskj6uYIRmD406jk1egY6bWS2RndDTKDwoV3uYQhinlkJmG8z1v yYw7dzwM0VyXScUrjZavK8X5ZZelKwaleN74tPlxP6phHfBb/W6DlC4rLqrrDz42zaxn FJC3DNBU4E95w+aoOPVZZP+fZcwLdFa2mlb6V0/7i+fJOKJ3NSc7KXSunLtx4/HhMiic UI9z58gIXTc38SAPtiQX5joMBrtceuQZLhjkrn1tYVHZTLRuZzDpYuA9Zj5Ou6PpgFpr le8TqGIdC31vFF6X7zYuzTArvuxDtlve5pIlkW5eHANO1e3k4WAr3n8tzJF3UvLT99pF 8Rlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uq6i06ZRPQUaQNiRIjd3mMYsSETxbSCVlPPKZNi2Fmg=; b=AV8XDLYtvOO21P3OUjaY/kDgRm8pTdTaaOuIR/u7F/PtTVaCB6inGfRvrnVS2U1pkM 41rBAQ/y6qY6rSQdqTd3HI5IBuygeT4iL3EoLqhGJSYxdxia6Oe0RzpRh7iLbwE+tcUA 0DVzDhAVjcEuk46SVNC4Bwr6hSZq8/21V6J5gZMKCLl/hFUtAPnlbQjRe+2++mgXSaQa Gmlr/YpLblB9Z1lfc3QO22KkMcQj0ZW+JeTVrq8YCpeOBdepXyE6bne1cthSwmfeUVPo RhcDCadiazxFy4e3q/WTk3tm1KBYONfCwfxkk3d6ZaEOncLN5Tcz5UtzjqmFdKfN1J92 4UCg== X-Gm-Message-State: ANhLgQ0zaM3fFMh/jCPrmzEAh7yQvforLQtEPWXVrM2aL6qjqa98tl+3 rKZwDInIpDZpykA+ODj/MaZYXEYsizY6usphR8Y= X-Received: by 2002:a50:9f6e:: with SMTP id b101mr12539035edf.372.1585594253518; Mon, 30 Mar 2020 11:50:53 -0700 (PDT) MIME-Version: 1.0 References: <20200327170601.18563-1-kirill.shutemov@linux.intel.com> <20200327170601.18563-6-kirill.shutemov@linux.intel.com> <20200328003920.xvkt3hp65uccsq7b@box> <20200328123336.givyrh5hsscg5cpx@box> In-Reply-To: <20200328123336.givyrh5hsscg5cpx@box> From: Yang Shi Date: Mon, 30 Mar 2020 11:50:41 -0700 Message-ID: Subject: Re: [PATCH 5/7] khugepaged: Allow to collapse PTE-mapped compound pages To: "Kirill A. Shutemov" Cc: Zi Yan , Andrew Morton , Andrea Arcangeli , Linux MM , Linux Kernel Mailing List , "Kirill A. Shutemov" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Mar 28, 2020 at 5:33 AM Kirill A. Shutemov wrote: > > On Fri, Mar 27, 2020 at 09:17:00PM -0400, Zi Yan wrote: > > > The compound page may be locked here if the function called for the first > > > time for the page and not locked after that (becouse we've unlocked it we > > > saw it the first time). The same with LRU. > > > > > > > For the first time, the compound page is locked and not on LRU, so this VM_BUG_ON passes. > > For the second time and so on, the compound page is unlocked and on the LRU, > > so this VM_BUG_ON still passes. > > > > For base page, VM_BUG_ON passes. > > > > Other unexpected situation (a compound page is locked and on LRU) triggers the VM_BU_ON, > > but your VM_BUG_ON will not detect this situation, right? > > Right. I will rework this code. I've just realized it is racy: after > unlock and putback on LRU the page can be locked by somebody else and this > code can unlock it which completely borken. > > I'll pass down compound_pagelist to release_pte_pages() and handle the > situation there. > > > >>> if (likely(writable)) { > > >>> if (likely(referenced)) { > > >> > > >> Do we need a list here? There should be at most one compound page we will see here, right? > > > > > > Um? It's outside the pte loop. We get here once per PMD range. > > > > > > 'page' argument to trace_mm_collapse_huge_page_isolate() is misleading: > > > it's just the last page handled in the loop. > > > > > > > Throughout the pte loop, we should only see at most one compound page, right? > > No. mremap(2) opens a possibility for HPAGE_PMD_NR compound pages for > single PMD range. Do you mean every PTE in the PMD is mapped by a sub page from different THPs? > > > -- > Kirill A. Shutemov >