Page MenuHomeFreeBSD

dougm (Doug Moore)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 30 2017, 3:18 PM (144 w, 2 d)

Tauist. Bit twiddler. Advocate for continued logarithms.

Recent Activity

Feb 24 2020

dougm committed rS358268: The last argument to swp_pager_getswapspace is always 1. Remove that argument..
The last argument to swp_pager_getswapspace is always 1. Remove that argument.
Feb 24 2020, 4:01 AM
dougm closed D23810: drop swp_pager_getswapspace parameter.
Feb 24 2020, 4:01 AM

Feb 23 2020

dougm created D23810: drop swp_pager_getswapspace parameter.
Feb 23 2020, 8:32 PM

Feb 22 2020

dougm accepted D23763: Allow swap_pager_putpages() to allocate one block at a time..

This change makes the second argument to swp_pager_getswapspace redundant. A future change might as well eliminate it.

Feb 22 2020, 9:50 PM

Feb 1 2020

dougm added a comment to D23391: shortcuts in dmar_gas matching.
In D23391#514739, @kib wrote:

Subsequent testing by Peter appears to have absolved r357173 of blame, so I'm going ahead with this commit.

Do you mean that isci(4) was broken anyway ? Are any other drivers were reported as broken ?

Feb 1 2020, 10:01 PM
dougm closed D23391: shortcuts in dmar_gas matching.
Feb 1 2020, 9:48 PM
dougm committed rS357389: In dmar_gas_lowermatch, skip searching a subtree if all its addresses are….
In dmar_gas_lowermatch, skip searching a subtree if all its addresses are…
Feb 1 2020, 9:47 PM
dougm added a comment to D23391: shortcuts in dmar_gas matching.

Subsequent testing by Peter appears to have absolved r357173 of blame, so I'm going ahead with this commit.

Feb 1 2020, 9:44 PM
dougm abandoned D23435: search for bug in r357173.

Search abandoned. No evident bug here.

Feb 1 2020, 9:42 PM
dougm updated the diff for D23435: search for bug in r357173.

A complete undo. Not even comment and style changes get preserved. If this too leads to a test failure, then I consider r357173 absolved. If not, then I question my sanity.

Feb 1 2020, 7:27 PM
dougm updated the diff for D23435: search for bug in r357173.

Revert everything from the original patch except a comment, and a few places where null pointer checks had "!= NULL" added.

Feb 1 2020, 5:46 PM
dougm updated the diff for D23435: search for bug in r357173.

Redo. I left an extra AUGMENT hanging around. Undo iommu, undo delete, leave augment.

Feb 1 2020, 10:01 AM
dougm updated the diff for D23435: search for bug in r357173.

This time, revert the iommu changes. Leave the tree changes alone.

Feb 1 2020, 8:19 AM
dougm updated the diff for D23435: search for bug in r357173.

Change nothing but the parts of tree.h related to deletion, restoring those to their original implementation. Hope to find that udp test still passes.

Feb 1 2020, 3:22 AM

Jan 31 2020

dougm updated the diff for D23435: search for bug in r357173.

Undo those parts of r357173 made to sys/tree.h specifically intended to reduce code duplication in deletion, without undoing those parts specific to augmentation.

Jan 31 2020, 4:05 PM
dougm created D23435: search for bug in r357173.
Jan 31 2020, 6:34 AM

Jan 29 2020

dougm added a comment to D23391: shortcuts in dmar_gas matching.

Before I commit this patch, can you determine if the problem was present before or after r357173?

Jan 29 2020, 6:25 PM
dougm added a comment to D23391: shortcuts in dmar_gas matching.

The lines added here were also in https://reviews.freebsd.org/D23189?id=66970 which passed this test, so I'm stumped at the moment.

Jan 29 2020, 3:51 PM

Jan 28 2020

dougm created D23391: shortcuts in dmar_gas matching.
Jan 28 2020, 3:47 AM

Jan 27 2020

dougm committed rS357173: Correct the use of RB_AUGMENT in the RB_TREE macros so that is invoked.
Correct the use of RB_AUGMENT in the RB_TREE macros so that is invoked
Jan 27 2020, 3:09 PM
dougm closed D23189: Fix definition and use of RB_AUGMENT.
Jan 27 2020, 3:09 PM

Jan 26 2020

dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Restore the intel_gas changes that exploit RB_AUGMENT - the ones that eliminate the need to walk from leaf to root to update free_down, and the ones that eliminate the need to use RB_NEXT to update free_after fields. But don't change the topmost-fit search method of lowermatch, or use free_down to speed up uppermatch. The order in which the match functions consider entries is not changed.

Jan 26 2020, 4:49 AM

Jan 24 2020

dougm committed rS357073: Most uses of vm_map_clip_start follow a call to vm_map_lookup. Define.
Most uses of vm_map_clip_start follow a call to vm_map_lookup. Define
Jan 24 2020, 7:48 AM
dougm closed D22987: Define a function combining vm entry lookup and clip-start.
Jan 24 2020, 7:48 AM

Jan 23 2020

dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Discard everything about x86/iommu/intel_* and just leave the tree.h changes, so that they don't get trapped in a discussion of other things.

Jan 23 2020, 7:46 PM
dougm updated the diff for D22987: Define a function combining vm entry lookup and clip-start.

Resolve conflicts.

Jan 23 2020, 5:21 PM
dougm added inline comments to D23189: Fix definition and use of RB_AUGMENT.
Jan 23 2020, 4:34 PM

Jan 22 2020

dougm accepted D23321: Restructure fault to eliminate a goto and label..
Jan 22 2020, 7:42 PM
dougm accepted D23310: Move the backing_object chain traversal into its own function..

It seems harmless.

Jan 22 2020, 5:04 AM
dougm added inline comments to D23310: Move the backing_object chain traversal into its own function..
Jan 22 2020, 5:00 AM

Jan 21 2020

dougm accepted D23299: vm_map_submap(): Avoid unnecessary clipping..
Jan 21 2020, 7:45 PM
dougm added inline comments to D23299: vm_map_submap(): Avoid unnecessary clipping..
Jan 21 2020, 5:55 PM
dougm added inline comments to D23299: vm_map_submap(): Avoid unnecessary clipping..
Jan 21 2020, 5:32 PM
dougm added a reviewer for D22987: Define a function combining vm entry lookup and clip-start: markj.
Jan 21 2020, 5:23 PM

Jan 20 2020

dougm accepted D23282: Move readahead into its own function..
Jan 20 2020, 8:21 PM

Jan 18 2020

dougm added inline comments to D23189: Fix definition and use of RB_AUGMENT.
Jan 18 2020, 5:58 PM
dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Push the setting of a->entry->start down into dmar_gas_match_one. Add a documentary comment before that function.

Jan 18 2020, 5:57 PM
dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Fix the upper limits passed to dmar_gas_match_one from dmar_gas_uppermatch.

Jan 18 2020, 7:35 AM

Jan 17 2020

dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Stop sending the prev entry to dmar_gas_match_insert. I was sending the prev entry sometimes and the next entry sometimes, but the insert function was only using them for assertion checking anyway.

Jan 17 2020, 4:45 PM
dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Update assertion code to test first and last, rather than free_after.

Jan 17 2020, 3:52 PM
dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Rework intel_gas.c more than I had planned. Along with free_down, keep a first and last value for each entry describing the least and greatest value in the subtree rooted there. Update these in the augment routine. In lowermatch, look for the fit with greatest address less than the lowaddr, which I understand to be an upper bound on the address. In uppermatch, duplicate the lowermatch code, looking for the fit with least address greater than highaddr, which I understand to be a lower bound on the address.

Jan 17 2020, 8:43 AM

Jan 16 2020

dougm updated the diff for D23189: Fix definition and use of RB_AUGMENT.

Correct the augmentation after RB_INSERT so that the newly inserted node is augmented too, before its parent.

Jan 16 2020, 5:17 PM
dougm added a comment to D23189: Fix definition and use of RB_AUGMENT.
In D23189#508661, @kib wrote:

If RB_ code would do the walk, I am fine with it.
Did you tested this on a machine with DMAR enabled ? You may ask Peter, long-running high-load networking tests exercise the GAS allocator quite efficiently.

Jan 16 2020, 4:11 PM
dougm updated subscribers of D23189: Fix definition and use of RB_AUGMENT.
Jan 16 2020, 4:10 PM

Jan 15 2020

dougm updated the summary of D23189: Fix definition and use of RB_AUGMENT.
Jan 15 2020, 3:35 PM
dougm created D23189: Fix definition and use of RB_AUGMENT.
Jan 15 2020, 9:19 AM

Jan 2 2020

dougm updated the diff for D22987: Define a function combining vm entry lookup and clip-start.

Add an important omitted line.

Jan 2 2020, 9:35 PM

Jan 1 2020

dougm created D22987: Define a function combining vm entry lookup and clip-start.
Jan 1 2020, 7:48 AM

Dec 31 2019

dougm committed rS356243: The map-entry clipping functions modify start and end entries of an.
The map-entry clipping functions modify start and end entries of an
Dec 31 2019, 10:21 PM
dougm closed D22897: clip without corrupting map.
Dec 31 2019, 10:21 PM

Dec 30 2019

dougm updated the diff for D22897: clip without corrupting map.

Add comments.

Dec 30 2019, 10:17 PM

Dec 29 2019

dougm added a comment to D22897: clip without corrupting map.

Yes I think it should be fixed by r355985. At least, the bug fixed in r355985 could cause this panic. This is a VMIO buffer and so should contain managed pages.

Dec 29 2019, 10:01 PM

Dec 27 2019

dougm committed rS356131: MFC r355913.
MFC r355913
Dec 27 2019, 5:56 PM
dougm committed rS356130: MFC r355913.
MFC r355913
Dec 27 2019, 5:42 PM

Dec 22 2019

dougm committed rS356028: Fix typo using RB_INITIALIZER..
Fix typo using RB_INITIALIZER.
Dec 22 2019, 9:53 PM
dougm added a reviewer for D22897: clip without corrupting map: markj.
Dec 22 2019, 5:07 PM
dougm added a comment to D22897: clip without corrupting map.
In D22897#501357, @pho wrote:

With D22897.65888.diff I got this after 5 hours:

Dec 22 2019, 1:40 AM

Dec 21 2019

dougm added a reviewer for D22897: clip without corrupting map: alc.
Dec 21 2019, 5:36 PM
dougm created D22897: clip without corrupting map.
Dec 21 2019, 6:53 AM

Dec 20 2019

dougm planned changes to D22777: clip within the subtree rooted at entry.

This approach has a fatal flaw. It may be impossible to distinguish parent from child without a complete search-from-root.

Dec 20 2019, 7:22 PM

Dec 19 2019

dougm accepted D22886: Remove some unused functions..
Dec 19 2019, 11:22 PM
dougm committed rS355913: Including <sys/tmpfs.h> into non-kernel software leads to a.
Including <sys/tmpfs.h> into non-kernel software leads to a
Dec 19 2019, 4:40 PM
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.

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.

@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.

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.

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