Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4324522ybz; Mon, 20 Apr 2020 21:14:53 -0700 (PDT) X-Google-Smtp-Source: APiQypLrkmGe/75TWpA8FSv3U+4ro7jElbBIhcXdp50bKPGONOfyASvNwO7MJQ4c3orc8E+sTgUC X-Received: by 2002:a50:baa9:: with SMTP id x38mr10314170ede.55.1587442493435; Mon, 20 Apr 2020 21:14:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587442493; cv=none; d=google.com; s=arc-20160816; b=SGLopVJ7dL79YvbbW0Hx2pHer3zTaezL5cji2IB756kKCPluTtCUWgB2Q5A44cXeiN XyXNORwqst4ysFf+Lkjhe3vs1OmWPNsJ6sJOH8B3WgNJAXEmJbpua9Gg7V1atgOVXtub Rpb5yM1ra7Ofsk8zE+4IiUbrsSjdzx7vXc+nNScDBK1jzrtiPCmSq2aYmjociUvHSedv BEahrBpLzwWdpzk09yxvzlKPm8KOV+XK/KJoenrqYiVrZWlYJff+6qnF6ns/F0E5JYvm IbHUAJm82VVQljS+VW0lrGzCwDyNlSKGPBlO3aahpwSrGWxydXXaCGh3EL9u2CMgA7WM o4MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=4PSxL1aTfOCYsKb848eeovl9sW0UvlwVluc7Hk1q/zE=; b=TCAYw5uRlcjpQmMTh3oyOk0lf70420zmVdOzMm4cOBdUx+rD4m6XkVOdbJp0EC8SM6 +xAa8DQfohzSPdgbpzLsfR3bKsST9h5KG2SZksrP9ZqW7epvAuWRRImETBj4+5UMPuDU AGhRl/vsMbQej+A6TBCEzbxmQQ4DLZQLLMOTvMH1oK0DDSlK4TMd7YUTEIhrcqzKFuQ0 RUvdDnoa4RF6r7b8ErbYWd7VqBnjlDoSculaPQcdFPBYORbVwr6g1oP39E4FhsSYQGUm mkU5jbiQkJlK4ofw1wPPwXU9rvQYnB1mzpvB/iefLOBUJpbJhb5RzVwjxkDpv61Uvncl SuXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="pt/a8+CS"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cf11si862005edb.297.2020.04.20.21.14.29; Mon, 20 Apr 2020 21:14:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="pt/a8+CS"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726017AbgDUEM5 (ORCPT + 99 others); Tue, 21 Apr 2020 00:12:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:51442 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725730AbgDUEM4 (ORCPT ); Tue, 21 Apr 2020 00:12:56 -0400 Received: from localhost.localdomain (c-73-231-172-41.hsd1.ca.comcast.net [73.231.172.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 343722084D; Tue, 21 Apr 2020 04:12:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587442376; bh=0stJHqO/CMElxQxgtwJK5qKK+mD2WutwBkPSA2WH9ro=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=pt/a8+CSt1Fr4ooDnz33LrLucxb+jNTp3XBgFPG6qN1U1em2n0hDWA3RJymEQ1E6y CJ1k43PqfW1ItjTykgRnF4XxLVCc369BUfBY9mClNLggkNPxz47mK4YC3q04CB/jh/ mvK/b07J/W9iER6NvYvjMgY1WGiCxfjPHt9+sYLA= Date: Mon, 20 Apr 2020 21:12:55 -0700 From: Andrew Morton To: Minchan Kim Cc: linux-mm , LKML , Jan Kara , Matthew Wilcox , Josef Bacik , Johannes Weiner , Robert Stupp Subject: Re: [PATCH 2/3] mm: fix long time stall from mm_populate Message-Id: <20200420211255.55bb6e1275cf90f9dc292238@linux-foundation.org> In-Reply-To: <20200212221614.215302-2-minchan@kernel.org> References: <20200212221614.215302-1-minchan@kernel.org> <20200212221614.215302-2-minchan@kernel.org> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 12 Feb 2020 14:16:13 -0800 Minchan Kim wrote: > Basically, fault handler releases mmap_sem before requesting readahead > and then it is supposed to retry lookup the page from page cache with > FAULT_FLAG_TRIED so that it avoids the live lock of infinite retry. > > However, what happens if the fault handler find a page from page > cache and the page has readahead marker but are waiting under > writeback? Plus one more condition, it happens under mm_populate > which repeats faulting unless it encounters error. So let's assemble > conditions below. > > __mm_populate > for (...) > get_user_pages(faluty_address) > handle_mm_fault > filemap_fault > find a page form page(PG_uptodate|PG_readahead|PG_writeback) > it will return VM_FAULT_RETRY > continue with faulty_address > > IOW, it will repeat fault retry logic until the page will be written > back in the long run. It makes big spike latency of several seconds. > > This patch solves the issue by turning off fault retry logic in second > trial. I guess a resend would be helpful, to refresh memories. Please mention in the changelog whether this "long time stall" has been observed in practice. If so, under what conditions, how often and how long was it? etcetera.