ANDROID: restricted vendor_hook: add swap_read_folio_bdev_sync
Add restricted vendor hook to optimize the swap-in latency. Rename swap_readpage_bdev_sync to swap_read_folio_bdev_sync to align with the upstream function name. Bug: 436973821 (cherry picked from commit 6d61bc2d2d7fcb6e4eef25e5182563b0ae79e4c3) Change-Id: I1a2be1a309769590cb427e13762e29d8c8fa9cf6 Signed-off-by: Richard Chang <richardycc@google.com>
This commit is contained in:
committed by
Minchan Kim
parent
7c4c173a5f
commit
cb29206296
@@ -571,6 +571,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_swap_page);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_anonymous_page);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uprobes_replace_page);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swap_writepage);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_swap_read_folio_bdev_sync);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node_memcgs);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
|
||||
|
||||
@@ -538,6 +538,10 @@ DECLARE_HOOK(android_vh_shmem_swapin_folio,
|
||||
DECLARE_HOOK(android_vh_swap_writepage,
|
||||
TP_PROTO(unsigned long *sis_flags, struct page *page),
|
||||
TP_ARGS(sis_flags, page));
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_swap_read_folio_bdev_sync,
|
||||
TP_PROTO(struct block_device *bdev, sector_t sector,
|
||||
struct page *page, bool *read),
|
||||
TP_ARGS(bdev, sector, page, read), 4);
|
||||
DECLARE_HOOK(android_vh_mmap_region,
|
||||
TP_PROTO(struct vm_area_struct *vma, unsigned long addr),
|
||||
TP_ARGS(vma, addr));
|
||||
|
||||
@@ -583,6 +583,15 @@ static void swap_read_folio_bdev_sync(struct folio *folio,
|
||||
{
|
||||
struct bio_vec bv;
|
||||
struct bio bio;
|
||||
bool read = false;
|
||||
|
||||
trace_android_rvh_swap_read_folio_bdev_sync(sis->bdev,
|
||||
swap_folio_sector(folio) + get_start_sect(sis->bdev),
|
||||
&folio->page, &read);
|
||||
if (read) {
|
||||
count_vm_events(PSWPIN, folio_nr_pages(folio));
|
||||
return;
|
||||
}
|
||||
|
||||
bio_init(&bio, sis->bdev, &bv, 1, REQ_OP_READ);
|
||||
bio.bi_iter.bi_sector = swap_folio_sector(folio);
|
||||
|
||||
Reference in New Issue
Block a user