ANDROID: vendor_hook: Add hook in swap_slots
Provide a vendor hook android_vh_swap_slot_cache_active to pass the active status of swap_slots_cache. This status will be used in the process of reclaiming the pages that is required to be reclaimed to a specified swap location. Bug: 234214858 Signed-off-by: Bing Han <bing.han@transsion.com> Change-Id: I8211760e0f37fe4a514f6ceaae9993925da8cd6d
This commit is contained in:

committed by
Treehugger Robot

parent
034877c195
commit
f6f18f7ffa
@@ -416,6 +416,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_referenced_one_end);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_pswpin);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_pswpin);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_pswpout);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_pswpout);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_swpout_vm_event);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_count_swpout_vm_event);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swap_slot_cache_active);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_drain_slots_cache_cpu);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_drain_slots_cache_cpu);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_swap_slot_cache);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_swap_slot_cache);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_swap_slot);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_swap_slot);
|
||||||
|
@@ -177,6 +177,9 @@ DECLARE_HOOK(android_vh_count_pswpout,
|
|||||||
DECLARE_HOOK(android_vh_count_swpout_vm_event,
|
DECLARE_HOOK(android_vh_count_swpout_vm_event,
|
||||||
TP_PROTO(struct swap_info_struct *sis, struct page *page, bool *skip),
|
TP_PROTO(struct swap_info_struct *sis, struct page *page, bool *skip),
|
||||||
TP_ARGS(sis, page, skip));
|
TP_ARGS(sis, page, skip));
|
||||||
|
DECLARE_HOOK(android_vh_swap_slot_cache_active,
|
||||||
|
TP_PROTO(bool swap_slot_cache_active),
|
||||||
|
TP_ARGS(swap_slot_cache_active));
|
||||||
DECLARE_HOOK(android_vh_drain_slots_cache_cpu,
|
DECLARE_HOOK(android_vh_drain_slots_cache_cpu,
|
||||||
TP_PROTO(struct swap_slots_cache *cache, unsigned int type,
|
TP_PROTO(struct swap_slots_cache *cache, unsigned int type,
|
||||||
bool free_slots, bool *skip),
|
bool free_slots, bool *skip),
|
||||||
|
@@ -55,6 +55,7 @@ static void deactivate_swap_slots_cache(void)
|
|||||||
{
|
{
|
||||||
mutex_lock(&swap_slots_cache_mutex);
|
mutex_lock(&swap_slots_cache_mutex);
|
||||||
swap_slot_cache_active = false;
|
swap_slot_cache_active = false;
|
||||||
|
trace_android_vh_swap_slot_cache_active(false);
|
||||||
__drain_swap_slots_cache(SLOTS_CACHE|SLOTS_CACHE_RET);
|
__drain_swap_slots_cache(SLOTS_CACHE|SLOTS_CACHE_RET);
|
||||||
mutex_unlock(&swap_slots_cache_mutex);
|
mutex_unlock(&swap_slots_cache_mutex);
|
||||||
}
|
}
|
||||||
@@ -63,6 +64,7 @@ static void reactivate_swap_slots_cache(void)
|
|||||||
{
|
{
|
||||||
mutex_lock(&swap_slots_cache_mutex);
|
mutex_lock(&swap_slots_cache_mutex);
|
||||||
swap_slot_cache_active = true;
|
swap_slot_cache_active = true;
|
||||||
|
trace_android_vh_swap_slot_cache_active(true);
|
||||||
mutex_unlock(&swap_slots_cache_mutex);
|
mutex_unlock(&swap_slots_cache_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user