Re: retiring laptop_mode? was Re: [PATCH] mm: vmscan: always allow writeback during memcg reclaim

Shakeel Butt
2025-12-16T23:24:05Z

On Tue, Dec 16, 2025 at 01:52:01PM -0500, Johannes Weiner wrote:
[...]
>
> From 087f10b8046864f71ebc3a3f3316b097932cbded Mon Sep 17 00:00:00 2001
> From: Johannes Weiner <hannes@cmpxchg.org>
> Date: Mon, 15 Dec 2025 12:57:53 -0500
> Subject: [PATCH] mm/block/fs: remove laptop_mode
>
> Laptop mode was introduced to save battery, by delaying and
> consolidating writes and thereby maximize the time rotating hard
> drives wouldn't have to spin.
>
> Luckily, rotating hard drives, with their high spin-up times and power
> draw, are a thing of the past for battery-powered devices. Reclaim has
> also since changed to not write single filesystem pages anymore, and
> regular filesystem writeback is lumpy by design.
>
> The juice doesn't appear worth the squeeze anymore. The footprint of
> the feature is small, but nevertheless it's a complicating factor in
> mm, block, filesystems. Developers don't think about it, and it likely
> hasn't been tested with new reclaim and writeback changes in years.
>
> Let's sunset it. Keep the sysctl with a deprecation warning around for
> a few more cycles, but remove all functionality behind it.
>
> Suggested-by: Christoph Hellwig <hch@infradead.org>
> Message-ID: <aT-xv1BNYabnZB_n@infradead.org>

Is there a need for above message ID? Why not put the whole lore link?

> Acked-by: Jens Axboe <axboe@kernel.dk>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

One nit below and other than that you can add:

Reviewed-by: Shakeel Butt <shakeel.butt@linux.dev>

> --- a/include/uapi/linux/sysctl.h
> +++ b/include/uapi/linux/sysctl.h
> @@ -183,7 +183,7 @@ enum
> VM_LOWMEM_RESERVE_RATIO=20,/* reservation ratio for lower memory zones */
> VM_MIN_FREE_KBYTES=21, /* Minimum free kilobytes to maintain */
> VM_MAX_MAP_COUNT=22, /* int: Maximum number of mmaps/address-space */
> - VM_LAPTOP_MODE=23, /* vm laptop mode */
> +

There are 8 earlier enums here with names like VM_UNUSED* along with
the information on what were they. Should we have something similar for
this one? Something like:

VM_UNUSED10=23, /* was vm laptop mode */