Skip to contentSkip to conversation

Patch "arm64: readahead: fault retry breaks mmap file read random detection" has been added to the 4.1-stable tree

PATCH [email protected] 1 participant 1 message Oct 18, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

arm64: readahead: fault retry breaks mmap file read random detection

to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
arm64-readahead-fault-retry-breaks-mmap-file-read-random-detection.patch
and it can be found in the queue-4.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 569ba74a7ba69f46ce2950bf085b37fea2408385 Mon Sep 17 00:00:00 2001

From: Mark Salyzyn <[email protected]>
Date: Mon, 21 Sep 2015 21:39:50 +0100
Subject: arm64: readahead: fault retry breaks mmap file read random detection

From: Mark Salyzyn <[email protected]>

commit 569ba74a7ba69f46ce2950bf085b37fea2408385 upstream.

This is the arm64 portion of commit 45cac65b0fcd ("readahead: fault retry breaks mmap file read random detection"), which was absent from the initial port and has since gone unnoticed. The original commit says:

Quoted 7 lines

.fault now can retry. The retry can break state machine of .fault. In filemap_fault, if page is miss, ra->mmap_miss is increased. In the second try, since the page is in page cache now, ra->mmap_miss is decreased. And these are done in one fault, so we can't detect random mmap file access.

Add a new flag to indicate .fault is tried once. In the second try, skip ra->mmap_miss decreasing. The filemap_fault state machine is ok with it.

With this change, Mark reports that:

Quoted 2 lines

Random read improves by 250%, sequential read improves by 40%, and random write by 400% to an eMMC device with dm crypto wrapped around it.

---
 arch/arm64/mm/fault.c |    1 +
 1 file changed, 1 insertion(+)
arch/arm64/mm/fault.c +1 -0
@@ -279,6 +279,7 @@ retry:
 			 * starvation.
 			 */
 			mm_flags &= ~FAULT_FLAG_ALLOW_RETRY;
+			mm_flags |= FAULT_FLAG_TRIED;
 			goto retry;
 		}
 	}

Patches currently in stable-queue which might be from [email protected] are

queue-4.1/arm64-readahead-fault-retry-breaks-mmap-file-read-random-detection.patch