On 1/2/19 11:41 PM, Huang, Ying wrote:
Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> writes:
swap_vma_readahead()'s comment is missed, just add it.
Cc: Huang Ying <ying.huang@xxxxxxxxx>
Cc: Tim Chen <tim.c.chen@xxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx>
---
mm/swap_state.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/mm/swap_state.c b/mm/swap_state.c
index 78d500e..dd8f698 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -698,6 +698,23 @@ static void swap_ra_info(struct vm_fault *vmf,
pte_unmap(orig_pte);
}
+/**
+ * swap_vm_readahead - swap in pages in hope we need them soon
s/swap_vm_readahead/swap_vma_readahead/
+ * @entry: swap entry of this memory
+ * @gfp_mask: memory allocation flags
+ * @vmf: fault information
+ *
+ * Returns the struct page for entry and addr, after queueing swapin.
+ *
+ * Primitive swap readahead code. We simply read in a few pages whoes
+ * virtual addresses are around the fault address in the same vma.
+ *
+ * This has been extended to use the NUMA policies from the mm triggering
+ * the readahead.
What is this? I know you copy it from swap_cluster_readahead(), but we
have only one mm for vma readahead.
Aha, I see. Actually I was confused by this too, so just copied from
swap_cluster_readahead.
+ * Caller must hold down_read on the vma->vm_mm if vmf->vma is not NULL.
Better to make it explicit that your are talking about mmap_sem?
Sure.
Thanks,
Yang
Best Regards,
Huang, Ying
+ *
+ */
static struct page *swap_vma_readahead(swp_entry_t fentry, gfp_t gfp_mask,
struct vm_fault *vmf)
{