Messages in this thread | | | Subject | Re: [PATCH 1/1] kernel/sysctl.c: Add /proc/sys/vm/shrink_memory feature | From | Valdis.Kletnieks@vt ... | Date | Sat, 04 Jul 2015 16:08:47 -0400 |
| |
On Fri, 03 Jul 2015 18:50:07 +0530, Pintu Kumar said: > This patch provides 2 things:
> 2. Enable shrink_all_memory API in kernel with new CONFIG_SHRINK_MEMORY. > Currently, shrink_all_memory function is used only during hibernation. > With the new config we can make use of this API for non-hibernation case > also without disturbing the hibernation case.
> --- a/mm/vmscan.c > +++ b/mm/vmscan.c
> @@ -3571,12 +3571,17 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim) > struct reclaim_state reclaim_state; > struct scan_control sc = { > .nr_to_reclaim = nr_to_reclaim, > +#ifdef CONFIG_SHRINK_MEMORY > + .gfp_mask = (GFP_HIGHUSER_MOVABLE | GFP_RECLAIM_MASK), > + .hibernation_mode = 0, > +#else > .gfp_mask = GFP_HIGHUSER_MOVABLE, > + .hibernation_mode = 1, > +#endif
That looks like a bug just waiting to happen. What happens if we call an actual hibernation mode in a SHRINK_MEMORY=y kernel, and it finds an extra gfp mask bit set, and hibernation_mode set to an unexpected value? [unhandled content-type:application/pgp-signature] | |