Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2557386pxa; Mon, 24 Aug 2020 18:29:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLX0vZ8SxJCwDA5nZfnOn8boh9fyuvCORBb49tvLoDXS6vcaSmbKeW06D9OlgYNIuy+CCd X-Received: by 2002:aa7:c252:: with SMTP id y18mr4613037edo.295.1598318964374; Mon, 24 Aug 2020 18:29:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598318964; cv=none; d=google.com; s=arc-20160816; b=JhYhox/pasT1kut5WOl3Wpk7q01+soeTO6/aHDYr52MNlUpngborA+MWZe5HIJx/O/ y87mkpYwdAGXe1pbidodwro9M4lMygY3sxp7vTlbyWvG4QLm9xsdEXcFYz8upChd2yqS B5ZwLl+D7cXoITGBuCyC5uANnfGMvg/Ka9OaPVWupTSY+9VkA5yVy+C7C0jPNOBeX95o CZO4TIwZ/HX0jwwnXXjY7/y8yIEG2Lq3jdeBAtvLkJFNMXSC9BO1OAuGxcJipjs6w44O oS7sd44rOX6lfsrUxLKwlGbmD+cwPL81AH7dZPu8D7DrqunY0Ra2OBzCrnv7rnEf82nL 0hqw== 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=/BQ53bR9yzL5LCkQfVs+ALLFFuHnjhrGR7al0c4QWdM=; b=TxI6VYHnGh8GcNuRGqp7AuCX4YzmXMcaPm6eIHURsd0t23YW8lAm2EtfZ8DDDL2Us/ QZ1ijwO2+o41GBzlD0NcQ1nYu8Dw/oI7LKQx1kBAnRROPm8VjWqtKcuTKIKa2w89kaOs D7QgG6dqh7jd7wh7GBHj2UsKYR6kGAkAOx33SbPqCIurTX7LsHh5PS40hbOFGcfioPep FpLgV+ohgg9UHREcf2f4ZheIDopqS2aLapmdWsyxTmlSXvLI7zW0TU21qDyHUGKifkbi +hHOm40kTJcxy+yTur4rggqNrIg7XFyFaul+GrLyn8DDuNqlWqkPjcrRutLmdrwS2CAZ qjTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="tEp/OEWL"; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m18si1612603ejk.743.2020.08.24.18.29.01; Mon, 24 Aug 2020 18:29:24 -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=@gmail.com header.s=20161025 header.b="tEp/OEWL"; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726119AbgHYB0H (ORCPT + 99 others); Mon, 24 Aug 2020 21:26:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725850AbgHYBZ6 (ORCPT ); Mon, 24 Aug 2020 21:25:58 -0400 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C1E8C061796 for ; Mon, 24 Aug 2020 18:25:58 -0700 (PDT) Received: by mail-io1-xd42.google.com with SMTP id b16so10834671ioj.4 for ; Mon, 24 Aug 2020 18:25:58 -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=/BQ53bR9yzL5LCkQfVs+ALLFFuHnjhrGR7al0c4QWdM=; b=tEp/OEWL/eQB1zCKQeNoB5C1Gl7GMu1z02dU3GW78P8V9VwSwgXvgSVvQEA/zpLwca 9LB7yPkk9kfrQ3T2YALjtlFFQCCNJPlxfTIGkBNM4RWVKYAkoBenhNi+d6iqMyil/9L4 HagHEQGJf4blTAFb6VtuMF4h8Y8NJSKf9J4YAvdMMpzYPfFfSf/qM2O7Z+aAn9hYM1Af S2aDHrTZRu+jxrdKqdRNDuGjgZu+qt9prvyLOg5c3dnlJTsMzpOVYMmWwV41AdzqzA3q 36/Q8ygp6O67P3xRn8CWhv3PigokqiJiKKCh31MXzFu195rf17UFxzV483RIjgxUhfPY 9+XQ== 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=/BQ53bR9yzL5LCkQfVs+ALLFFuHnjhrGR7al0c4QWdM=; b=ZVZqr5xCSYHPXB2QwMYaTgGTBRDJutonBlEF5EYnDgp+hPkyb82JcI7pSeBPqPOxOt OGZQqxr9uAUpJqwppHGZ8Ao2lOayQqk4CYP2GPsHAPOdx4PReeqY5Jy1gCJtP83RRM7y NY83HQT1tS1rF4aqKq9GHOmK66uUq8aDhzjtUeUpOpNv4ipT/u1MQ8TtY+DGzHM6aBlA 7zewhyQ1yb/HlgCNeUKE1vRoplnAWfvzoO8rTfGLDyZl4VeS9WAmtw3ozkWJ74DDrlGG QqOVzRnO2p7YueWa5tcoJKZMZlIo+dGeATQlgJfq2jldDW4E2iMcDxqWW+538gmxFlrn SZcA== X-Gm-Message-State: AOAM532Ng1NmtI9Xu93DOM/JMltNOAATbEToNprSDXk4WXeoQnS/FIF0 IPN/Vs3PLZNAsb43aiRWVeYLiS12TFOBhtO7MDU= X-Received: by 2002:a05:6638:298:: with SMTP id c24mr8439577jaq.20.1598318757876; Mon, 24 Aug 2020 18:25:57 -0700 (PDT) MIME-Version: 1.0 References: <1598001864-6123-1-git-send-email-zhaoyang.huang@unisoc.com> <20200821115744.GP17456@casper.infradead.org> In-Reply-To: <20200821115744.GP17456@casper.infradead.org> From: Zhaoyang Huang Date: Tue, 25 Aug 2020 09:25:46 +0800 Message-ID: Subject: Re: [PATCH v2] mm : sync ra->ra_pages with bdi->ra_pages To: Matthew Wilcox Cc: Andrew Morton , Minchan Kim , Zhaoyang Huang , "open list:MEMORY MANAGEMENT" , LKML , chunyan.zhang@unisoc.com, Baolin Wang 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 Fri, Aug 21, 2020 at 7:57 PM Matthew Wilcox wrote: > > On Fri, Aug 21, 2020 at 05:31:52PM +0800, Zhaoyang Huang wrote: > > This patch has been verified on an android system and reduces 15% of > > UNITERRUPTIBLE_SLEEP_BLOCKIO which was used to be caused by wrong > > ra->ra_pages. > > Wait, what? Readahead doesn't sleep on the pages it's requesting. > Unless ... your file access pattern is random, so you end up submitting > a readahead I/O that's bigger than needed, so takes longer for the page > you actually wanted to be returned. I know we have the LOTSAMISS > logic, but that's not really enough. > > OK, assuming this problem is really about sync mmap (ie executables), > this makes a bit more sense. I think the real problem is here: > > ra->start = max_t(long, 0, offset - ra->ra_pages / 2); > ra->size = ra->ra_pages; > ra->async_size = ra->ra_pages / 4; > ra_submit(ra, mapping, file); > > which actually skips all the logic we have in ondemand_readahead() > for adjusting the readahead size. Ugh, this is a mess. > > I think a quick fix to your problem will be just replacing ra->ra_pages > with bdi->ra_pages in do_sync_mmap_readahead() and leaving ra->ra_pages > alone everywhere else. > We can't just sync ra->ra_pages with bdi->ra_pages as eio and fadvise will shrink or turbo it, that is why I introduce seq_read_fact in this commit > We need a smarter readahead algorithm for mmap'ed files, and I don't have > time to work on it right now. So let's stick to the same dumb algorithm, > but make it responsive to bdi ra_pages being reset.