Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
It appears that if an application opens a large file and only does mmap reads on the file (without any close/open/stat) that the OST extent locks will never be touched and possibly be evicted by the client LRU because they are considered "unused"? It seems like this could happen for some applications doing only mmap IO, or binary executables and libraries stored in Lustre that are only accessed via mmap.
That would potentially result in the client having to repeatedly re-read data pages from the OST if the DLM lock is cancelled and flushes the cache, and cause significant operational latency for the running application as it pauses execution while the page is fetched. This seems related to the issue being fixed by LU-17463 where the mlocked pages are being dropped because the DLM locks covering those pages are aging out of the LRU rather than being refreshed each time the mmap page is accessed.
That appears to be happening because small mmap requests would fall under "short IO" and the LDLM lock covering a page already in cache is not accessed, on the assumption that if a page is already in cache it means there is a DLM extent lock already covering it.
Attachments
Issue Links
- is related to
-
LU-17463 enable/disable page cache shrinker for mlocked pages on OSC layer
- Open