ANDROID: add reclaim tune parameter functions

This patch adds two exported functions to set/get reclaim parameters.

Bug: 323406883
Change-Id: I8c29073dba3e77cb5db7f45b640518deae04b8a9
Signed-off-by: Minchan Kim <minchan@google.com>
Signed-off-by: Richard Chang <richardycc@google.com>
(cherry picked from commit dde2272b2705b283ae3b251823ba8df69c782006)
Signed-off-by: Dmitry Skiba <dskiba@google.com>
This commit is contained in:
Minchan Kim
2024-04-06 01:05:28 +00:00
committed by Dmitry Skiba
parent 9815c68b51
commit 4e714e1a8a
2 changed files with 27 additions and 0 deletions
+3
View File
@@ -431,6 +431,9 @@ static inline bool gfp_compaction_allowed(gfp_t gfp_mask)
extern gfp_t vma_thp_gfp_mask(struct vm_area_struct *vma);
int set_reclaim_params(int wmark_scale_factor, int swappiness);
void get_reclaim_params(int *wmark_scale_factor, int *swappiness);
#ifdef CONFIG_CONTIG_ALLOC
/* The below functions must be run on a range from a single zone. */
extern int alloc_contig_range_noprof(unsigned long start, unsigned long end,
+24
View File
@@ -399,6 +399,30 @@ static inline int pfn_to_bitidx(const struct page *page, unsigned long pfn)
return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS;
}
int set_reclaim_params(int wmark_scale_factor, int swappiness)
{
if (wmark_scale_factor > 3000 || wmark_scale_factor < 1)
return -EINVAL;
if (swappiness > 200 || swappiness < 0)
return -EINVAL;
WRITE_ONCE(vm_swappiness, swappiness);
WRITE_ONCE(watermark_scale_factor, wmark_scale_factor);
setup_per_zone_wmarks();
return 0;
}
EXPORT_SYMBOL_GPL(set_reclaim_params);
void get_reclaim_params(int *wmark_scale_factor, int *swappiness)
{
*wmark_scale_factor = watermark_scale_factor;
*swappiness = vm_swappiness;
}
EXPORT_SYMBOL_GPL(get_reclaim_params);
/**
* get_pfnblock_flags_mask - Return the requested group of flags for the pageblock_nr_pages block of pages
* @page: The page within the block of interest