ANDROID: mm: add vendor hook to bypass madvise_pageout
Add vendor hook to bypass madvise_pageout on some conditions such as mmap_lock contention. Bug: 351175506 Change-Id: Idbdcdf196cb10bbf7f92775fbc539137ca961c54 Signed-off-by: Sooyong Suk <s.suk@samsung.corp-partner.google.com>
This commit is contained in:
committed by
Suren Baghdasaryan
parent
4ac77992ba
commit
f2b4e4dcc3
@@ -333,3 +333,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_process_madvise_bypass);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_pageout_return_error);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_madvise_return_error);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_pageout_bypass);
|
||||
|
||||
@@ -17,6 +17,9 @@ DECLARE_HOOK(android_vh_madvise_pageout_return_error,
|
||||
DECLARE_HOOK(android_vh_process_madvise_return_error,
|
||||
TP_PROTO(int behavior, int ret, bool *return_error),
|
||||
TP_ARGS(behavior, ret, return_error));
|
||||
DECLARE_HOOK(android_vh_madvise_pageout_bypass,
|
||||
TP_PROTO(struct mm_struct *mm, bool pageout, int *ret),
|
||||
TP_ARGS(mm, pageout, ret));
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -352,10 +352,15 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
|
||||
bool pageout_anon_only_filter;
|
||||
unsigned int batch_count = 0;
|
||||
int nr;
|
||||
int ret = 0;
|
||||
|
||||
if (fatal_signal_pending(current))
|
||||
return -EINTR;
|
||||
|
||||
trace_android_vh_madvise_pageout_bypass(mm, pageout, &ret);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
pageout_anon_only_filter = pageout && !vma_is_anonymous(vma) &&
|
||||
!can_do_file_pageout(vma);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user