Re: [PATCH v3] mm/page_alloc: only update lowmem_reserve_ratio on sysctl write

Joel Granados <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.mm
Message-ID <k53aljpl7v7naqs5fj4i4po6tu4grkzu5nui4h37orwt6v7bqo@sw4frf2ystmi>
On Mon, Aug 03, 2026 at 10:27:46AM +0200, Vlastimil Babka (SUSE) wrote:
> +Cc: sysctl maintainers
> 
> On 8/1/26 20:44, Andrew Morton wrote:
> > On Sat,  1 Aug 2026 23:11:25 +0800 Jianlin Shi <[email protected]> wrote:
> > 
> >> lowmem_reserve_ratio_sysctl_handler() ignores the return value of
> >> proc_dointvec_minmax() and always calls setup_per_zone_lowmem_reserve(),
> >> even for read operations.
> >> 
> >> Fix two issues:
> >> 
> >> 1. Propagate errors from proc_dointvec_minmax() instead of always
> >>    returning success.  For example, writing non-integer garbage to the
> >>    sysctl now returns an error instead of silently succeeding with
> >>    unchanged values.
> > 
> > AI review suggest that this caused a new problem:
> > 
> > 	https://sashiko.dev/#/patchset/[email protected]
> > 
> > Not sure what to do here.  Perhaps pass proc_dointvec_minmax() a
> > temporary then copy that into sysctl_lowmem_reserve_ratio if all
> > proc_dointvec_minmax() returns "OK".
> 
> Seeing the v4 [1] it seems easier to keep the current fixup code until
> proc_dointvec_minmax() is fixed.

1. V3 -vs- V4:
  I would prefer V4 as it actually prevents the partial write of the
  vector in case of an error & returns that error back to user space.
  Whereas V3 returns the error back to user space but keeps the partial
  write.

That patterns of using a temp ctltable entry is seldom used but not
unheard of.

> 
> > But really this is a flaw in proc_dointvec_minmax() isn't it?  It
> > shouldn't update the table data until all the data has been validated.
> 
> I agree. What do the maintainers think?

I agree. The arrays being changed are not too big so we can easily have
a staging variable that that gets written when all validations are done.
The only "con" that I see for this solution is for when these
proc_handlers get used with temp variables; in these cases we will be
staging an already staging variable.

I have added this to my Todos

Best

-- 

Joel
signature.asc (application/pgp-signature, 659 B)
-----BEGIN PGP SIGNATURE-----

iQGzBAABCgAdFiEErkcJVyXmMSXOyyeQupfNUreWQU8FAmpx2QUACgkQupfNUreW
QU8Qkwv/fPz+ltet7pLkvz28K9W7ZeeQ1dzKM4/bQdIYZxqlMljMlarMc8WAlm1R
7KDlkxnxe8BT2+RuQJLihpOG2lWYpyRuhBiGN/YtiM+1NJEkTtqu1gYL7C218UK6
MwRLPsaejC4WK7IqZlvC1xjTuexaNUe3RcLVwDmxNc+I+5LSjcuku/aPb0/o6i9u
MXgvxweMRhiJ3oZ0WhN+VZayLAf4Nxz9+1qV/24mU/khekmBLficWy+KbBbrKRrp
lUqNObbmUseNJPij/Vx9+SkZoq30id5jb1bOoHcoI0KmO7VbTSLoDuJxXjjy/Lnb
+yBZ5fdevWFEFdYKsvfvYMyfBMo/fcnHkuXihKbn9FG/zKRaWssr/3H8Yi4SODyl
Wk5Bpr8TFuhY7RbzJQ/rb4QgjmdYo7uaNeHz6pieddZBL9Cqj0K955Pc22Gwza+z
Jn2CgWwRkvVQnPKrbWiUYubcyf6RdN6nLTeiIMkC7wVwVrjbh/pwfUzeOUrtM4JY
rH+bzQjU
=stmO
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.