Page MenuHomeFreeBSD

dougm (Doug Moore)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 30 2017, 3:18 PM (379 w, 1 d)

Tauist. Bit twiddler. Advocate for continued logarithms.

Recent Activity

Yesterday

dougm added a reviewer for D46895: pctrie: unlock writes without smr: markj.
Sat, Oct 5, 8:29 PM
dougm updated the diff for D46848: swap_pager: use swblk iterators in swp_pager_meta_build.

Rename *_iter( functions to *_iter_init. Though I'd swear I'd done that once already.

Sat, Oct 5, 8:27 PM
dougm updated the diff for D46895: pctrie: unlock writes without smr.

Add pctrie_replace to the set of functions taking a hassmr parameter.

Sat, Oct 5, 7:06 PM
dougm updated the diff for D46848: swap_pager: use swblk iterators in swp_pager_meta_build.

Revert changes from the last update to subr_pctrie.c, since, as @alc points out, those changes are not the topic of this change. Let's save all the unrelated subr_pctrie complaints for a different change.

Sat, Oct 5, 6:40 PM
dougm updated the diff for D46895: pctrie: unlock writes without smr.

Get a complete version of the iter_insert_lookup here, with hassmr.

Sat, Oct 5, 6:01 PM
dougm requested review of D46963: vfs_subr: optimize inval_buf_range.
Sat, Oct 5, 5:28 PM

Fri, Oct 4

dougm updated the diff for D46848: swap_pager: use swblk iterators in swp_pager_meta_build.

Rewrite the sb->p checks in meta_build to match the arrangement of the MPASS after the allocated label.

Fri, Oct 4, 9:48 PM
dougm accepted D46945: vm_object: Assert that managed pages are on pagequeues when freeing.
Fri, Oct 4, 6:17 PM
dougm accepted D46944: vm_page: Fix a logic bug in vm_page_unwire_managed().
Fri, Oct 4, 6:16 PM
dougm updated the diff for D46848: swap_pager: use swblk iterators in swp_pager_meta_build.

Address all the concerns expressed so far.

Fri, Oct 4, 5:11 PM
dougm updated the diff for D46895: pctrie: unlock writes without smr.

Add a missing function argument.

Fri, Oct 4, 4:51 PM
dougm accepted D46943: vm_page: Use atomic loads for cmpset loops.
Fri, Oct 4, 4:33 PM
dougm added inline comments to D46943: vm_page: Use atomic loads for cmpset loops.
Fri, Oct 4, 4:04 PM
dougm added inline comments to D46848: swap_pager: use swblk iterators in swp_pager_meta_build.
Fri, Oct 4, 3:46 PM
dougm committed rG75734c4360fc: tmpfs: check residence in data_locked (authored by dougm).
tmpfs: check residence in data_locked
Fri, Oct 4, 7:46 AM
dougm closed D46879: tmpfs: check residence in data_locked.
Fri, Oct 4, 7:46 AM
dougm updated the diff for D46879: tmpfs: check residence in data_locked.

Copy @alc's edit.

Fri, Oct 4, 7:19 AM
dougm updated the diff for D46879: tmpfs: check residence in data_locked.

Avoid checking the same page for validity twice, at the cost of finding the next page when it might turn out not to matter.

Fri, Oct 4, 6:58 AM
dougm requested review of D46895: pctrie: unlock writes without smr.
Fri, Oct 4, 6:45 AM
dougm updated the diff for D46879: tmpfs: check residence in data_locked.

Try to address feedback from @markj and @alc.

Fri, Oct 4, 3:31 AM

Wed, Oct 2

dougm updated the diff for D46879: tmpfs: check residence in data_locked.

Fix some sloppiness.

Wed, Oct 2, 10:08 PM
dougm requested review of D46879: tmpfs: check residence in data_locked.
Wed, Oct 2, 6:32 PM

Mon, Sep 30

dougm updated the test plan for D46848: swap_pager: use swblk iterators in swp_pager_meta_build.
Mon, Sep 30, 3:48 PM
dougm requested review of D46848: swap_pager: use swblk iterators in swp_pager_meta_build.
Mon, Sep 30, 7:58 AM

Sun, Sep 29

dougm committed rG52b35140528c: swap_pager: examine swblks with pctrie iterators (authored by dougm).
swap_pager: examine swblks with pctrie iterators
Sun, Sep 29, 4:48 PM
dougm closed D46620: swap_pager: use pctrie iterators.
Sun, Sep 29, 4:47 PM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Reset the page iterator too.

Sun, Sep 29, 8:08 AM
dougm added inline comments to D46620: swap_pager: use pctrie iterators.
Sun, Sep 29, 8:06 AM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Update to account for overlapping changes to swap_pager.c. Address comments from @alc. Drop variable 'pi'.

Sun, Sep 29, 7:18 AM

Sat, Sep 28

dougm committed rG76c60597fa2a: swap_pager: use vm_page_iterators for lookup (authored by dougm).
swap_pager: use vm_page_iterators for lookup
Sat, Sep 28, 9:48 PM
dougm closed D46704: swap_pager: use vm_page_iterators for lookup.
Sat, Sep 28, 9:48 PM
dougm committed rG5a5da24fc85a: mlx5: optimize ilog2 calculation (authored by dougm).
mlx5: optimize ilog2 calculation
Sat, Sep 28, 9:27 PM
dougm committed rG3873b9a8b3a5: mlx4: use is_power_of_2 (authored by dougm).
mlx4: use is_power_of_2
Sat, Sep 28, 9:27 PM
dougm committed rG65c4ec887eec: gdma: use ispower2 (authored by dougm).
gdma: use ispower2
Sat, Sep 28, 9:27 PM
dougm closed D46838: roundup_pow_of_two: use ispower instead.
Sat, Sep 28, 9:27 PM
dougm requested review of D46838: roundup_pow_of_two: use ispower instead.
Sat, Sep 28, 7:05 PM
dougm committed rGc44fbfdb5686: roundup_pow_of_two: don't take the log of it (authored by dougm).
roundup_pow_of_two: don't take the log of it
Sat, Sep 28, 5:02 PM
dougm closed D46827: roundup_pow_of_two: don't take the log of it.
Sat, Sep 28, 5:01 PM
dougm requested review of D46827: roundup_pow_of_two: don't take the log of it.
Sat, Sep 28, 12:02 AM

Fri, Sep 27

dougm committed rGb7cbf741d554: libkern: avoid local var in order_base_2() (authored by dougm).
libkern: avoid local var in order_base_2()
Fri, Sep 27, 11:46 PM
dougm closed D46826: libkern: avoid local var in order_base_2().
Fri, Sep 27, 11:45 PM
dougm requested review of D46826: libkern: avoid local var in order_base_2().
Fri, Sep 27, 9:58 PM
dougm added a comment to D46800: libkern.h: avoid errors with roundup_pow_of_two() in __aligned().
In D46800#1067418, @bz wrote:

My concern with this is that if the argument n to the macro has side effects, they will be effected twice. I don't find examples of that in the kernel, though I do find somewhere that n is a function call, so that a function would be invoked twice.

Let me suggest an alternative.

#define order_base_2(n) ilog2(2*(n)-1)

I believe that addresses your problem. What it costs is overflow when n has its high order bit set. I don't think that's a significant cost.

Seems to work for me. Do you want to commandeer the change for this?

Fri, Sep 27, 8:02 PM
dougm added a comment to D46620: swap_pager: use pctrie iterators.

What exactly do you mean by "freeing"? I wouldn't expect this patch on its own to affect how fast we can free pages, or is this including your other iterator patches?

Fri, Sep 27, 10:08 AM
dougm added a comment to D46620: swap_pager: use pctrie iterators.

With this patch:
{F96917947}
I compared the cycles consumed freeing 1000000 pages without and with this patch. The results from ministat:

Fri, Sep 27, 4:45 AM
dougm added a comment to D46800: libkern.h: avoid errors with roundup_pow_of_two() in __aligned().

My concern with this is that if the argument n to the macro has side effects, they will be effected twice. I don't find examples of that in the kernel, though I do find somewhere that n is a function call, so that a function would be invoked twice.

Fri, Sep 27, 3:27 AM

Wed, Sep 25

dougm added a comment to D46620: swap_pager: use pctrie iterators.

A performance test. With this patch {F96492700}, which computes stats on calls to swp_pager_meta_free, I ran all 8 stress2 swap tests, recording the stats immediately before and aofter the tests. The stats are 'cycles', 'calls', and 'pages' (freed). The results are:

Wed, Sep 25, 5:42 AM

Tue, Sep 24

dougm added inline comments to D46620: swap_pager: use pctrie iterators.
Tue, Sep 24, 7:33 PM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Address @alc feedback.

Tue, Sep 24, 7:32 PM

Mon, Sep 23

dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Update the patch to reflect the changes already checked in to main to address the last couple of comments.

Mon, Sep 23, 6:35 PM
dougm committed rGf1aaef47a01a: swap_pager: update meta_free comment (authored by dougm).
swap_pager: update meta_free comment
Mon, Sep 23, 6:29 PM
dougm closed D46754: swap_pager: update meta_free comment.
Mon, Sep 23, 6:29 PM
dougm added a reviewer for D46754: swap_pager: update meta_free comment: markj.
Mon, Sep 23, 5:20 PM
dougm committed rG940fec94b5fc: swap_pager: deoptimize swapoff_object (authored by dougm).
swap_pager: deoptimize swapoff_object
Mon, Sep 23, 5:13 PM
dougm closed D46753: swap_pager: deoptimize swapoff_object.
Mon, Sep 23, 5:13 PM
dougm updated the diff for D46753: swap_pager: deoptimize swapoff_object.

Let the assertion remain.

Mon, Sep 23, 4:34 PM
dougm updated the diff for D46724: vm_object: use pciters to remove pages.

Define no-radix-tree-modification versions of vm_page_remove and vm_page_free and use them.

Mon, Sep 23, 3:15 AM
dougm added a comment to D46753: swap_pager: deoptimize swapoff_object.
In D46753#1065827, @alc wrote:

No, this is not what @markj meant.

Mon, Sep 23, 2:03 AM

Sun, Sep 22

dougm requested review of D46754: swap_pager: update meta_free comment.
Sun, Sep 22, 7:25 PM
dougm requested review of D46753: swap_pager: deoptimize swapoff_object.
Sun, Sep 22, 6:03 PM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Undo the last non-whitespace change, since it breaks swap_pager_find_least by possibly creating an empty block.

Sun, Sep 22, 5:26 PM
dougm added inline comments to D46620: swap_pager: use pctrie iterators.
Sun, Sep 22, 5:12 PM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Address @markj concerns.

Sun, Sep 22, 5:12 PM
dougm updated the diff for D46724: vm_object: use pciters to remove pages.

Apply iterators to vm_kern.c:_kmem_unback.

Sun, Sep 22, 5:42 AM

Sat, Sep 21

dougm added a reviewer for D46724: vm_object: use pciters to remove pages: markj.
Sat, Sep 21, 10:57 PM
dougm added a reviewer for D46620: swap_pager: use pctrie iterators: kib.
Sat, Sep 21, 10:54 PM
dougm added a reviewer for D46704: swap_pager: use vm_page_iterators for lookup: kib.
Sat, Sep 21, 10:54 PM
dougm updated the diff for D46724: vm_object: use pciters to remove pages.
Sat, Sep 21, 8:19 PM
dougm updated the diff for D46724: vm_object: use pciters to remove pages.

Process vm_object_collapse_scan similarly.

Sat, Sep 21, 6:26 PM
dougm requested review of D46724: vm_object: use pciters to remove pages.
Sat, Sep 21, 8:25 AM

Fri, Sep 20

dougm requested review of D46708: ixgbe: fix compilation for VF.
Fri, Sep 20, 6:23 AM

Thu, Sep 19

dougm committed rGc3d743a67a7c: vm_object: use reclaim callback to free pages (authored by dougm).
vm_object: use reclaim callback to free pages
Thu, Sep 19, 8:24 PM
dougm closed D45588: vm_object: use reclaim callback to free pages.
Thu, Sep 19, 8:24 PM
dougm requested review of D46704: swap_pager: use vm_page_iterators for lookup.
Thu, Sep 19, 5:04 PM
dougm committed rG450a6690f557: vm_radix: offer pctrie_iterator access (authored by dougm).
vm_radix: offer pctrie_iterator access
Thu, Sep 19, 4:51 PM
dougm closed D46663: vm_radix: offer pciterator access.
Thu, Sep 19, 4:51 PM
dougm abandoned D46697: pctrie: read with iterators.
Thu, Sep 19, 7:00 AM
dougm removed reviewers for D46697: pctrie: read with iterators: andrew, manu.
Thu, Sep 19, 5:50 AM
dougm requested review of D46697: pctrie: read with iterators.
Thu, Sep 19, 4:26 AM

Wed, Sep 18

dougm updated the diff for D46663: vm_radix: offer pciterator access.

Back out one change that isn't ripe yet, as it depends on other changes not yet offered for review.

Wed, Sep 18, 2:18 AM

Mon, Sep 16

dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Incorporate changes from comments-only commit. Fix calculation of initial start value.

Mon, Sep 16, 9:51 AM
dougm committed rGbae517022c9a: swap_pager: enhance meta_transfer comments (authored by dougm).
swap_pager: enhance meta_transfer comments
Mon, Sep 16, 5:34 AM
dougm closed D46682: swap_pager: enhance meta_transfer comments.
Mon, Sep 16, 5:33 AM

Sun, Sep 15

dougm requested review of D46682: swap_pager: enhance meta_transfer comments.
Sun, Sep 15, 9:30 PM
dougm added inline comments to D46620: swap_pager: use pctrie iterators.
Sun, Sep 15, 9:12 PM
dougm updated subscribers of D46620: swap_pager: use pctrie iterators.
Sun, Sep 15, 8:58 PM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Accept as many suggestions as possible, but without defining a FOREACH macro.

Sun, Sep 15, 8:55 PM
dougm updated the diff for D46663: vm_radix: offer pciterator access.

Move pctrie_iter struct declaration in vm_page.h.

Sun, Sep 15, 8:24 PM
dougm abandoned D46679: swap_pager: avoid checking the zero d_mask in meta_transfer.

This proposal proved much less popular with its intended audience than I anticipated.

Sun, Sep 15, 9:20 AM
dougm updated the diff for D46620: swap_pager: use pctrie iterators.

Incorporate meta_transfer changes. Use blk.index for sp->p in several places. Compute 'start' more simply.

Sun, Sep 15, 9:14 AM
dougm requested review of D46679: swap_pager: avoid checking the zero d_mask in meta_transfer.
Sun, Sep 15, 7:35 AM
dougm committed rG4ccad5452058: swap_pager: avoid meta_transfer race (authored by dougm).
swap_pager: avoid meta_transfer race
Sun, Sep 15, 6:09 AM
dougm closed D46629: swap_pager: handle swblk being freed while lock dropped in meta_transfer .
Sun, Sep 15, 6:08 AM

Sat, Sep 14

dougm updated the diff for D46629: swap_pager: handle swblk being freed while lock dropped in meta_transfer .

Address @alc feedback.

Sat, Sep 14, 7:46 PM
dougm added inline comments to D46629: swap_pager: handle swblk being freed while lock dropped in meta_transfer .
Sat, Sep 14, 6:09 PM

Fri, Sep 13

dougm updated the diff for D46629: swap_pager: handle swblk being freed while lock dropped in meta_transfer .

Use a bitmask. Scope the bitmask outside of the loop to avoid reinitializing to zero.

Fri, Sep 13, 10:08 PM
dougm requested review of D46663: vm_radix: offer pciterator access.
Fri, Sep 13, 4:18 PM
dougm updated the diff for D46629: swap_pager: handle swblk being freed while lock dropped in meta_transfer .

A version without bitmasking. Perhaps this is acceptable?

Fri, Sep 13, 4:03 PM
dougm committed rGfd1d66628968: pctrie: create iterator (authored by dougm).
pctrie: create iterator
Fri, Sep 13, 3:40 PM
dougm closed D45627: pctrie: create iterator.
Fri, Sep 13, 3:39 PM