Page MenuHomeFreeBSD
Feed Advanced Search

Jun 22 2022

dougm added a comment to D35524: rb_tree: optimize bit twiddle.

Two test binaries have been compiled on lip3 and executed on lip2. The test binaries come from -O2 compilation of this source:

. The results of a little testing are here:
dougm@108-254-203-202:dougm $ time megatree.orig; time megatree; time megatree.orig; time megatree;

Jun 22 2022, 4:50 AM

Jun 21 2022

dougm updated the diff for D35524: rb_tree: optimize bit twiddle.

Add a footnote.

Jun 21 2022, 9:40 PM
dougm abandoned D35517: iommu_gas: speed up augmentation.

I can't find a way to exploit this observation about free_down in a way that makes the code smaller, so abandoning.

Jun 21 2022, 9:21 PM
dougm updated the diff for D35524: rb_tree: optimize bit twiddle.

Use switch in RB_REMOVE_COLOR instead of several if-elses. Only modify each color-bit-pair once instead of modifying left and then right. Reduces size to 8766 from 8830 on lip3.

Jun 21 2022, 4:54 PM
dougm committed rG70b5d8fa0f94: iommu_gas: Drop needless bound check in lowermatch (authored by dougm).
iommu_gas: Drop needless bound check in lowermatch
Jun 21 2022, 12:39 AM
dougm closed D35522: iommu_gas: reduce lower bound checking in lowermatch.
Jun 21 2022, 12:38 AM

Jun 20 2022

dougm updated the diff for D35522: iommu_gas: reduce lower bound checking in lowermatch.

Do not worry about passing to iommu_gas_match_one a range wholly beyond lowaddr. Since that function checks the upper end of the range against lowaddr, it'll get rejected there.

Jun 20 2022, 10:30 PM
dougm updated the diff for D35520: rb_tree: optimize tree rotation.

Find a better (smaller) way to set 'child' in RB_INSERT_COLOR. Reduce lip3 size from 8830 to 8734.

Jun 20 2022, 7:59 AM
dougm updated the diff for D35524: rb_tree: optimize bit twiddle.

Apply the same trick to INSERT_COLOR. This assumes that the two children of elm cannot both be red. I assert that than cannot be.

Jun 20 2022, 7:14 AM

Jun 19 2022

dougm updated the diff for D35524: rb_tree: optimize bit twiddle.

Undo last revision. Can't be assigning to RB_BITS. Still, a 16 byte shrinkage.

Jun 19 2022, 10:29 PM
dougm updated the diff for D35524: rb_tree: optimize bit twiddle.

Shrink the size a little more with REMOVE_COLOR adjustments.

Jun 19 2022, 10:09 PM
dougm requested review of D35524: rb_tree: optimize bit twiddle.
Jun 19 2022, 8:05 PM
dougm updated the diff for D35520: rb_tree: optimize tree rotation.

Purify the patch.

Jun 19 2022, 5:42 PM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Merge-in overlapping changes. Add manpage symbolic link.

Jun 19 2022, 5:18 PM
dougm committed rGa8380d272ae7: tree.3: document RB_AUGMENT (authored by dougm).
tree.3: document RB_AUGMENT
Jun 19 2022, 4:59 PM
dougm closed D35518: man tree: add RB_AUGMENT description.
Jun 19 2022, 4:58 PM
dougm updated the diff for D35516: rb_tree: let insert search start from adjacent node.

Add a manpage symlink.

Jun 19 2022, 9:25 AM
dougm updated the diff for D35518: man tree: add RB_AUGMENT description.

Add a symlink.

Jun 19 2022, 9:23 AM
dougm updated the diff for D35516: rb_tree: let insert search start from adjacent node.

Correct variable names.

Jun 19 2022, 8:07 AM
dougm updated the diff for D35516: rb_tree: let insert search start from adjacent node.

Move the left/right path walking code into the insert function.

Jun 19 2022, 7:56 AM
dougm committed rG0ee295149ae0: rb_tree: drop needless tests from rb_next, rb_prev (authored by dougm).
rb_tree: drop needless tests from rb_next, rb_prev
Jun 19 2022, 6:29 AM
dougm added reviewers for D35518: man tree: add RB_AUGMENT description: kib, markj.
Jun 19 2022, 5:47 AM
dougm updated the diff for D35518: man tree: add RB_AUGMENT description.

Add augmentation to the RB tree example.

Jun 19 2022, 5:47 AM
dougm requested review of D35522: iommu_gas: reduce lower bound checking in lowermatch.
Jun 19 2022, 5:32 AM
dougm updated the diff for D35518: man tree: add RB_AUGMENT description.

Tweak text, as directed.

Jun 19 2022, 5:03 AM
dougm updated the diff for D35520: rb_tree: optimize tree rotation.

Rename variables in REMOVE_COLOR (elm->child, sib->elm) to make it look more like the INSERT_COLOR code.

Jun 19 2022, 5:00 AM
dougm requested review of D35520: rb_tree: optimize tree rotation.
Jun 19 2022, 2:59 AM
dougm requested review of D35518: man tree: add RB_AUGMENT description.
Jun 19 2022, 2:40 AM
dougm requested review of D35517: iommu_gas: speed up augmentation.
Jun 19 2022, 2:34 AM

Jun 18 2022

dougm requested review of D35516: rb_tree: let insert search start from adjacent node.
Jun 18 2022, 6:14 PM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Update the augmentation function in a way that causes iommu_gas.o to shrink somewhat.

Jun 18 2022, 9:13 AM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Make the third parameter to RB_ROTATE_{LEFT,RIGHT} an input parameter instead of an output parameter, to avoid a few pointer dereferences where we already have the value in a register. Dropping a new such assignments makes things a tiny bit faster (and the code a tiny bit bigger, because, who knows).

Jun 18 2022, 7:51 AM

Jun 17 2022

dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Add to the tree.3 man page. Drop counters.

Jun 17 2022, 9:28 PM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Drop some redundant assignments from the color functions.

Jun 17 2022, 8:00 PM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Make it easier for a compiler to erase the final loops in RB_INSERT_COLOR and RB_REMOVE_COLOR when RB_AUGMENT_CHECK is false.

Jun 17 2022, 6:12 PM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Move the updates of augmentation data to RB_INSERT_COLOR and RB_REMOVE_COLOR, from RB_INSERT and RB_REMOVE, to avoid two separate climbs up toward the root.

Jun 17 2022, 5:29 PM

Jun 16 2022

dougm updated the test plan for D35502: iommu_gas: avoid needless tree augmentations.
Jun 16 2022, 9:46 PM
dougm updated the diff for D35502: iommu_gas: avoid needless tree augmentations.

Restore performance of augment function. Update augmentation before color-rebalancing in rb_insert/rb_delete.

Jun 16 2022, 7:28 AM

Jun 15 2022

dougm requested review of D35502: iommu_gas: avoid needless tree augmentations.
Jun 15 2022, 9:05 PM
dougm closed D35486: make iommu_gas_lowermatch non-recursive.
Jun 15 2022, 4:37 PM
dougm committed rGf979ad003065: iommu_gas: make iommu_gas_lowermatch non-recursive (authored by dougm).
iommu_gas: make iommu_gas_lowermatch non-recursive
Jun 15 2022, 4:37 PM
dougm accepted D35487: iommu_gas: eliminate unneeded wrappers.
Jun 15 2022, 6:31 AM
dougm added a reviewer for D35486: make iommu_gas_lowermatch non-recursive: kib.
Jun 15 2022, 6:22 AM
dougm updated the diff for D35486: make iommu_gas_lowermatch non-recursive.

Add braces.

Jun 15 2022, 6:18 AM
dougm updated the diff for D35486: make iommu_gas_lowermatch non-recursive.

Enhance comments.

Jun 15 2022, 5:59 AM
dougm updated the diff for D35486: make iommu_gas_lowermatch non-recursive.

Fix indent.

Jun 15 2022, 1:51 AM

Jun 14 2022

dougm requested review of D35486: make iommu_gas_lowermatch non-recursive.
Jun 14 2022, 6:31 PM
dougm closed D35458: iommu_gas: change to first-fit search for lowermatch.
Jun 14 2022, 5:52 AM
dougm committed rG975715b78819: iommu_gas: use to first-fit search for lowermatch (authored by dougm).
iommu_gas: use to first-fit search for lowermatch
Jun 14 2022, 5:52 AM

Jun 13 2022

dougm updated the summary of D35458: iommu_gas: change to first-fit search for lowermatch.
Jun 13 2022, 5:29 PM
dougm updated the summary of D35458: iommu_gas: change to first-fit search for lowermatch.
Jun 13 2022, 8:30 AM

Jun 12 2022

dougm requested review of D35458: iommu_gas: change to first-fit search for lowermatch.
Jun 12 2022, 10:39 PM
dougm retitled D35451: Combine lower- and upper-match functions, make them non-recursive. from make iommu_gas_lowermatch non-recursive to Combine lower- and upper-match functions, make them non-recursive..
Jun 12 2022, 8:23 PM
dougm updated the diff for D35451: Combine lower- and upper-match functions, make them non-recursive..

Replace uppermatch and lowermatch with a single, first-fit, nonrecursive match function.

Jun 12 2022, 8:19 PM

Jun 10 2022

dougm committed rG36447829aee5: rb_tree: drop needless tests from rb_next, rb_prev (authored by dougm).
rb_tree: drop needless tests from rb_next, rb_prev
Jun 10 2022, 9:57 PM
dougm closed D35450: Drop redundant case from RB_NEXT, RB_PREV.
Jun 10 2022, 9:56 PM
dougm updated the summary of D35450: Drop redundant case from RB_NEXT, RB_PREV.
Jun 10 2022, 8:34 PM
dougm requested review of D35451: Combine lower- and upper-match functions, make them non-recursive..
Jun 10 2022, 8:21 PM
dougm requested review of D35450: Drop redundant case from RB_NEXT, RB_PREV.
Jun 10 2022, 7:12 PM
dougm committed rG19bb5a7244ff: iommu_gas: pass size to iommu_map without rounding (authored by dougm).
iommu_gas: pass size to iommu_map without rounding
Jun 10 2022, 7:03 PM
dougm closed D35424: iommu_gas: pass size without page alignment.
Jun 10 2022, 7:03 PM
dougm updated the test plan for D35424: iommu_gas: pass size without page alignment.
Jun 10 2022, 5:57 AM

Jun 9 2022

dougm updated the diff for D35424: iommu_gas: pass size without page alignment.
Jun 9 2022, 8:08 PM
dougm added a comment to D35424: iommu_gas: pass size without page alignment.

I think the ITS driver just needs a mask in the iommu_map_msi call. It looks like it correctly sets the physical address on the vm_page it creates, but then assumes iommu_map_msi will mask off the upper bits.

Jun 9 2022, 6:13 PM
dougm updated the diff for D35390: count node accesses in iommu_gas rb_tree searches.

Add an entry count output to CTR4()

Jun 9 2022, 5:18 PM
dougm retitled D35424: iommu_gas: pass size without page alignment from iommu_gas: pass size without page alignment, cleanup iommu_gas_match_one to iommu_gas: pass size without page alignment.
Jun 9 2022, 5:13 PM
dougm updated the diff for D35424: iommu_gas: pass size without page alignment.

Update for merge lowermatch patch.

Jun 9 2022, 5:05 PM
dougm updated the diff for D35390: count node accesses in iommu_gas rb_tree searches.

Update to merge in changes to lowermatch.

Jun 9 2022, 4:37 PM
dougm updated the diff for D35440: iommu_gas: simplify match_one, merge insert into it, drop uppermatch.

Merge with an overlapping commit.

Jun 9 2022, 4:49 AM
dougm committed rG30031172534c: iommu_gas: Change find_space lower search order (authored by dougm).
iommu_gas: Change find_space lower search order
Jun 9 2022, 4:20 AM
dougm closed D35439: iommu_gas: reorder lowermatch.
Jun 9 2022, 4:20 AM

Jun 8 2022

dougm updated the summary of D35439: iommu_gas: reorder lowermatch.
Jun 8 2022, 9:00 PM
dougm updated the test plan for D35440: iommu_gas: simplify match_one, merge insert into it, drop uppermatch.
Jun 8 2022, 8:25 PM
dougm updated the diff for D35440: iommu_gas: simplify match_one, merge insert into it, drop uppermatch.

Remove a couple of changes that leaked in from another patch.

Jun 8 2022, 8:17 PM
dougm requested review of D35440: iommu_gas: simplify match_one, merge insert into it, drop uppermatch.
Jun 8 2022, 8:08 PM
dougm requested review of D35439: iommu_gas: reorder lowermatch.
Jun 8 2022, 7:54 PM
dougm updated the diff for D35424: iommu_gas: pass size without page alignment.

Typo. Compiles and boots.

Jun 8 2022, 3:12 AM
dougm updated the diff for D35424: iommu_gas: pass size without page alignment.

Toss all my parts out.

Jun 8 2022, 3:04 AM
dougm updated the diff for D35424: iommu_gas: pass size without page alignment.

Merge 'insert' into 'one'. Don't let a->size change on failed lookup. Don't miss the chance to accept a shortened lookup when the second 'start' value exceeds end.

Jun 8 2022, 2:52 AM

Jun 7 2022

dougm updated the diff for D35424: iommu_gas: pass size without page alignment.

Update comments only.

Jun 7 2022, 9:46 PM
dougm requested review of D35424: iommu_gas: pass size without page alignment.
Jun 7 2022, 7:57 PM

Jun 6 2022

dougm updated the diff for D35390: count node accesses in iommu_gas rb_tree searches.

Add CTR3(KTR_SPARE5)

Jun 6 2022, 10:03 PM
dougm committed rGb831865fe3b8: iommu_gas: restrict tree search to promising paths (authored by dougm).
iommu_gas: restrict tree search to promising paths
Jun 6 2022, 9:30 PM
dougm closed D35414: iommu_gas: restrict tree search to promising paths.
Jun 6 2022, 9:29 PM
dougm updated the summary of D35414: iommu_gas: restrict tree search to promising paths.
Jun 6 2022, 6:02 PM
dougm updated subscribers of D35414: iommu_gas: restrict tree search to promising paths.
Jun 6 2022, 6:01 PM
dougm updated the summary of D35414: iommu_gas: restrict tree search to promising paths.
Jun 6 2022, 5:57 PM
dougm updated the diff for D35390: count node accesses in iommu_gas rb_tree searches.

Add a sum-of-tree-sizes counter value.

Jun 6 2022, 5:47 PM
dougm requested review of D35414: iommu_gas: restrict tree search to promising paths.
Jun 6 2022, 5:37 PM

Jun 5 2022

dougm updated the diff for D35390: count node accesses in iommu_gas rb_tree searches.

Use counters.

Jun 5 2022, 6:23 PM

Jun 3 2022

dougm requested review of D35390: count node accesses in iommu_gas rb_tree searches.
Jun 3 2022, 6:01 AM

Jun 2 2022

dougm closed D35232: busdma_iommu: map without extra offset bytes.
Jun 2 2022, 9:04 PM
dougm committed rG04e86ae357b2: busdma_iommu: simplify split logic (authored by dougm).
busdma_iommu: simplify split logic
Jun 2 2022, 9:04 PM
dougm updated the diff for D35232: busdma_iommu: map without extra offset bytes.

Add recommended comment.

Jun 2 2022, 6:13 PM
dougm updated subscribers of D35232: busdma_iommu: map without extra offset bytes.
Jun 2 2022, 6:12 PM
dougm updated the diff for D35232: busdma_iommu: map without extra offset bytes.

Remove the material part of this patch, because a stealth reviewer finds a bug in it, and leave only the style bits which do simplify some obscure code.

Jun 2 2022, 8:23 AM
dougm updated subscribers of D35232: busdma_iommu: map without extra offset bytes.
Jun 2 2022, 5:35 AM
dougm updated the diff for D35232: busdma_iommu: map without extra offset bytes.

Recover missing "- offset".

Jun 2 2022, 3:17 AM

Jun 1 2022

dougm updated the diff for D35232: busdma_iommu: map without extra offset bytes.

Remove 'offset' in computing initial size, but not when when examining iommu_map product.

Jun 1 2022, 10:46 PM

May 19 2022

dougm accepted D35259: bitstring_test: Add regression tests for bit_ff(c|s)_area_at().
May 19 2022, 10:15 PM