]> www.infradead.org Git - users/jedix/linux-maple.git/log
users/jedix/linux-maple.git
4 years agomaple_tree: Compress ma_height into ma_flags
Liam R. Howlett [Fri, 28 Aug 2020 17:54:57 +0000 (13:54 -0400)]
maple_tree: Compress ma_height into ma_flags

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree_test: Add verification of 1000 entry tree node count with rev alloc (top...
Liam R. Howlett [Fri, 28 Aug 2020 16:01:55 +0000 (12:01 -0400)]
maple_tree_test: Add verification of 1000 entry tree node count with rev alloc (top-down)

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add push right, use memmove for b_node shifting.
Liam R. Howlett [Fri, 28 Aug 2020 15:57:18 +0000 (11:57 -0400)]
maple_tree: Add push right, use memmove for b_node shifting.

Also fix an error on the split calc discovered due to the push right.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix range calc on slot 0 and clean up empty_alloc. add rev_seq test
Liam R. Howlett [Thu, 27 Aug 2020 20:36:39 +0000 (16:36 -0400)]
maple_tree: Fix range calc on slot 0 and clean up empty_alloc. add rev_seq test

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: bulk free fixes
Liam R. Howlett [Wed, 26 Aug 2020 19:09:41 +0000 (15:09 -0400)]
maple_tree: bulk free fixes

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix test from dumping crap
Liam R. Howlett [Wed, 26 Aug 2020 19:02:00 +0000 (15:02 -0400)]
maple_tree: Fix test from dumping crap

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix direct destroy
Liam R. Howlett [Wed, 26 Aug 2020 14:34:48 +0000 (10:34 -0400)]
maple_tree: Fix direct destroy

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agommap stuff
Liam R. Howlett [Wed, 26 Aug 2020 14:34:03 +0000 (10:34 -0400)]
mmap stuff

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agolinux.c stuff
Liam R. Howlett [Wed, 26 Aug 2020 14:29:02 +0000 (10:29 -0400)]
linux.c stuff

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add non-rcu destroy_walk, rename ma_free to ma_free_rcu
Liam R. Howlett [Tue, 25 Aug 2020 19:46:43 +0000 (15:46 -0400)]
maple_tree: Add non-rcu destroy_walk, rename ma_free to ma_free_rcu

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agoradix-tree testing framework: Add kmem_cache_free_bulk
Liam R. Howlett [Tue, 25 Aug 2020 19:46:16 +0000 (15:46 -0400)]
radix-tree testing framework: Add kmem_cache_free_bulk

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Alloc at most 1 page of nodes during fork.
Liam R. Howlett [Tue, 25 Aug 2020 17:56:13 +0000 (13:56 -0400)]
maple_tree: Alloc at most 1 page of nodes during fork.

Also fix a corner case of root + children being 17 and thus failing out during a fork

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix dup tree walk up and add more testcases.
Liam R. Howlett [Mon, 24 Aug 2020 19:22:20 +0000 (15:22 -0400)]
maple_tree: Fix dup tree walk up and add more testcases.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agofork: Now with dup tree
Liam R. Howlett [Mon, 24 Aug 2020 16:22:27 +0000 (12:22 -0400)]
fork: Now with dup tree

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add dup function and testing
Liam R. Howlett [Mon, 24 Aug 2020 16:22:12 +0000 (12:22 -0400)]
maple_tree: Add dup function and testing

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: remove extra mt_dump calls from test code
Liam R. Howlett [Tue, 18 Aug 2020 01:10:42 +0000 (21:10 -0400)]
maple_tree: remove extra mt_dump calls from test code

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix append to work with allocation tree.
Liam R. Howlett [Mon, 17 Aug 2020 19:26:15 +0000 (15:26 -0400)]
maple_tree: Fix append to work with allocation tree.

Append wasn't happening with allocation tree due to the ZERO entry being
added.  Stop addign the zero entry, it should be in the mm code anyways.

Also, add gap support when appending.

Also, fix parent pointer assignment on push_left operations.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: remove debug
Liam R. Howlett [Thu, 13 Aug 2020 16:58:09 +0000 (12:58 -0400)]
maple_tree: remove debug

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix mas_awalk gap issues
Liam R. Howlett [Thu, 13 Aug 2020 16:29:42 +0000 (12:29 -0400)]
maple_tree: Fix mas_awalk gap issues

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: compress to left
Liam R. Howlett [Thu, 13 Aug 2020 00:29:39 +0000 (20:29 -0400)]
maple_tree: compress to left

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: refactor mas_split data splitting
Liam R. Howlett [Thu, 13 Aug 2020 00:25:00 +0000 (20:25 -0400)]
maple_tree: refactor mas_split data splitting

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: start pushing left for leaves
Liam R. Howlett [Wed, 12 Aug 2020 18:11:49 +0000 (14:11 -0400)]
maple_tree: start pushing left for leaves

Also, remove dup code

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add 256Byte nodes and make them default.
Liam R. Howlett [Tue, 11 Aug 2020 16:44:11 +0000 (12:44 -0400)]
maple_tree: Add 256Byte nodes and make them default.

This code adds a define to decide which node size: 128 or 256.  Defaults
to 256.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Make allocations node size agnostic
Liam R. Howlett [Fri, 7 Aug 2020 18:29:45 +0000 (14:29 -0400)]
maple_tree: Make allocations node size agnostic

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix trace test code
Liam R. Howlett [Fri, 7 Aug 2020 18:29:20 +0000 (14:29 -0400)]
maple_tree: Fix trace test code

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix compile warning
Liam R. Howlett [Fri, 7 Aug 2020 12:28:35 +0000 (08:28 -0400)]
maple_tree: Fix compile warning

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix trace header
Liam R. Howlett [Fri, 7 Aug 2020 12:05:40 +0000 (08:05 -0400)]
maple_tree: Fix trace header

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix tracing order
Liam R. Howlett [Fri, 7 Aug 2020 11:59:31 +0000 (07:59 -0400)]
maple_tree: Fix tracing order

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agommap: Rework tracing
Liam R. Howlett [Fri, 7 Aug 2020 11:57:15 +0000 (07:57 -0400)]
mmap: Rework tracing

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agotboot remove rb
Liam R. Howlett [Fri, 7 Aug 2020 10:34:58 +0000 (06:34 -0400)]
tboot remove rb

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agotboot add mt
Liam R. Howlett [Fri, 7 Aug 2020 10:34:42 +0000 (06:34 -0400)]
tboot add mt

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple: Fix tracepoints
Liam R. Howlett [Fri, 7 Aug 2020 00:29:12 +0000 (20:29 -0400)]
maple: Fix tracepoints

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agoradix tree: enhancements for maple_tree tracepoints
Liam R. Howlett [Fri, 7 Aug 2020 00:20:12 +0000 (20:20 -0400)]
radix tree: enhancements for maple_tree tracepoints

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Change ordering of pivots and slots, as well as gaps in one
Liam R. Howlett [Fri, 7 Aug 2020 00:18:14 +0000 (20:18 -0400)]
maple_tree: Change ordering of pivots and slots, as well as gaps in one
case.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap.c: Fix includes for tracepoints
Liam R. Howlett [Fri, 7 Aug 2020 00:17:45 +0000 (20:17 -0400)]
mm/mmap.c: Fix includes for tracepoints

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add tracepoints, remove SLAB_RECLAIM
Liam R. Howlett [Fri, 7 Aug 2020 00:17:30 +0000 (20:17 -0400)]
maple_tree: Add tracepoints, remove SLAB_RECLAIM

Also reorder setting of slot in mas_Descend_adopt and fix comment for smp_wmb

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Clean up splitting name and add exception to validate
Liam R. Howlett [Tue, 4 Aug 2020 14:28:59 +0000 (10:28 -0400)]
maple_tree: Clean up splitting name and add exception to validate

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix splitting causing deficient nodes.
Liam R. Howlett [Tue, 4 Aug 2020 14:15:41 +0000 (10:15 -0400)]
maple_tree: Fix splitting causing deficient nodes.

When splitting a node, ensure a deficient node is not created when a
NULL in encountered at the split.  Also adjust the checking of the limit
when incrementing to ensure both the min and the number on the right are
zero based.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix overflow on store and 3 way splits
Liam R. Howlett [Mon, 3 Aug 2020 00:30:01 +0000 (20:30 -0400)]
maple_tree: Fix overflow on store and 3 way splits

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Zero maple tree area in a single set when detatching
Liam R. Howlett [Mon, 3 Aug 2020 00:27:36 +0000 (20:27 -0400)]
mm/mmap: Zero maple tree area in a single set when detatching

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agofork: Whitespace
Liam R. Howlett [Mon, 27 Jul 2020 23:15:10 +0000 (19:15 -0400)]
fork: Whitespace

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Drop mas.node check.
Liam R. Howlett [Mon, 27 Jul 2020 23:03:11 +0000 (19:03 -0400)]
mm/mmap: Drop mas.node check.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Remove possibility of having mas->node null
Liam R. Howlett [Mon, 27 Jul 2020 23:02:13 +0000 (19:02 -0400)]
maple_tree: Remove possibility of having mas->node null

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agommap: rename unmapped to empty, change comemnts
Liam R. Howlett [Mon, 27 Jul 2020 19:34:58 +0000 (15:34 -0400)]
mmap: rename unmapped to empty, change comemnts

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm: Remove rb tree.
Liam R. Howlett [Fri, 24 Jul 2020 19:06:25 +0000 (15:06 -0400)]
mm: Remove rb tree.

Remove the RB tree and start using the maple tree for vm_area_struct
tracking.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agokernel/fork: Convert dup_mmap to use maple tree
Liam R. Howlett [Fri, 24 Jul 2020 17:32:30 +0000 (13:32 -0400)]
kernel/fork: Convert dup_mmap to use maple tree

Use the maple tree iterator to duplicate the mm_struct trees.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Change unmapped_area and unmapped_area_topdown to use maple
Liam R. Howlett [Fri, 24 Jul 2020 16:01:47 +0000 (12:01 -0400)]
mm/mmap: Change unmapped_area and unmapped_area_topdown to use maple
tree

Use the new maple tree data structure to find an unmapped area.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Change find_vma_prev() to use maple tree
Liam R. Howlett [Fri, 24 Jul 2020 15:48:08 +0000 (11:48 -0400)]
mm/mmap: Change find_vma_prev() to use maple tree

Change the implementation of find_vma_prev to use the new maple tree
data structure.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Change find_vma() to use the maple tree
Liam R. Howlett [Fri, 24 Jul 2020 15:38:39 +0000 (11:38 -0400)]
mm/mmap: Change find_vma() to use the maple tree

Start using the maple tree to find VMA entries in an mm_struct.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm: Start tracking VMAs with maple tree
Liam R. Howlett [Fri, 24 Jul 2020 17:04:30 +0000 (13:04 -0400)]
mm: Start tracking VMAs with maple tree

Start tracking the VMAs with the new maple tree structure in parallel
with the rb_tree.  Add debug and trace events for maple tree operations
and duplicate the rb_tree that is created on forks into the maple tree.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Fix crash on spanning rebalance all the way to root.
Liam R. Howlett [Tue, 4 Aug 2020 19:40:32 +0000 (15:40 -0400)]
maple_tree: Fix crash on spanning rebalance all the way to root.

It is possible to have a spanning rebalance that causes 3 new nodes per
level and a new level added in a new root node.  This means that
allocations need to be 3 * height + 1, and this situation needs to be
detected so that dead root isn't attempted to ascend looking for more
data to merge in.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agoradix tree test suite: Add support for fallthrough attribute
Liam R. Howlett [Mon, 27 Jul 2020 19:28:58 +0000 (15:28 -0400)]
radix tree test suite: Add support for fallthrough attribute

Add support for fallthrough on case statements.  Note this does *NOT*
check for missing fallthrough, but does allow compiling of code with
fallthrough in case statements.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Update unmapped area name, remove mas->node == NULL
Liam R. Howlett [Tue, 4 Aug 2020 17:25:36 +0000 (13:25 -0400)]
maple_tree: Update unmapped area name, remove mas->node == NULL
possibility, 3 way split fixes, overflow slot fix, calc split fix,
altered descend adopt algorithm.

Many changes.

1. unmapped area => empty area
2. mas->node can no longer be null
3. splitting into 3 nodes can occur at non-leaf nodes.
4. calc split could potentially create an overflow or a deficient node.
5. drop Private from comments
6. comment fixes
7. rename combine_separate to mas_spanning_rebalance

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agotest_maple_tree: Re-enable failed test from allocation issue
Liam R. Howlett [Mon, 20 Jul 2020 16:46:19 +0000 (12:46 -0400)]
test_maple_tree: Re-enable failed test from allocation issue

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Disable maple_tree_verbose and remove mas_retry
Liam R. Howlett [Sat, 18 Jul 2020 01:58:02 +0000 (21:58 -0400)]
mm/mmap: Disable maple_tree_verbose and remove mas_retry

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: rework mas_awalk
Liam R. Howlett [Sat, 18 Jul 2020 01:51:47 +0000 (21:51 -0400)]
maple_tree: rework mas_awalk

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: rev_awalk i->slot and this_gap -> gap
Liam R. Howlett [Sat, 18 Jul 2020 01:11:59 +0000 (21:11 -0400)]
maple_tree: rev_awalk i->slot and this_gap -> gap

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: change rev_awalk to more common code
Liam R. Howlett [Sat, 18 Jul 2020 01:09:52 +0000 (21:09 -0400)]
maple_tree: change rev_awalk to more common code

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: change rev_awalk since there are no delete or skips, etc
Liam R. Howlett [Sat, 18 Jul 2020 00:57:16 +0000 (20:57 -0400)]
maple_tree: change rev_awalk since there are no delete or skips, etc

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add helper for lower bound
Liam R. Howlett [Sat, 18 Jul 2020 00:46:38 +0000 (20:46 -0400)]
maple_tree: Add helper for lower bound

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: awalk reduce again.
Liam R. Howlett [Sat, 18 Jul 2020 00:28:49 +0000 (20:28 -0400)]
maple_tree: awalk reduce again.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: awalk is still massive
Liam R. Howlett [Sat, 18 Jul 2020 00:23:12 +0000 (20:23 -0400)]
maple_tree: awalk is still massive

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: drop mas_next_slot and mas_prev_slot - unused
Liam R. Howlett [Fri, 17 Jul 2020 21:28:43 +0000 (17:28 -0400)]
maple_tree: drop mas_next_slot and mas_prev_slot - unused

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: mas_prev_slot change
Liam R. Howlett [Fri, 17 Jul 2020 21:26:32 +0000 (17:26 -0400)]
maple_tree: mas_prev_slot change

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Cleaning
Liam R. Howlett [Fri, 17 Jul 2020 21:25:05 +0000 (17:25 -0400)]
maple_tree: Cleaning

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Cleaning
Liam R. Howlett [Fri, 17 Jul 2020 21:23:03 +0000 (17:23 -0400)]
maple_tree: Cleaning

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Cleaning
Liam R. Howlett [Fri, 17 Jul 2020 21:22:55 +0000 (17:22 -0400)]
maple_tree: Cleaning

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Drop deleted/retry/skip logic
Liam R. Howlett [Fri, 17 Jul 2020 21:11:41 +0000 (17:11 -0400)]
maple_tree: Drop deleted/retry/skip logic

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Drop deleted/retry/skip logic
Liam R. Howlett [Fri, 17 Jul 2020 21:08:37 +0000 (17:08 -0400)]
maple_tree: Drop deleted/retry/skip logic

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Comments.
Liam R. Howlett [Fri, 17 Jul 2020 21:04:07 +0000 (17:04 -0400)]
maple_tree: Comments.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Comments, and also mab_mas_cp always uses 0 for the node start
Liam R. Howlett [Fri, 17 Jul 2020 20:47:48 +0000 (16:47 -0400)]
maple_tree: Comments, and also mab_mas_cp always uses 0 for the node start

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Comments comments comments.
Liam R. Howlett [Fri, 17 Jul 2020 20:43:57 +0000 (16:43 -0400)]
maple_tree: Comments comments comments.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Remove mte_update_rcu_slot and add comments
Liam R. Howlett [Fri, 17 Jul 2020 20:07:53 +0000 (16:07 -0400)]
maple_tree: Remove mte_update_rcu_slot and add comments

mte_update_rcu_slot is the same as mte_set_rcu_slot, so drop it

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agocleanup mast_new_root
Liam R. Howlett [Fri, 17 Jul 2020 19:59:10 +0000 (15:59 -0400)]
cleanup mast_new_root

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Drop unnecessary reset
Liam R. Howlett [Fri, 17 Jul 2020 19:54:37 +0000 (15:54 -0400)]
maple_tree: Drop unnecessary reset

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: mas_split cleanup
Liam R. Howlett [Fri, 17 Jul 2020 19:51:27 +0000 (15:51 -0400)]
maple_tree: mas_split cleanup

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: not much
Liam R. Howlett [Fri, 17 Jul 2020 03:32:51 +0000 (23:32 -0400)]
maple_tree: not much

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: combine_separate reduction with copy out to nodes
Liam R. Howlett [Fri, 17 Jul 2020 03:24:04 +0000 (23:24 -0400)]
maple_tree: combine_separate reduction with copy out to nodes

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: combine_separate reduction with parents and cp_left/cp_right
Liam R. Howlett [Fri, 17 Jul 2020 03:07:31 +0000 (23:07 -0400)]
maple_tree: combine_separate reduction with parents and cp_left/cp_right

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Cleaner check in combine_separate
Liam R. Howlett [Fri, 17 Jul 2020 02:51:43 +0000 (22:51 -0400)]
maple_tree: Cleaner check in combine_separate

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Cleaner check in combine_separate
Liam R. Howlett [Fri, 17 Jul 2020 02:49:01 +0000 (22:49 -0400)]
maple_tree: Cleaner check in combine_separate

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: reduce line count
Liam R. Howlett [Fri, 17 Jul 2020 02:46:16 +0000 (22:46 -0400)]
maple_tree: reduce line count

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: mas_mab_cp sets b_end now
Liam R. Howlett [Fri, 17 Jul 2020 02:32:32 +0000 (22:32 -0400)]
maple_tree: mas_mab_cp sets b_end now

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Attempt to reduce split function size
Liam R. Howlett [Fri, 17 Jul 2020 02:09:28 +0000 (22:09 -0400)]
maple_tree: Attempt to reduce split function size

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: wip, try the maple_subtree_state for smaller functions
Liam R. Howlett [Fri, 17 Jul 2020 01:54:36 +0000 (21:54 -0400)]
maple_tree: wip, try the maple_subtree_state for smaller functions

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: wip, add maple_subtree_state
Liam R. Howlett [Fri, 17 Jul 2020 01:11:03 +0000 (21:11 -0400)]
maple_tree: wip, add maple_subtree_state

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: wip, add maple_subtree_state
Liam R. Howlett [Fri, 17 Jul 2020 01:08:53 +0000 (21:08 -0400)]
maple_tree: wip, add maple_subtree_state

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Code cleanup, mostly in split
Liam R. Howlett [Thu, 16 Jul 2020 15:59:40 +0000 (11:59 -0400)]
maple_tree: Code cleanup, mostly in split

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Start using b_node->b_end in mas_split
Liam R. Howlett [Thu, 16 Jul 2020 15:50:27 +0000 (11:50 -0400)]
maple_tree: Start using b_node->b_end in mas_split

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Remove fixed array size from mas_split and use ma_topiary instead.
Liam R. Howlett [Thu, 16 Jul 2020 15:05:44 +0000 (11:05 -0400)]
maple_tree: Remove fixed array size from mas_split and use ma_topiary instead.

Also, move common smp_wmb() from split and combine_separate function into a helper.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Code reduction
Liam R. Howlett [Thu, 16 Jul 2020 02:08:51 +0000 (22:08 -0400)]
maple_tree: Code reduction

also move __mas_walk, mas_rewind_node, move mas_skip_node

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: mas_combine_separate changes.
Liam R. Howlett [Sat, 11 Jul 2020 00:48:44 +0000 (20:48 -0400)]
maple_tree: mas_combine_separate changes.

Fix the calculation of node splitting when needing 3 nodes.

Change allocation count, spanning store may cause more allocations if
rebalancing across nodes occurs.

Remove free/destroy lists and use a linked list.

Weight reduction of the function.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomm/mmap: Change debug for maple tree
Liam R. Howlett [Sat, 11 Jul 2020 00:48:21 +0000 (20:48 -0400)]
mm/mmap: Change debug for maple tree

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Remove debug
Liam R. Howlett [Fri, 10 Jul 2020 19:07:50 +0000 (15:07 -0400)]
maple_tree: Remove debug

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: Add freeing of nodes.
Liam R. Howlett [Tue, 7 Jul 2020 15:26:19 +0000 (11:26 -0400)]
maple_tree: Add freeing of nodes.

Node freeing is tracked by what was consumed in the previous step and
freed along with what was overwritten in the spanning store that must be
destroyed.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: wip, fix underrun on root expand when range starts at zero but ends elsewhere
Liam R. Howlett [Fri, 3 Jul 2020 01:34:43 +0000 (21:34 -0400)]
maple_tree: wip, fix underrun on root expand when range starts at zero but ends elsewhere

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: wip, fix splitting into 3, fix range of combine_separate, fix test for...
Liam R. Howlett [Fri, 3 Jul 2020 01:03:51 +0000 (21:03 -0400)]
maple_tree: wip, fix splitting into 3, fix range of combine_separate, fix test for gap_combining.

Splitting into 3 was not functioning due to an error in setting the parent and the split calc.

combine_separate was not copying the contents of the mas state over to orig_l_mas which became a problem with the limit checking the end of data.

gap_combining tests were rendered broken due to splitting changes with a NULL ending.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agomaple_tree: wip. Combine mas_extend_null in mas_store and
Liam R. Howlett [Wed, 1 Jul 2020 01:32:52 +0000 (21:32 -0400)]
maple_tree: wip.  Combine mas_extend_null in mas_store and
mas_spanning_store.

Pass: 13130626 Run:13130627

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agowip, maple_tree: Pass 824089 - rebalance and spanning store using most of the same...
Liam R. Howlett [Tue, 30 Jun 2020 17:30:06 +0000 (13:30 -0400)]
wip, maple_tree: Pass 824089 - rebalance and spanning store using most of the same code now

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
4 years agowip, maple_tree: Pass 850785 - added check for min node size. need to rebalance...
Liam R. Howlett [Thu, 25 Jun 2020 23:13:24 +0000 (19:13 -0400)]
wip, maple_tree: Pass 850785 - added check for min node size.  need to rebalance spanning store

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>