[LU-15518] mmap readahead: Ignore retried faults (VM_FAULT_RETRY) Created: 03/Feb/22  Updated: 04/Feb/22

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Patrick Farrell Assignee: Patrick Farrell
Resolution: Unresolved Votes: 0
Labels: None

Rank (Obsolete): 9223372036854775807

 Description   

When filemap_fault finds a page which is already locked, it returns VM_FAULT_RETRY.  This can happen quite commonly if a page is being read in by readahead when we go to read it.  This means we never call readpage for that fault.

The fault will generally be retried from the kernel (outside of Lustre), which looks like a brand new mmap fault to Lustre, so that's fine, but this can confuse readahead, because we will call ll_ras_enter, but never call ras_update.  This throws off the readahead algorithm.

The answer is to move the ll_ras_enter call in to ll_readpage.  This depends on the mmap readahead simplification from LU-15516.



 Comments   
Comment by Gerrit Updater [ 04/Feb/22 ]

"Patrick Farrell <pfarrell@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/46459
Subject: LU-15518 llite: mmap readahead: ignore retries
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 90eba2f5b5c575bb8da9a901c75e8f0dcd518ea5

Generated at Sat Feb 10 03:19:00 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.