Re: [PATCH v5] mm/page_alloc: only update lowmem_reserve_ratio on sysctl write
"Vlastimil Babka (SUSE)" <[email protected]>
| Newsgroups | org.kvack.linux-mm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/6/26 10:27, Jianlin Shi 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 three 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. > > 2. Only call setup_per_zone_lowmem_reserve() when the sysctl is > actually written, matching the write-only refresh pattern of > min_free_kbytes and watermark_scale_factor handlers. > > 3. On write, parse into a temporary ratio[] array and only copy into > sysctl_lowmem_reserve_ratio[] and refresh derived state after the > full vector is validated. This avoids leaving the ratio array > partially updated while skipping setup when proc_dointvec_minmax() > returns an error on a later element (suggested by Andrew Morton). > > Drop the manual "< 1 -> 0" sanitization loop and set .extra1 = > SYSCTL_ZERO on the ctl_table entry so proc_dointvec_minmax() enforces > the minimum on write; negative values now return -EINVAL instead of > being silently coerced to 0 (suggested by Vlastimil Babka). > > Link: https://lore.kernel.org/linux-mm/[email protected]/ > > Signed-off-by: Jianlin Shi <[email protected]> Acked-by: Vlastimil Babka (SUSE) <[email protected]>