]>
www.infradead.org Git - users/jedix/linux-maple.git/log
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Liam R. Howlett [Thu, 25 Jun 2020 01:41:15 +0000 (21:41 -0400)]
wip: maple_tree: factor out descend and node adoption
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 25 Jun 2020 01:40:53 +0000 (21:40 -0400)]
wip: maple_tree: factor out descend and node adoption
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 24 Jun 2020 14:13:14 +0000 (10:13 -0400)]
wip: pass 747201. Rework some gap stuff.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 24 Jun 2020 00:35:09 +0000 (20:35 -0400)]
wip: pass 747114 - fix r_mas.max when there is no r_mas.max for skipping data
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 24 Jun 2020 00:10:56 +0000 (20:10 -0400)]
wip: Add height reset to destroy and debug output.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 24 Jun 2020 00:05:25 +0000 (20:05 -0400)]
wip: pass 678642 tc
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 18 Jun 2020 18:14:45 +0000 (14:14 -0400)]
maple_tree: wip, initial rebalance on regular commit, fixes for spanning store, adoption, gaps..
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Fri, 12 Jun 2020 14:57:22 +0000 (10:57 -0400)]
wip: spanning store & signed full_cnt
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 11 Jun 2020 01:13:38 +0000 (21:13 -0400)]
maple_tree: WIP, start passing big data through for all stores
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Tue, 9 Jun 2020 20:23:21 +0000 (16:23 -0400)]
maple_tree: WIP, diet
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Tue, 9 Jun 2020 20:11:57 +0000 (16:11 -0400)]
maple_tree: WIP, partial spanning store code.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Tue, 2 Jun 2020 20:15:28 +0000 (16:15 -0400)]
maple_tree: 3 wip
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 20 May 2020 22:28:28 +0000 (18:28 -0400)]
wip, broken and abandoning this plan for no retry
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 20 May 2020 17:22:16 +0000 (13:22 -0400)]
maple_tree: Remove mt_is_advanced in favor of xa_is_advanced.
The two functions are now the same so just use the xa_ version.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 20 May 2020 17:14:47 +0000 (13:14 -0400)]
xarray: Change range of xa_is_advanced
XA_ZERO_ENTRY is the is largest advanced internal entry.
Return true if an internal entry is less than the XA_ZERO_ENTRY.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Tue, 19 May 2020 18:57:46 +0000 (14:57 -0400)]
maple_tree: Fix gap issues and combining issue
Incorrect gap calculation caused by mas_prev not setting the ma_state
limits correctly.
Gap relocation failed due to fully empty node (deleted)
Gap relocation issues when hitting a retry entry
Missing data due to combining nodes incorrectly when the right node has
a retry at the start.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Sat, 9 May 2020 01:02:27 +0000 (21:02 -0400)]
maple_tree and mm/mmap: Try to stop tracepoints on BUG_ON
Restore printk's until we know it happens.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Fri, 8 May 2020 15:29:55 +0000 (11:29 -0400)]
trace/events/mm_mt.h: Fix prototype for __vma_mt_szero
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Fri, 8 May 2020 14:14:25 +0000 (10:14 -0400)]
trace/events/mm_mt: Add maple tree mm tracepoints.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Fri, 8 May 2020 13:29:45 +0000 (09:29 -0400)]
trace/events/mm rename to mm_mt
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Fri, 8 May 2020 02:12:58 +0000 (22:12 -0400)]
mm/mmap: Fix unmapped_area_topdown with align_offset
align_offset should be aligned to align_mask.. apparently.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 7 May 2020 21:59:51 +0000 (17:59 -0400)]
mm/mmap: Move maple tree logging to tracepoints
Able to toggle at runtime? Count me in.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 7 May 2020 20:07:49 +0000 (16:07 -0400)]
mm/mmap: Fix maple tree calculation for topdown with alignment mask.
When using alignment mask, calculate the address correctly.
Found by LTP futex_wake04
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 7 May 2020 20:07:17 +0000 (16:07 -0400)]
maple_tree: Add test for reverse search with mask.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 7 May 2020 01:13:43 +0000 (21:13 -0400)]
mm/mmap: Add call to maple_destroy
When tearing down a vma, destroy the maple tree as well.
Also clean up some old print debugs.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Thu, 7 May 2020 01:12:28 +0000 (21:12 -0400)]
maple_tree: Fix mas_append of extra null.
When attempting to append to a node, it is possible that the source
contains multiple NULL entries that will be coalesced together and thus
will not overflow even though it may appear that was on initial
inspection.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 6 May 2020 18:04:47 +0000 (14:04 -0400)]
maple_tree: Skip multiple deletes in split calculation.
When splitting, do not split within consecutive NULL entries. Doing so
would cause separated gaps.
Also reset mas->node before walking in two other places which could
potentially cause issue.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Liam R. Howlett [Wed, 6 May 2020 03:17:52 +0000 (23:17 -0400)]
maple_tree: Reset mas location before walking in mas_rebalance_gaps.
After rebalancing, the mas node may not be in the correct location to
find the mas->index, so reset to MAS_START prior to starting the walk.
Added test case for this issue as well.
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>