Page MenuHomeFreeBSD
Feed Advanced Search

Nov 20 2019

dougm closed D22348: When traversing vm_map entries, don't look up the same neighbor twice.
Nov 20 2019, 4:07 PM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.
Nov 20 2019, 3:46 PM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.
Nov 20 2019, 6:48 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

In all the loops over map entries where the iterator wasn't called 'entry' and the last several versions of this patch renamed it to 'entry', revert the name back to what is was before, mostly limiting this patch to its original purpose and leaving a renaming patch for another day.

Nov 20 2019, 6:31 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Undo some overzealous style-fixing.

Nov 20 2019, 5:32 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Address online and offline comments.

Nov 20 2019, 5:28 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Address reviewer feedback.

Nov 20 2019, 5:18 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Address small style violations from an in-person review.

Nov 20 2019, 4:57 AM

Nov 19 2019

dougm accepted D22396: Simplify vm_pageout_init_domain() and add a "big picture" comment..
Nov 19 2019, 5:13 PM
dougm updated the diff for D22324: try to free blocks by upgrading object locks.

Update after overlapping change.

Nov 19 2019, 8:11 AM
dougm closed D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.
Nov 19 2019, 8:06 AM
dougm committed rS354850: Drop the extra argument from swp_pager_meta_ctl and have it do lookup.
Drop the extra argument from swp_pager_meta_ctl and have it do lookup
Nov 19 2019, 8:06 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Accept reviewer suggestions. Where the introduction of "next_entry" suggests that a for loop could replace a while loop, do so. Where that looks tricky because of a mid-loop continue (wire/unwire), make sure the continue case sets next_entry too. Observe that this all makes the 'first_iteration' state variable redundant, and eliminate it.

Nov 19 2019, 4:17 AM

Nov 18 2019

dougm updated the diff for D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.

Add dstobject->type == OBJT_SWAP test in swp_pager_xfer_source.

Nov 18 2019, 3:21 PM
dougm updated the diff for D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.

Missing semicolon.

Nov 18 2019, 4:57 AM
dougm updated the diff for D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.

Fix a leak pointed out by Ota on a different review thread.

Nov 18 2019, 4:55 AM
dougm updated subscribers of D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.
Nov 18 2019, 4:53 AM
dougm updated the diff for D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.

Make that a write lock on deletion.

Nov 18 2019, 4:42 AM
dougm created D22437: Change swp_pager_meta_ctl to swp_pager_meta_lookup.
Nov 18 2019, 4:26 AM

Nov 17 2019

dougm added a reviewer for D22324: try to free blocks by upgrading object locks: kib.
Nov 17 2019, 6:47 PM
dougm updated the diff for D22324: try to free blocks by upgrading object locks.

Adapt to recent swap_pager.c change.

Nov 17 2019, 6:47 PM
dougm committed rS354795: Add a helper function for testing a swap block and freeing it if empty..
Add a helper function for testing a swap block and freeing it if empty.
Nov 17 2019, 6:38 PM
dougm closed D22402: Create swp_pager_free_empty_swblk function to free if a swblk is free..
Nov 17 2019, 6:38 PM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Use the FOREACH macros for iterating over the old map in vm_fork. Reformat a comment to fit in 80 columns.

Nov 17 2019, 4:39 PM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Update to account for r354785. Address reviewer comments.

Nov 17 2019, 7:06 AM
dougm committed rS354785: The loop in vm_map_protect that verifies that all transition map.
The loop in vm_map_protect that verifies that all transition map
Nov 17 2019, 6:50 AM
dougm closed D22405: look for in-transition status in each map entry.
Nov 17 2019, 6:50 AM

Nov 16 2019

dougm updated subscribers of D22405: look for in-transition status in each map entry.
Nov 16 2019, 7:16 PM
dougm updated the diff for D22405: look for in-transition status in each map entry.
Nov 16 2019, 7:16 PM
dougm updated subscribers of D22324: try to free blocks by upgrading object locks.
Nov 16 2019, 6:42 PM
dougm accepted D22397: Widen aflags to 16 bits..
Nov 16 2019, 6:19 PM
dougm updated the diff for D22405: look for in-transition status in each map entry.
Nov 16 2019, 5:34 PM
dougm updated the diff for D22405: look for in-transition status in each map entry.

Clean up the comment following the change.

Nov 16 2019, 5:16 PM
dougm retitled D22405: look for in-transition status in each map entry from look for protection violations in each map entry to look for in-transition status in each map entry.
Nov 16 2019, 4:45 PM
dougm added inline comments to D22397: Widen aflags to 16 bits..
Nov 16 2019, 7:33 AM
dougm added a comment to D22396: Simplify vm_pageout_init_domain() and add a "big picture" comment..

I can't comment on the accuracy of any of this, but I can channel my 9th grade English teacher, Mrs. Weaver. There's some more passive voice in there (is awakened? by who?), but you're probably more interested in technical feedback.

Nov 16 2019, 7:06 AM
dougm created D22405: look for in-transition status in each map entry.
Nov 16 2019, 6:30 AM
dougm added inline comments to D22394: Update the checks in vm_page_zone_import()..
Nov 16 2019, 6:21 AM
dougm added inline comments to D22392: Fix locking in vm_reserv_reclaim_contig()..
Nov 16 2019, 6:06 AM
dougm accepted D22391: vm_reserv: Group per-domain data in the same structure..

I see nothing clearly wrong with this.

Nov 16 2019, 5:45 AM
dougm added a reviewer for D22348: When traversing vm_map entries, don't look up the same neighbor twice: kib.
Nov 16 2019, 5:19 AM
dougm added inline comments to D20091: Fix another race between vm_map_protect() and vm_map_wire()..
Nov 16 2019, 5:11 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Rewrite a couple of lines to that prev_entry isn't, briefly, after entry.

Nov 16 2019, 4:37 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Fix a transcription error.

Nov 16 2019, 4:28 AM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Rename variables in vm_map loops, so that the fixed starting point is called 'first_entry', the iterator is called 'entry', and the iterator trailing it, if any, is called 'prev_entry'.

Nov 16 2019, 4:23 AM

Nov 15 2019

dougm added a reviewer for D22348: When traversing vm_map entries, don't look up the same neighbor twice: alc.
Nov 15 2019, 8:00 PM
dougm added a comment to D22348: When traversing vm_map entries, don't look up the same neighbor twice.

This change reduces the size of mac_process.o and vm_map.o by 56 and 656 bytes, respectively, on the amd64 machine I'm testing on.

Nov 15 2019, 8:00 PM
dougm updated the diff for D22348: When traversing vm_map entries, don't look up the same neighbor twice.

Add parens around returned value in vm_map_entry_first.

Nov 15 2019, 8:17 AM
dougm updated the diff for D22324: try to free blocks by upgrading object locks.

Fix indentation.

Nov 15 2019, 8:12 AM

Nov 13 2019

dougm created D22348: When traversing vm_map entries, don't look up the same neighbor twice.
Nov 13 2019, 5:41 PM
dougm committed rS354684: Define wrapper functions vm_map_entry_{succ,pred} to act as wrappers.
Define wrapper functions vm_map_entry_{succ,pred} to act as wrappers
Nov 13 2019, 3:56 PM
dougm closed D22347: hide map entry next and prev fields.
Nov 13 2019, 3:56 PM
dougm created D22347: hide map entry next and prev fields.
Nov 13 2019, 4:25 AM

Nov 12 2019

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

I read through this a couple of times and it seems fine to me. You might consider breaking this into several patches, the first of which introduces vm_map_entry_{pred,succ}() as wrappers for direct accesses of entry->next and entry->pred and converts existing code to use them.

Nov 12 2019, 4:57 PM
dougm created D22324: try to free blocks by upgrading object locks.
Nov 12 2019, 3:56 AM

Nov 11 2019

dougm committed rS354618: swap_pager_meta_free() frees allocated blocks in a way that.
swap_pager_meta_free() frees allocated blocks in a way that
Nov 11 2019, 5:00 PM
dougm closed D22280: exploit sparsity in swap_pager_copy.
Nov 11 2019, 5:00 PM
dougm updated the diff for D22280: exploit sparsity in swap_pager_copy.

Remove an inaccurate comment.

Nov 11 2019, 9:43 AM
dougm updated the diff for D22280: exploit sparsity in swap_pager_copy.

Rename "copy" to "xfer" or "transfer" in several places.
Move a dstobject==NULL test from callee to caller.

Nov 11 2019, 2:27 AM

Nov 10 2019

dougm updated the diff for D22280: exploit sparsity in swap_pager_copy.

Fix indentation. Discard some comments.

Nov 10 2019, 11:17 PM
dougm added a reviewer for D22280: exploit sparsity in swap_pager_copy: kib.
Nov 10 2019, 9:23 PM
dougm updated the diff for D22280: exploit sparsity in swap_pager_copy.

Discard the changes that eliminate swap_meta_ctl. Those changes distract from the primary purpose of this change.

Nov 10 2019, 6:53 AM

Nov 9 2019

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

Resolve conflicts.

Nov 9 2019, 9:30 PM
dougm updated the diff for D22280: exploit sparsity in swap_pager_copy.

Define swp_pager_meta_copy_free to implement swp_pager_meta_free and part of swap_pager_copy, to avoid code duplication and to exploit some of the optimizations of the meta_free code when copying.

Nov 9 2019, 7:52 PM
dougm committed rS354570: For vm_map, #defining DIAGNOSTIC to turn on full assertion-based.
For vm_map, #defining DIAGNOSTIC to turn on full assertion-based
Nov 9 2019, 5:08 PM
dougm closed D22163: reduce vm_map consistency assertions.
Nov 9 2019, 5:08 PM

Nov 8 2019

dougm created D22280: exploit sparsity in swap_pager_copy.
Nov 8 2019, 7:42 AM

Nov 7 2019

dougm added a comment to D22163: reduce vm_map consistency assertions.

I'll commit this over the upcoming weekend if there are no further comments.

Nov 7 2019, 3:00 AM

Nov 4 2019

dougm added inline comments to D22119: Add a constant OBJ_ANONYMOUS flag to optimize out some locking..
Nov 4 2019, 7:53 PM

Oct 30 2019

dougm updated the diff for D22163: reduce vm_map consistency assertions.

Get it to compile in GENERIC, with DIAGNOSTIC defined or not.

Oct 30 2019, 5:19 PM
dougm updated the diff for D22163: reduce vm_map consistency assertions.

Initialize nupdates in init.

Oct 30 2019, 3:49 PM
dougm updated the diff for D22163: reduce vm_map consistency assertions.

Add a missing "while(0)"

Oct 30 2019, 3:27 PM
dougm updated the diff for D22163: reduce vm_map consistency assertions.

For cases when DIAGNOSTIC is #defined, add a counter to vm_map, to count the number of map updates since last write-unlock assertion check. Add a potential thread-unlock assertion check everywhere the map lock is freed or downgraded after a potential map update, where 'potential' means 'only if the operation count exceeds the number of map entries'. Make the default behavior, when DIAGNOSTIC is defined, to only to assertion checks in these unlock cases, but leave in the possibility of doing all the assertion checks we do now, for the sake of the person trying to debug a problem highlighted by the infrequent assertion checks.

Oct 30 2019, 2:59 PM

Oct 29 2019

dougm added inline comments to D22119: Add a constant OBJ_ANONYMOUS flag to optimize out some locking..
Oct 29 2019, 10:46 PM

Oct 26 2019

dougm created D22163: reduce vm_map consistency assertions.
Oct 26 2019, 8:58 PM

Oct 17 2019

dougm added a comment to D20635: release multiple swap blocks at a time in swp_pager_force_pagein.

Fix a bug in the debug patch.

Oct 17 2019, 3:15 PM
dougm added a comment to D20635: release multiple swap blocks at a time in swp_pager_force_pagein.

Here is a small patch that adds a few KASSERTS. There might be some value in seeing which of them is tripped first on the way to this failure.

Oct 17 2019, 6:17 AM

Oct 16 2019

dougm added a comment to D20635: release multiple swap blocks at a time in swp_pager_force_pagein.

It seems that this change broke something:
Hi Doug,

Oct 16 2019, 7:50 AM

Oct 14 2019

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

Restore the invariant-checking code that fell out of the last patch.

Oct 14 2019, 6:26 PM
dougm committed rS353497: Correct a transcription error that broke GENERIC introduced in r353496..
Correct a transcription error that broke GENERIC introduced in r353496.
Oct 14 2019, 5:52 PM
dougm updated the diff for D21964: Make vm_map a threaded tree.

Reformat vm_map_entry_{pred,succ}.

Oct 14 2019, 5:24 PM
dougm updated the summary of D21964: Make vm_map a threaded tree.
Oct 14 2019, 5:21 PM
dougm closed D22011: Move vm_map debugging code.
Oct 14 2019, 5:15 PM
dougm committed rS353496: Move the definition of _vm_map_assert_consistent so that it can use.
Move the definition of _vm_map_assert_consistent so that it can use
Oct 14 2019, 5:15 PM
dougm added a comment to D21990: Optimize vm_page_in_laundry() with a bit operation..

Would there be a problem with changing the #defines:
#define PQ_NONE 255
#define PQ_UNSWAPPABLE 0
#define PQ_LAUNDRY 1
#define PQ_INACTIVE 2
#define PQ_ACTIVE 3
#define PQ_COUNT 4

Oct 14 2019, 1:36 AM

Oct 13 2019

dougm created D22011: Move vm_map debugging code.
Oct 13 2019, 5:26 PM

Oct 12 2019

dougm removed reviewers for D20664: Changes to vm_map_lookup_entry: alc, markj, kib.
Oct 12 2019, 8:17 PM
dougm added reviewers for D21964: Make vm_map a threaded tree: markj, kib.
Oct 12 2019, 8:16 PM
dougm added inline comments to D21989: Use enumeration to indicate swap almost full and full, instead of 2 variables..
Oct 12 2019, 5:13 AM
dougm added inline comments to D21989: Use enumeration to indicate swap almost full and full, instead of 2 variables..
Oct 12 2019, 2:56 AM
dougm added inline comments to D21990: Optimize vm_page_in_laundry() with a bit operation..
Oct 12 2019, 2:42 AM

Oct 10 2019

dougm updated the diff for D21964: Make vm_map a threaded tree.
Oct 10 2019, 6:38 PM
dougm created D21964: Make vm_map a threaded tree.
Oct 10 2019, 4:47 AM

Oct 8 2019

dougm committed rS353298: Define macro VM_MAP_ENTRY_FOREACH for enumerating the entries in a vm_map..
Define macro VM_MAP_ENTRY_FOREACH for enumerating the entries in a vm_map.
Oct 8 2019, 7:14 AM
dougm closed D21882: Use a loop macro for enumerating vm map entries.
Oct 8 2019, 7:14 AM
dougm added inline comments to D21882: Use a loop macro for enumerating vm map entries.
Oct 8 2019, 6:54 AM
dougm updated the diff for D21882: Use a loop macro for enumerating vm map entries.

VME_ -> VM_MAP_ENTRY_
Remove purposeless counter.
Move KASSERT out of loop.

Oct 8 2019, 2:51 AM

Oct 7 2019

dougm added inline comments to D21882: Use a loop macro for enumerating vm map entries.
Oct 7 2019, 6:49 PM
dougm added inline comments to D21882: Use a loop macro for enumerating vm map entries.
Oct 7 2019, 3:05 PM

Oct 6 2019

dougm added a reviewer for D21882: Use a loop macro for enumerating vm map entries: markj.
Oct 6 2019, 6:54 PM