public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Gao Xiang <hsiangkao@linux.alibaba.com>
To: Hillf Danton <hdanton@sina.com>,
	Douglas Anderson <dianders@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@techsingularity.net>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Yu Zhao <yuzhao@google.com>, Matthew Wilcox <willy@infradead.org>
Subject: Re: [PATCH v2 1/4] mm/filemap: Add folio_lock_timeout()
Date: Sun, 23 Apr 2023 14:08:49 +0800	[thread overview]
Message-ID: <89dc2886-daeb-67ff-be6d-4d70343d2d8b@linux.alibaba.com> (raw)
In-Reply-To: <20230422051858.1696-1-hdanton@sina.com>



On 2023/4/22 13:18, Hillf Danton wrote:
> On 21 Apr 2023 15:12:45 -0700 Douglas Anderson <dianders@chromium.org>
>> Add a variant of folio_lock() that can timeout. This is useful to
>> avoid unbounded waits for the page lock in kcompactd.
> 
> Given no mutex_lock_timeout() (perhaps because timeout makes no sense for
> spinlock), I suspect your fix lies in the right layer. If waiting for
> page under IO causes trouble for you, another simpler option is make
> IO faster (perhaps all you can do) for instance. If kcompactd is waken
> up by kswapd, waiting for slow IO is the right thing to do.


A bit out of topic.  That is almost our original inital use scenarios for
EROFS [1] although we didn't actually test Chrome OS, there lies four
points:

  1) 128kb compressed size unit is not suitable for memory constraint
     workload, especially memory pressure scenarios, that amplify both I/Os
     and memory footprints (EROFS was initially optimized with 4KiB
     pclusters);

  2) If you turn into a small compressed size (e.g. 4 KiB), some fs behaves
     ineffective since its on-disk compressed index isn't designed to be
     random accessed (another in-memory cache for random access) so you have
     to count one by one to calculate physical data offset if cache miss;

  3) compressed data needs to take extra memory during I/O (especially
     low-ended devices) that makes the cases worse and our camera app
     workloads once cannot be properly launched under heavy memory pressure,
     but in order to keep user best experience we have to keep as many as
     apps active so that it's hard to kill apps directly.  So inplace I/O +
     decompression is needed in addition to small compressed sizes for
     overall performance.

  4) If considering real-time performance, some algorithms are not quite
     suitable for extreme pressure cases;

  etc.

I could give more details on this year LSF/MM about this, although it's not
a new topic and I'm not a Android guy now.

[1] https://www.usenix.org/conference/atc19/presentation/gao

Thanks,
Gao Xiang

> 
> 

  parent reply	other threads:[~2023-04-23  6:10 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-21 22:12 [PATCH v2 0/4] migrate: Avoid unbounded blocks in MIGRATE_SYNC_LIGHT Douglas Anderson
2023-04-21 22:12 ` [PATCH v2 1/4] mm/filemap: Add folio_lock_timeout() Douglas Anderson
2023-04-23  7:50   ` Huang, Ying
2023-04-24  8:22   ` Mel Gorman
2023-04-24 16:22     ` Doug Anderson
2023-04-25  8:00       ` Mel Gorman
2023-04-21 22:12 ` [PATCH v2 2/4] buffer: Add lock_buffer_timeout() Douglas Anderson
2023-04-23  8:47   ` Huang, Ying
2023-04-21 22:12 ` [PATCH v2 3/4] migrate_pages: Don't wait forever locking pages in MIGRATE_SYNC_LIGHT Douglas Anderson
2023-04-23  7:59   ` Huang, Ying
2023-04-24  9:38   ` Mel Gorman
2023-04-21 22:12 ` [PATCH v2 4/4] migrate_pages: Don't wait forever locking buffers " Douglas Anderson
     [not found] ` <20230422051858.1696-1-hdanton@sina.com>
2023-04-23  6:08   ` Gao Xiang [this message]
     [not found]   ` <20230423081203.1812-1-hdanton@sina.com>
2023-04-23  8:35     ` [PATCH v2 1/4] mm/filemap: Add folio_lock_timeout() Gao Xiang
     [not found]     ` <20230423094901.1867-1-hdanton@sina.com>
2023-04-23 10:45       ` Gao Xiang
2023-04-24 16:56   ` Doug Anderson
     [not found]     ` <20230425010917.1984-1-hdanton@sina.com>
2023-04-25 14:19       ` Doug Anderson
     [not found]         ` <20230426044207.2378-1-hdanton@sina.com>
2023-04-26  4:55           ` Doug Anderson
2023-04-26 10:09         ` Mel Gorman
2023-04-26 15:14           ` Matthew Wilcox
2023-04-26 20:46             ` Doug Anderson
2023-04-26 21:26               ` Matthew Wilcox
2023-04-26 21:39                 ` Doug Anderson
2023-04-27  2:16                   ` Matthew Wilcox
2023-04-27  9:48                   ` Mel Gorman
2023-04-26 15:24           ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=89dc2886-daeb-67ff-be6d-4d70343d2d8b@linux.alibaba.com \
    --to=hsiangkao@linux.alibaba.com \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=dianders@chromium.org \
    --cc=hdanton@sina.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    --cc=yuzhao@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox