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:
committed by
Dmitry Skiba
parent
9815c68b51
commit
4e714e1a8a
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user