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=-3.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=no 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 2B184C2D0EF for ; Fri, 17 Apr 2020 14:59:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E038C2223C for ; Fri, 17 Apr 2020 14:59:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=shutemov-name.20150623.gappssmtp.com header.i=@shutemov-name.20150623.gappssmtp.com header.b="RB07JlK2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E038C2223C 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 6098E8E0027; Fri, 17 Apr 2020 10:59:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5B95E8E0023; Fri, 17 Apr 2020 10:59:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4A8828E0027; Fri, 17 Apr 2020 10:59:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0059.hostedemail.com [216.40.44.59]) by kanga.kvack.org (Postfix) with ESMTP id 33BE18E0023 for ; Fri, 17 Apr 2020 10:59:13 -0400 (EDT) Received: from smtpin09.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id E112D4DA9 for ; Fri, 17 Apr 2020 14:59:12 +0000 (UTC) X-FDA: 76717654944.09.bun05_5066ba41d0f5e X-HE-Tag: bun05_5066ba41d0f5e X-Filterd-Recvd-Size: 4933 Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by imf24.hostedemail.com (Postfix) with ESMTP for ; Fri, 17 Apr 2020 14:59:12 +0000 (UTC) Received: by mail-lj1-f195.google.com with SMTP id k21so2366643ljh.2 for ; Fri, 17 Apr 2020 07:59:12 -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=KrVdbgNLnOAtz/b4GEh6fjWuVR6UiAa01u62/hDkw0Y=; b=RB07JlK2pmb0+M6v4xQGBUIWbw21AfEXpRSFiwNcWlOdmO0l5W1HXEmc/ezpr5MT8j uG3oSBY9B4HQ/MUcBWsabTKQo+VufRJQA1NNT7pQstrOlNI98is9x+bnMG6D7L9bKMN5 RLcWV12Kn1B0Zms7J+8cCm/Mj21gE/UFVUQ3Vq78degSMaW/rBxxvOAc0eVurkOUcUn9 THmz8gRn7f3R5tZTkZFpEmYkZXtHb+J9mX++57Ab7pWTEvohleZgGGT7Wx3DK3bFBUvZ 8orviJX8amuK9oTr50PkVazeUlYAXksZEIwZmZCkTYvBconnFwOsn7ngzQ1ZngyJpfAS hxxQ== 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=KrVdbgNLnOAtz/b4GEh6fjWuVR6UiAa01u62/hDkw0Y=; b=aiQg//rw6yV1LO/ZRFcwaox2glZgsMGY0P/ToeMGEaHuN0xL65F+Ft5KMiMT1HpI0Y cXYfhJ+XGg5hgoHV2UUTlxVSB/ZRR1ZrQ5rriZCOA1r25hO8gr6owjJ2ZU094BcjafPO 8pNUY1pzJWK5OynO7EixBZv6nbmcNeFA2tbMXn5PN+ABgbCpBALpc0DHVkH2dLhO9jkv X5sMSbZRJOsbpAuCjtrVCf/sSDL2hLSIqls0HEJw6vEC+TVWicpOh2mq4UzIuoAQtvD0 QaSVcXQhtNuFPEv0gAj8M/PZpwZwiPh1bi/X+zmZqyt0+DCQLFXyBohrdntcq6nfeAqr mc5g== X-Gm-Message-State: AGi0PuZfxqfZyiySzN9AWmaCdCaY8h5Kdzyl0f8DDlt96xgZLULd3po1 tfCekpl71oIy2WjalTzp2MwgAU8CY24= X-Google-Smtp-Source: APiQypLchSnPlwcAmQhQnIQZDPdJndRghDikYI9DT9sG7mYhgtH7y9jwm5mgo0e/ZXbQ54IfOSRUIg== X-Received: by 2002:a2e:3c08:: with SMTP id j8mr2448089lja.243.1587135550261; Fri, 17 Apr 2020 07:59:10 -0700 (PDT) Received: from box.localdomain ([86.57.175.117]) by smtp.gmail.com with ESMTPSA id v64sm7599013lfa.54.2020.04.17.07.59.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Apr 2020 07:59:09 -0700 (PDT) Received: by box.localdomain (Postfix, from userid 1000) id 74B7A100AEA; Fri, 17 Apr 2020 17:59:09 +0300 (+03) Date: Fri, 17 Apr 2020 17:59:09 +0300 From: "Kirill A. Shutemov" To: Andrew Morton Cc: "Kirill A. Shutemov" , Andrea Arcangeli , Zi Yan , Yang Shi , Ralph Campbell , John Hubbard , William Kucharski , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv4 4/8] khugepaged: Drain LRU add pagevec after swapin Message-ID: <20200417145909.476o5ppho5p3cgyk@box> References: <20200416160026.16538-1-kirill.shutemov@linux.intel.com> <20200416160026.16538-5-kirill.shutemov@linux.intel.com> <20200416214145.bfbb1afcc7a632e8cafdf203@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200416214145.bfbb1afcc7a632e8cafdf203@linux-foundation.org> 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, Apr 16, 2020 at 09:41:45PM -0700, Andrew Morton wrote: > On Thu, 16 Apr 2020 19:00:22 +0300 "Kirill A. Shutemov" wrote: > > > __collapse_huge_page_isolate() may fail due to extra pin in the LRU add > > pagevec. It's pretty common for swapin case: we swap in pages just to > > fail due to the extra pin. > > > > Drain LRU add pagevec on successful swapin. > > I don't see how this patch can do anything to prevent > __collapse_huge_page_isolate() from failing, which is what the > changelog implies. > > Can we have a more detailed changelog, please? What about something like this: khugepaged: Drain LRU add pagevec after swapin collapse_huge_page() tries to swap in pages that are part of the PMD range. Just swapped in page goes though LRU add cache. The cache gets extra reference on the page. The extra reference can lead to the collapse fail: the following __collapse_huge_page_isolate() would check refcount and abort collapse seeing unexpected refcount. The fix is to drain local LRU add cache in __collapse_huge_page_swapin() if we successfully swapped in any pages. Signed-off-by: Kirill A. Shutemov Reviewed-by: William Kucharski Reviewed-and-Tested-by: Zi Yan Acked-by: Yang Shi -- Kirill A. Shutemov