Page MenuHomeFreeBSD
Feed Advanced Search

Dec 19 2019

dougm closed D22874: make tmpfs.h friendly with _KERNEL undefined.
Dec 19 2019, 4:40 PM
dougm updated the diff for D22874: make tmpfs.h friendly with _KERNEL undefined.

Remove #include <sys/lock.h> from tmpfs.h.

Dec 19 2019, 4:20 PM
dougm created D22874: make tmpfs.h friendly with _KERNEL undefined.
Dec 19 2019, 4:16 AM

Dec 18 2019

dougm updated the diff for D22777: clip within the subtree rooted at entry.

Add in the next planned change - the fix of the max_free test cases at the start of SPLAY_{LEFT,RIGHT}_STEP.

Dec 18 2019, 6:39 AM
dougm added a comment to D21964: Make vm_map a threaded tree.
In D21964#500501, @neel_neelc.org wrote:

Sounds good, lets go with your patch then.

I closed my merge request on the GNOME GitLab.

Dec 18 2019, 3:52 AM

Dec 17 2019

dougm added a comment to D21964: Make vm_map a threaded tree.
In D21964#500456, @neel_neelc.org wrote:

@dougm Your patch surely does look cleaner than mine (I just needed something to unbreak the build), but are you sure it will work on 12.x and 11.x? If so, lets go with yours.

I built my patch to (hopefully) be compatible with 12.x and 11.x, so that's why it looks ugly, it has #ifdefs. I don't know if 12.x and below has vm_map_entry_read_succ().

Dec 17 2019, 11:05 PM
dougm added a comment to D21964: Make vm_map a threaded tree.
In D21964#500392, @neel_neelc.org wrote:

I integrated your changes. Would the updated Ports/GNOME changes work?

Dec 17 2019, 10:21 PM
dougm added a comment to D21964: Make vm_map a threaded tree.
In D21964#500356, @neel_neelc.org wrote:

I sent an updated patch to the GNOME people here: https://gitlab.gnome.org/GNOME/libgtop/merge_requests/12

I also have an fixed Bugzilla patch here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242533

Dec 17 2019, 5:46 PM
dougm added a comment to D21964: Make vm_map a threaded tree.

This change broke devel/libgtop on powerpc64 (I didn't try amd64, it could also break there). The error is:

procmap.c:282:39: error: no member named 'next' in 'struct vm_map_entry'
        first = vmspace.vm_map.header.next;
Dec 17 2019, 5:02 AM
dougm updated subscribers of D21964: Make vm_map a threaded tree.
Dec 17 2019, 4:52 AM

Dec 16 2019

dougm added a comment to D21964: Make vm_map a threaded tree.

A similar problem arose in lib/libprocstat/libprocstat.c and was
addressed in the most recent change to that file.  I'll look at this
problem tonight, and expect to find that a similar solution will suffice.

Dec 16 2019, 9:32 PM

Dec 15 2019

dougm added a reviewer for D22777: clip within the subtree rooted at entry: alc.
Dec 15 2019, 9:58 PM
dougm added inline comments to D22820: Move the fault busy sleep into its own function..
Dec 15 2019, 3:06 AM

Dec 14 2019

dougm updated the diff for D22777: clip within the subtree rooted at entry.

Rework the path compression so that there's no need to consider entries not strictly between entry and next_entry (or prev_entry).

Dec 14 2019, 10:17 PM
dougm closed D22666: Simplify leaf_alloc, improve some hints.
Dec 14 2019, 7:44 PM
dougm committed rS355757: Simplify the processing a leaf mask to find big-enough ranges of set.
Simplify the processing a leaf mask to find big-enough ranges of set
Dec 14 2019, 7:44 PM
dougm updated the diff for D22777: clip within the subtree rooted at entry.

Carefully pick the end-of-list marker before starting the walk toward a successor in clip_end.

Dec 14 2019, 7:38 PM
dougm updated the diff for D22777: clip within the subtree rooted at entry.

Fix failure to update map->nentries. Fix problem updating max_free when entry and successor/predecessor are parent and child in the tree. Do path-halving when taking more than one step to find the successor/predecessor to avoid walking long paths when the same entry is clipped one piece at a time repeatedly.

Dec 14 2019, 4:41 AM

Dec 13 2019

dougm updated the diff for D22666: Simplify leaf_alloc, improve some hints.

Apply reviewer's suggestions.

Dec 13 2019, 4:51 AM

Dec 12 2019

dougm added inline comments to D22777: clip within the subtree rooted at entry.
Dec 12 2019, 4:26 PM
dougm added inline comments to D22777: clip within the subtree rooted at entry.
Dec 12 2019, 4:07 PM
dougm updated the diff for D20625: clarify reserv_test_config.

Resolve merge conflicts.

Dec 12 2019, 8:07 AM
dougm abandoned D20368: Let vm_map_link handle new entries that clip old ones.
Dec 12 2019, 7:55 AM
dougm abandoned D20664: Changes to vm_map_lookup_entry.

Completing the threading of the vm_map splay tree makes this pointless.

Dec 12 2019, 7:53 AM
dougm created D22777: clip within the subtree rooted at entry.
Dec 12 2019, 5:14 AM

Dec 11 2019

dougm closed D22760: Factor out common clipping code.
Dec 11 2019, 4:10 PM
dougm committed rS355612: Extract code common to _vm_map_clip_start and _vm_map_clip_end into a.
Extract code common to _vm_map_clip_start and _vm_map_clip_end into a
Dec 11 2019, 4:10 PM
dougm created D22760: Factor out common clipping code.
Dec 11 2019, 7:37 AM

Dec 9 2019

dougm added a comment to D22324: try to free blocks by upgrading object locks.
In D22324#490910, @kib wrote:

I am somewhat curious how much does the upgrade succeed. Did you measured it ? E.g. the counters of total vm_pager_page_unswapped calls during buildworld vs. the number of times the lock needs to be upgraded vs. the number of successfull upgrades.

Dec 9 2019, 3:40 PM
dougm committed rS355552: Revert r355505. The code that it allowed to compile has been removed..
Revert r355505. The code that it allowed to compile has been removed.
Dec 9 2019, 5:09 AM

Dec 8 2019

dougm committed rS355538: Define a vm_map method for user-space for advancing from a map entry.
Define a vm_map method for user-space for advancing from a map entry
Dec 8 2019, 10:34 PM
dougm closed D22728: Fix procstat kvm_read issues.
Dec 8 2019, 10:34 PM
dougm updated the diff for D22728: Fix procstat kvm_read issues.

Make more clear that the new function is not used by the kernel.

Dec 8 2019, 9:23 PM
dougm added a comment to D22728: Fix procstat kvm_read issues.
In D22728#497480, @kib wrote:

I was bitten by use of seemingly kernel-only headers in userspace too many times. I believe that it is much better to not try to adapt vm/vm_map.h inlines to userspace, but have separate code in libprocstat, as Mark suggested.

Dec 8 2019, 9:17 PM
dougm updated the diff for D22728: Fix procstat kvm_read issues.

Add comment. Change vm_map_entry_read_succ so that it leaves the next entry in vmentry, and doesn't only return the pointer to that entry.

Dec 8 2019, 7:40 PM
dougm added a comment to D22728: Fix procstat kvm_read issues.

I don't have an objection to this approach, but it's kind of unusual when compared with other routines which use libkvm. That is, I would just implement entry_read_succ directly in libprocstat. With this patch, libprocstat still embed details of the implementation (such as the fact that iteration terminates after visiting the header) so we still do not get a clean separation between userspace and the kernel, and vm_map_entry_read_succ() is harder to understand because of the indirection through "reader".

Dec 8 2019, 6:38 PM
dougm added a reviewer for D22728: Fix procstat kvm_read issues: kib.
Dec 8 2019, 6:06 PM
dougm retitled D22728: Fix procstat kvm_read issues from Fix procstat mmap issues to Fix procstat kvm_read issues.
Dec 8 2019, 8:10 AM
dougm updated the diff for D22728: Fix procstat kvm_read issues.

Fix compilation errors.

Dec 8 2019, 8:05 AM
dougm created D22728: Fix procstat kvm_read issues.
Dec 8 2019, 12:23 AM

Dec 7 2019

dougm committed rS355502: Fix a type error in fixing libprocstat to be compatible with vm_map changes..
Fix a type error in fixing libprocstat to be compatible with vm_map changes.
Dec 7 2019, 6:41 PM
dougm closed D22726: fixing libprocstat fix.
Dec 7 2019, 6:41 PM
dougm created D22726: fixing libprocstat fix.
Dec 7 2019, 6:21 PM
dougm committed rS355501: r355491 broke compilation of libprocstat.c. Change that code to use.
r355491 broke compilation of libprocstat.c. Change that code to use
Dec 7 2019, 6:16 PM
dougm closed D22725: Fix libprocstat.
Dec 7 2019, 6:16 PM
dougm created D22725: Fix libprocstat.
Dec 7 2019, 6:01 PM
dougm committed rS355491: Remove the next and prev fields from vm_map_entry, to save a bit of.
Remove the next and prev fields from vm_map_entry, to save a bit of
Dec 7 2019, 5:14 PM
dougm closed D21964: Make vm_map a threaded tree.
Dec 7 2019, 5:14 PM

Dec 6 2019

dougm updated the diff for D21964: Make vm_map a threaded tree.

Update base to r355439. Stop passing dereferenced pointers to SPLAY_{LEFT,RIGHT}_STEP macros, since it seems that the compiler can't avoid extra operations for possible aliasing.

Dec 6 2019, 9:19 AM

Dec 5 2019

dougm added a comment to D21964: Make vm_map a threaded tree.

Thanks. To be clear, "old" is unmodified sources, "new" is the patch but with next and prev pointers retained, and "new, thread-only" is this patch?

Dec 5 2019, 6:22 PM
dougm added a comment to D21964: Make vm_map a threaded tree.

How are you collecting performance counters in your benchmark? Would it also be possible to collect branch miss and CPI statistics?

Dec 5 2019, 4:09 AM

Dec 4 2019

dougm accepted D22682: bistring: avoid gcc -Wsign-compare.
Dec 4 2019, 8:07 PM
dougm accepted D22678: Fix an off-by-one in vm_map_pmap_enter()..
Dec 4 2019, 5:45 PM
dougm created D22666: Simplify leaf_alloc, improve some hints.
Dec 4 2019, 6:04 AM
dougm committed rS355377: Change the implementation of bit_ffc_area_at so that, in the worst.
Change the implementation of bit_ffc_area_at so that, in the worst
Dec 4 2019, 3:37 AM
dougm closed D22523: Avoid finding every bit transition in bit_ffs_area_at.
Dec 4 2019, 3:37 AM

Dec 3 2019

dougm added a comment to D22523: Avoid finding every bit transition in bit_ffs_area_at.

With the attached simple test program, compiled with -O3, the results without and with DM defined are:

Dec 3 2019, 3:26 AM

Dec 2 2019

dougm committed rS355296: MFC r348749 - Speed-up vm_reserv_reclaim_config..
MFC r348749 - Speed-up vm_reserv_reclaim_config.
Dec 2 2019, 5:28 PM
dougm updated the summary of D21964: Make vm_map a threaded tree.
Dec 2 2019, 7:39 AM
dougm updated the diff for D21964: Make vm_map a threaded tree.

Apply reviewer suggestions. Modify SPLAY_{LEFT,RIGHT}_STEP to address performance issues. Update timing results. More than have the time lost is recovered. The rest is likely due to the cost of successor and predecessor.

Dec 2 2019, 7:33 AM

Nov 30 2019

dougm updated the summary of D21964: Make vm_map a threaded tree.
Nov 30 2019, 12:02 AM

Nov 29 2019

dougm updated the summary of D21964: Make vm_map a threaded tree.
Nov 29 2019, 7:56 PM
dougm updated the summary of D21964: Make vm_map a threaded tree.
Nov 29 2019, 7:55 PM
dougm updated the summary of D21964: Make vm_map a threaded tree.
Nov 29 2019, 9:40 AM
dougm updated the diff for D21964: Make vm_map a threaded tree.

Update to account for the fact that several parts originally in this patch have now been checked in. They were the parts that let me show a little time improvement, and what's left here, about nothing but threading the tree, will probably give back some of that time saved. I'll update the timing results and cache miss results in a while.

Nov 29 2019, 6:11 AM
dougm committed rS355201: Functions that call vm_map_splay_merge sometimes set data fields.
Functions that call vm_map_splay_merge sometimes set data fields
Nov 29 2019, 2:07 AM
dougm closed D22589: break up vm_map_splay_merge.
Nov 29 2019, 2:07 AM

Nov 28 2019

dougm updated the diff for D22589: break up vm_map_splay_merge.

Incrementing the nupdates counter, which matters only when DIAGNOSTICS is #defined, fell out of the previous version. Add it back in, in a new and better place.

Nov 28 2019, 5:46 PM
dougm created D22589: break up vm_map_splay_merge.
Nov 28 2019, 6:03 AM

Nov 27 2019

dougm closed D22544: Use macros to search vm_map.
Nov 27 2019, 9:01 PM
dougm committed rS355147: Inline some splay helper functions to improve performance on a.
Inline some splay helper functions to improve performance on a
Nov 27 2019, 9:00 PM
dougm added a comment to D22544: Use macros to search vm_map.
In D22544#493747, @alc wrote:

Can you explain why this change reduces the number of L1 data cache misses?

Nov 27 2019, 8:48 PM
dougm updated subscribers of D22544: Use macros to search vm_map.
Nov 27 2019, 7:12 PM
dougm updated the diff for D22544: Use macros to search vm_map.

Go ahead and make findnext and findprev look less weird.

Nov 27 2019, 6:11 PM
dougm added inline comments to D22544: Use macros to search vm_map.
Nov 27 2019, 5:45 PM
dougm updated the diff for D22544: Use macros to search vm_map.

Stop trying to insert 'found' into the splay search code.

Nov 27 2019, 5:43 PM

Nov 26 2019

dougm updated the diff for D22544: Use macros to search vm_map.

Replace the macros with __always_inline functions, which preserves, and perhaps slightly enhances the performance benefit.

Nov 26 2019, 5:49 PM
dougm updated the diff for D22523: Avoid finding every bit transition in bit_ffs_area_at.

Just tidying up.

Nov 26 2019, 5:06 AM

Nov 25 2019

dougm updated the diff for D22544: Use macros to search vm_map.

Restore gap_end variable to fix findspace problem.

Nov 25 2019, 4:47 PM
dougm updated subscribers of D22544: Use macros to search vm_map.
Nov 25 2019, 3:54 PM
dougm created D22544: Use macros to search vm_map.
Nov 25 2019, 8:54 AM
dougm updated the diff for D21964: Make vm_map a threaded tree.

Reconsider a pessimization to vm_map_findspace.

Nov 25 2019, 3:20 AM
dougm updated the diff for D21964: Make vm_map a threaded tree.

Remove the bits that have been checked in separately.

Nov 25 2019, 2:51 AM
dougm committed rS355076: Where 'current' is used to index over vm_map entries, use.
Where 'current' is used to index over vm_map entries, use
Nov 25 2019, 2:19 AM
dougm closed D22458: Consistent vm_map_entry loop naming.
Nov 25 2019, 2:19 AM

Nov 24 2019

dougm updated the diff for D22458: Consistent vm_map_entry loop naming.
Nov 24 2019, 11:24 PM
dougm updated the diff for D21964: Make vm_map a threaded tree.

Take out the parts that have been check in separately. Leave in the renaming parts from a patch awaiting review. Macro-size some splay-helper functions to help improve performance.

Nov 24 2019, 9:52 PM
dougm added a reviewer for D22458: Consistent vm_map_entry loop naming: markj.
Nov 24 2019, 8:09 PM
dougm updated the diff for D22523: Avoid finding every bit transition in bit_ffs_area_at.

Add a missing underscore.

Nov 24 2019, 9:41 AM
dougm committed rS355049: MFC r354785.
MFC r354785
Nov 24 2019, 6:54 AM
dougm committed rS355048: MFC r354785.
MFC r354785
Nov 24 2019, 6:46 AM

Nov 23 2019

dougm updated the diff for D22523: Avoid finding every bit transition in bit_ffs_area_at.

Reorder operations to avoid reading the word past the end of the bitstring, and ignoring it.

Nov 23 2019, 10:25 PM
dougm updated the diff for D22523: Avoid finding every bit transition in bit_ffs_area_at.

Revert half of the previous change. Only _value needs initialization based on _start, and _offset does not.

Nov 23 2019, 9:18 PM
dougm updated the diff for D22523: Avoid finding every bit transition in bit_ffs_area_at.

Address a problem of finding a match at the start when start!=0.

Nov 23 2019, 8:22 PM
dougm created D22523: Avoid finding every bit transition in bit_ffs_area_at.
Nov 23 2019, 8:00 PM
dougm committed rS355032: The error messages that indicate bugs in 'area' bitstring functions.
The error messages that indicate bugs in 'area' bitstring functions
Nov 23 2019, 5:22 PM
dougm closed D22519: Correct test error messages in bitstring_test.
Nov 23 2019, 5:22 PM
dougm created D22519: Correct test error messages in bitstring_test.
Nov 23 2019, 5:06 PM

Nov 20 2019

dougm created D22458: Consistent vm_map_entry loop naming.
Nov 20 2019, 4:31 PM
dougm committed rS354895: Instead of looking up a predecessor or successor to the current map.
Instead of looking up a predecessor or successor to the current map
Nov 20 2019, 4:07 PM