792718bb23
android_vh_mm_customize_longterm_pinnable - This hook allows vendors to customize some special folios that are not migrated. They should not be migrated to avoid application lags. android_vh_mm_do_madvise_bypass - This hook allows vendors to customize some madvise behaviors so that some madvise requests can be completed quickly in certain scenarios. android_vh_mm_migrate_one_page - This hook allows vendors to track certain folios that are being migrated. android_vh_mm_remove_migration_pte_bypass - This hook is used to properly handle the migration of the aforementioned special folio. android_vh_mm_split_huge_page_bypass - This hook is used in certain scenarios where large folios should not be split to avoid the overhead caused by splitting. android_vh_mm_try_split_folio_bypass - This hook is used to skip splitting large folios during migration in certain scenarios. Bug: 431672372 Change-Id: I3c3580651e330dc8cfa6fa6f7a4f85fba1ba9807 Signed-off-by: Pengfei Li <pengfei.kernel@vivo.corp-partner.google.com>
31 lines
1.2 KiB
C
31 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM madvise
|
|
#undef TRACE_INCLUDE_PATH
|
|
#define TRACE_INCLUDE_PATH trace/hooks
|
|
#if !defined(_TRACE_HOOK_MADVISE_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_HOOK_MADVISE_H
|
|
#include <trace/hooks/vendor_hooks.h>
|
|
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_process_madvise_bypass,
|
|
TP_PROTO(int pidfd, const struct iovec __user *vec, size_t vlen,
|
|
int behavior, unsigned int flags, ssize_t *ret, bool *bypass),
|
|
TP_ARGS(pidfd, vec, vlen, behavior, flags, ret, bypass), 1);
|
|
DECLARE_HOOK(android_vh_madvise_pageout_return_error,
|
|
TP_PROTO(int ret, bool *return_error),
|
|
TP_ARGS(ret, 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));
|
|
DECLARE_HOOK(android_vh_mm_do_madvise_bypass,
|
|
TP_PROTO(struct mm_struct *mm, unsigned long start, size_t len,
|
|
int behavior, int *error, bool *bypass),
|
|
TP_ARGS(mm, start, len, behavior, error, bypass));
|
|
|
|
#endif
|
|
|
|
#include <trace/define_trace.h>
|