diff options
author | Matthew Wilcox <mawilcox@microsoft.com> | 2016-12-14 18:08:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-14 19:04:10 -0500 |
commit | 268f42de718128cd0301293177e79c08c38e39a6 (patch) | |
tree | 6668c85388c327f64ce9b51e77d70e245ec52b57 /tools/testing/radix-tree/regression2.c | |
parent | 478922e2b0f41567e4a530771bfb3f693f857d45 (diff) |
radix-tree: delete radix_tree_range_tag_if_tagged()
This is an exceptionally complicated function with just one caller
(tag_pages_for_writeback). We devote a large portion of the runtime of
the test suite to testing this one function which has one caller. By
introducing the new function radix_tree_iter_tag_set(), we can eliminate
all of the complexity while keeping the performance. The caller can now
use a fairly standard radix_tree_for_each() loop, and it doesn't need to
worry about tricksy things like 'start' wrapping.
The test suite continues to spend a large amount of time investigating
this function, but now it's testing the underlying primitives such as
radix_tree_iter_resume() and the radix_tree_for_each_tagged() iterator
which are also used by other parts of the kernel.
Link: http://lkml.kernel.org/r/1480369871-5271-57-git-send-email-mawilcox@linuxonhyperv.com
Signed-off-by: Matthew Wilcox <willy@infradead.org>
Tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'tools/testing/radix-tree/regression2.c')
-rw-r--r-- | tools/testing/radix-tree/regression2.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/testing/radix-tree/regression2.c b/tools/testing/radix-tree/regression2.c index 63bf347aaf33..a41325d7a170 100644 --- a/tools/testing/radix-tree/regression2.c +++ b/tools/testing/radix-tree/regression2.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <stdio.h> | 50 | #include <stdio.h> |
51 | 51 | ||
52 | #include "regression.h" | 52 | #include "regression.h" |
53 | #include "test.h" | ||
53 | 54 | ||
54 | #define PAGECACHE_TAG_DIRTY 0 | 55 | #define PAGECACHE_TAG_DIRTY 0 |
55 | #define PAGECACHE_TAG_WRITEBACK 1 | 56 | #define PAGECACHE_TAG_WRITEBACK 1 |
@@ -90,7 +91,7 @@ void regression2_test(void) | |||
90 | /* 1. */ | 91 | /* 1. */ |
91 | start = 0; | 92 | start = 0; |
92 | end = max_slots - 2; | 93 | end = max_slots - 2; |
93 | radix_tree_range_tag_if_tagged(&mt_tree, &start, end, 1, | 94 | tag_tagged_items(&mt_tree, NULL, start, end, 1, |
94 | PAGECACHE_TAG_DIRTY, PAGECACHE_TAG_TOWRITE); | 95 | PAGECACHE_TAG_DIRTY, PAGECACHE_TAG_TOWRITE); |
95 | 96 | ||
96 | /* 2. */ | 97 | /* 2. */ |