On Thu, 10 Oct 2019 15:17:47 -0400 Johannes Weiner <[email protected]> wrote:

> On Thu, Oct 10, 2019 at 08:21:34AM -0700, Minchan Kim wrote:
> > From: Minchan Kim <[email protected]>
> > 
> > If block device supports rw_page operation, it doesn't submit bio
> > so annotation in submit_bio for refault stall doesn't work.
> > It happens with zram in android, especially swap read path which
> > could consume CPU cycle for decompress. It is also a problem for
> > zswap which uses frontswap.
> > 
> > Annotate swap_readpage() to account the synchronous IO overhead
> > to prevent underreport memory pressure.
> > 
> > Cc: Johannes Weiner <[email protected]>
> > Signed-off-by: Minchan Kim <[email protected]>
> 
> Acked-by: Johannes Weiner <[email protected]>
> 
> Can you please add a comment to the caller? Lifted from submit_bio():
> 
>       /*
>        * Count submission time as memory stall. When the device is
>        * congested, or the submitting cgroup IO-throttled,
>        * submission can be a significant part of overall IO time.
>        */

This?

--- a/mm/page_io.c~mm-annotate-refault-stalls-from-swap_readpage-fix
+++ a/mm/page_io.c
@@ -361,6 +361,11 @@ int swap_readpage(struct page *page, boo
        VM_BUG_ON_PAGE(!PageLocked(page), page);
        VM_BUG_ON_PAGE(PageUptodate(page), page);
 
+       /*
+        * Count submission time as memory stall. When the device is congested,
+        * or the submitting cgroup IO-throttled, submission can be a
+        * significant part of overall IO time.
+        */
        psi_memstall_enter(&pflags);
 
        if (frontswap_load(page) == 0) {
_

Reply via email to