mm: mm_event: add read io stat
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / mm / filemap.c
index dff99a346d67b3a2dbda1b5b6b0741da76d03de4..6a7bbb09d1b523bb7493bbcf9c9acbfdaed358ef 100644 (file)
@@ -1980,7 +1980,9 @@ static ssize_t generic_file_buffered_read(struct kiocb *iocb,
                pgoff_t end_index;
                loff_t isize;
                unsigned long nr, ret;
+               ktime_t event_ts;
 
+               event_ts = 0;
                cond_resched();
 find_page:
                if (fatal_signal_pending(current)) {
@@ -1992,6 +1994,7 @@ find_page:
                if (!page) {
                        if (iocb->ki_flags & IOCB_NOWAIT)
                                goto would_block;
+                       mm_event_start(&event_ts);
                        page_cache_sync_readahead(mapping,
                                        ra, filp,
                                        index, last_index - index);
@@ -2038,6 +2041,8 @@ find_page:
                        unlock_page(page);
                }
 page_ok:
+               if (event_ts != 0)
+                       mm_event_end(MM_READ_IO, event_ts);
                /*
                 * i_size must be checked after we know the page is Uptodate.
                 *