Page MenuHomeFreeBSD

chs (Chuck Silvers)
User

Projects

User Details

User Since
May 9 2018, 1:01 AM (129 w, 1 d)

Recent Activity

Mon, Oct 5

chs closed D26596: ufs: restore uniqueness of st_dev.
Mon, Oct 5, 6:18 PM
chs committed rS366453: ufs: restore uniqueness of st_dev as returned by ufs_stat().
ufs: restore uniqueness of st_dev as returned by ufs_stat()
Mon, Oct 5, 6:18 PM

Tue, Sep 29

chs requested review of D26596: ufs: restore uniqueness of st_dev.
Tue, Sep 29, 10:05 PM

Sep 22 2020

chs added a comment to D26511: Do not leak B_BARRIER..

It might be that brelse/bqrelse should also assert that the flag is cleared, but there I am not that sure.

Sep 22 2020, 5:22 PM

Sep 21 2020

chs added a comment to D26511: Do not leak B_BARRIER..

Would it make sense to put this clearing of B_BARRIER someplace central like in bufdone() rather than in these specific error paths?
If we don't clear this flag in bufdone() then it would be good to assert in bufdone() that the flag is not set, to catch such mistakes earlier.

Sep 21 2020, 11:55 PM

Sep 5 2020

chs committed rS365351: vfs: avoid exposing partially constructed vnodes.
vfs: avoid exposing partially constructed vnodes
Sep 5 2020, 12:26 AM
chs closed D26291: vfs: avoid exposing partially constructed vnodes.
Sep 5 2020, 12:26 AM

Sep 1 2020

chs requested review of D26291: vfs: avoid exposing partially constructed vnodes.
Sep 1 2020, 11:11 PM
chs committed rS365056: Move all of the error prints in readsb() from stderr to stdout..
Move all of the error prints in readsb() from stderr to stdout.
Sep 1 2020, 6:50 PM

Jul 27 2020

chs accepted D25828: vm_page_free_invalid(): Relax the xbusy assertion..

ahh, right. the test I added for this fails the I/O in such a way (using gnop) that the iodone is actually called in the start path, so it's the same thread that xbusied the pages in that case. you said this problem was reported by other automated testing, how does that test fail I/O such that the iodone is called in a separate thread?

Jul 27 2020, 10:14 AM

Jul 23 2020

chs added inline comments to D25431: Add a few atf tests for sendfile, with and without I/O errors..
Jul 23 2020, 3:33 AM
chs added a comment to D25431: Add a few atf tests for sendfile, with and without I/O errors..
In D25431#570827, @ngie wrote:

Curious... is there a reason why this was added in addition to lib/libc/tests/sys/sendfile_test.c?

Jul 23 2020, 3:29 AM

Jul 20 2020

chs committed rS363377: add a few tests for sendfile..
add a few tests for sendfile.
Jul 20 2020, 8:37 PM
chs closed D25431: Add a few atf tests for sendfile, with and without I/O errors..
Jul 20 2020, 8:37 PM

Jul 17 2020

chs committed rS363296: Fix vnode_pager handling of read ahead/behind pages when a disk read fails..
Fix vnode_pager handling of read ahead/behind pages when a disk read fails.
Jul 17 2020, 11:11 PM
chs committed rS363295: Add a new function vm_page_free_invalid() for freeing invalid pages.
Add a new function vm_page_free_invalid() for freeing invalid pages
Jul 17 2020, 11:09 PM
chs committed rS363294: Revert my change from r361855 in favor of a better fix..
Revert my change from r361855 in favor of a better fix.
Jul 17 2020, 11:08 PM
chs closed D25430: Fix one more case of vnode_pager I/O errors.
Jul 17 2020, 11:08 PM
chs updated the diff for D25430: Fix one more case of vnode_pager I/O errors.

update diff for kib's latest comments.

Jul 17 2020, 7:00 PM

Jul 15 2020

chs updated the diff for D25430: Fix one more case of vnode_pager I/O errors.

typo

Jul 15 2020, 11:58 PM
chs updated the diff for D25430: Fix one more case of vnode_pager I/O errors.

rename the new function and limit this diff to only fixing vnode_pager_generic_getpages_done().

Jul 15 2020, 11:51 PM

Jul 14 2020

chs added a comment to D25430: Fix one more case of vnode_pager I/O errors.
In D25430#565910, @kib wrote:
In D25430#565838, @kib wrote:

The proposal means that it is impossible to wire the page in non-sleepable context, unless we own xbusy on the page in advance. I believe this is no-go.

It is unusual for code to wire managed pages without using the busy lock to provide some consistency. vm_page_grab(), etc., provide mechanisms to avoid blocking, so callers can block and retry at a point of their choosing. In fact I cannot see any places in the tree today where a managed wiring is created without the busy lock.

I would agree that wiring could obey to this rule, but I believe we must provide sleep-less mechanism to prevent page from reuse. Some time ago it was hold, since then hold count was merged with wire count, thus wire count should provide such functionality.

Let's keep it for now then. In the meantime, we might generalize vm_page_readahead_free() to handle non-readahead pages. For example, fault_page_free() could also remove the page from its object. This function could also be used in tmpfs_reg_resize() and shm_dotruncate_locked().

Jul 14 2020, 12:39 AM

Jul 8 2020

chs updated the diff for D25431: Add a few atf tests for sendfile, with and without I/O errors..

update diff with markj's suggestions.

Jul 8 2020, 12:12 AM

Jul 6 2020

chs updated the diff for D25430: Fix one more case of vnode_pager I/O errors.

updated diff for markj's latest comments.

Jul 6 2020, 10:51 PM
chs added a comment to D25430: Fix one more case of vnode_pager I/O errors.
In D25430#562442, @chs wrote:

And yea, this patch does leave these invalid pages in an odd state, where the pagedaemon can't reclaim them (though if the vnode is reclaimed then all of these invalid pages will be freed at that point). I wasn't going to worry about that right now since the sendfile code already can leave pages in this state after an I/O error, and kib thought that was ok in a review of a previous fix for sendfile I/O error handling. But if you'd like this fix to avoid creating this situation in vnode_pager_generic_getpages_done(), we can do that too.

While I was looking into vm_page_readahead_finish(), I noticed that swp_pager_async_iodone() also leaves pages in this state.

I see. That looks like a bug to me.

Jul 6 2020, 10:49 PM

Jun 26 2020

chs updated the diff for D25430: Fix one more case of vnode_pager I/O errors.

redo diff as markj suggested.

Jun 26 2020, 8:21 PM
chs added a comment to D25430: Fix one more case of vnode_pager I/O errors.

Yea, I didn't know what the problem having invalid pages on the paging queues would be either.

Jun 26 2020, 8:21 PM

Jun 24 2020

chs requested review of D25431: Add a few atf tests for sendfile, with and without I/O errors..
Jun 24 2020, 6:08 PM
chs requested review of D25430: Fix one more case of vnode_pager I/O errors.
Jun 24 2020, 6:04 PM
chs added a comment to D25073: Define M_UFSMNT in ffs_subr.c.

The intention is that ffs_subr.c should only contain functions that are shared by the ufs kernel module and the libufs userland library. At some point the geom_label kernel module started using ffs_subr.c too even though that is cross-module direct reference, which is problematic when not all of the modules are statically included in the base kernel. Now that I moved the functions which are only needed by the ufs kernel module elsewhere, geom_label's instance of ffs_subr.c no longer references M_UFSMNT, so this change is not necessary.

Jun 24 2020, 5:05 PM

Jun 18 2020

chs closed D25285: fix kernel linking without FFS.
Jun 18 2020, 9:32 AM
chs committed rS362292: Move all of the functions in ffs_subr.c that are only used by the ufs kernel.
Move all of the functions in ffs_subr.c that are only used by the ufs kernel
Jun 18 2020, 9:25 AM
chs closed D25285: fix kernel linking without FFS.
Jun 18 2020, 9:25 AM

Jun 16 2020

chs accepted D25285: fix kernel linking without FFS.

Gleb asked me to commit this so that git blame will still blame me. :-)
The diff looks fine to me, adding kirk as a reviewer also.

Jun 16 2020, 4:46 PM

Jun 6 2020

chs committed rS361855: Don't mark pages as valid if reading the contents from disk fails..
Don't mark pages as valid if reading the contents from disk fails.
Jun 6 2020, 12:48 AM
chs closed D25138: Don't mark pages as valid if reading the contents from disk fails..
Jun 6 2020, 12:48 AM
chs committed rS361852: Fix hang due to missing unbusy in sendfile when an async data I/O fails..
Fix hang due to missing unbusy in sendfile when an async data I/O fails.
Jun 6 2020, 12:03 AM
chs closed D25136: Fix hang due to missing unbusy in sendfile when an async data I/O fails..
Jun 6 2020, 12:03 AM

Jun 4 2020

chs added reviewers for D25138: Don't mark pages as valid if reading the contents from disk fails.: kib, glebius, markj.
Jun 4 2020, 10:06 PM
chs requested review of D25138: Don't mark pages as valid if reading the contents from disk fails..
Jun 4 2020, 10:06 PM
chs added reviewers for D25136: Fix hang due to missing unbusy in sendfile when an async data I/O fails.: kib, glebius, markj.
Jun 4 2020, 9:51 PM
chs requested review of D25136: Fix hang due to missing unbusy in sendfile when an async data I/O fails..
Jun 4 2020, 9:49 PM

May 25 2020

chs committed rS361491: This commit enables a UFS filesystem to do a forcible unmount when.
This commit enables a UFS filesystem to do a forcible unmount when
May 25 2020, 11:47 PM

May 13 2020

chs updated the diff for D24088: handle disk I/O errors in FFS with softdep enabled..

really remove putpages wrapper this time.

May 13 2020, 11:42 PM
chs updated the diff for D24088: handle disk I/O errors in FFS with softdep enabled..

update to address review comments.

May 13 2020, 11:34 PM

May 12 2020

chs added inline comments to D24088: handle disk I/O errors in FFS with softdep enabled..
May 12 2020, 11:28 PM

May 8 2020

chs updated the diff for D24088: handle disk I/O errors in FFS with softdep enabled..

update diff to 360823

May 8 2020, 8:26 PM

May 2 2020

chs committed rS360559: Print the fs last-mounted time too..
Print the fs last-mounted time too.
May 2 2020, 12:10 AM

May 1 2020

chs added a comment to D24088: handle disk I/O errors in FFS with softdep enabled..

Are there any more comments on this diff?

May 1 2020, 7:24 PM

Apr 19 2020

chs added a comment to D24480: Avoid panicing for commands that poll-out..

generally, having the function that submits an async request return a pointer a request structure that is freed when the request completes is a bad idea, since the caller will have handle the request structure having already been freed, and thus having a pointer to it isn't useful. as you guys discussed, using the normal timeout path for polled commands (and fixing the normal timeout path to not be racy) would be good. a fun corner case will be when the use of the abort command in the timeout path itself times out.

Apr 19 2020, 9:59 PM

Apr 3 2020

chs added inline comments to D24272: Print more detail as part of the sonewconn() overflow message.
Apr 3 2020, 8:41 PM

Mar 30 2020

chs added inline comments to D24088: handle disk I/O errors in FFS with softdep enabled..
Mar 30 2020, 9:01 PM

Mar 18 2020

chs updated the summary of D24088: handle disk I/O errors in FFS with softdep enabled..
Mar 18 2020, 5:26 PM

Mar 16 2020

chs created D24088: handle disk I/O errors in FFS with softdep enabled..
Mar 16 2020, 6:19 PM

Mar 9 2020

chs committed rS358812: Use the devfs vnode rather than the mntfs vnode for permissions checks..
Use the devfs vnode rather than the mntfs vnode for permissions checks.
Mar 9 2020, 3:55 PM

Mar 6 2020

chs committed rS358714: Add a new "mntfs" pseudo file system which provides private device vnodes for.
Add a new "mntfs" pseudo file system which provides private device vnodes for
Mar 6 2020, 6:41 PM
chs closed D23787: add "mntfs" private vnodes for file systems to access their storage safely.
Mar 6 2020, 6:41 PM
chs added inline comments to D23787: add "mntfs" private vnodes for file systems to access their storage safely.
Mar 6 2020, 12:53 AM

Mar 5 2020

chs updated the diff for D23787: add "mntfs" private vnodes for file systems to access their storage safely.

update with changes suggested by kib and imp.

Mar 5 2020, 6:49 PM

Mar 4 2020

chs committed rS358597: if vm_pager_get_pages_async() returns an error, release the sfio->nios.
if vm_pager_get_pages_async() returns an error, release the sfio->nios
Mar 4 2020, 12:23 AM

Feb 26 2020

chs added a comment to D23787: add "mntfs" private vnodes for file systems to access their storage safely.

There's no central place in the ufs code to add an assertion about not creating buffers on odevvp. What I could do is define a new BO_NOBUFS flag for bufobj bo_flag, set that flag on odevvp in ffs_mountfs() and clear the flag in ffs_unmount(), and then in buf_vlist_add() assert that (bo->bo_flag & BO_NOBUFS) == 0. Is that what you had in mind?

Feb 26 2020, 10:36 PM

Feb 21 2020

chs added reviewers for D23787: add "mntfs" private vnodes for file systems to access their storage safely: imp, mckusick, kib.
Feb 21 2020, 10:57 PM
chs created D23787: add "mntfs" private vnodes for file systems to access their storage safely.
Feb 21 2020, 10:56 PM

Feb 18 2020

chs committed rS358058: amd64: keep PTE bitmasks in sync with target pmap during pv reclaim.
amd64: keep PTE bitmasks in sync with target pmap during pv reclaim
Feb 18 2020, 12:02 AM

Feb 3 2020

chs committed rS357456: With INVARIANTS, track all softdep dependency structures centrally.
With INVARIANTS, track all softdep dependency structures centrally
Feb 3 2020, 5:47 PM

Jan 16 2020

chs accepted D23117: Use buf to send speedup.

minor nit: the returned "resid" value is unused. otherwise looks good.

Jan 16 2020, 10:44 PM
chs accepted D23182: We only want to send the speedup to the lower layers when there's a shortage..

looks good.

Jan 16 2020, 10:43 PM
chs accepted D23183: Pass BIO_SPEEDUP through all the geom layers.

looks good.

Jan 16 2020, 10:40 PM

Nov 28 2019

chs committed rS355150: As part of creating a snapshot, set fs->fs_fmod to 0 in the snapshot image.
As part of creating a snapshot, set fs->fs_fmod to 0 in the snapshot image
Nov 28 2019, 12:37 AM

Nov 25 2019

chs committed rS355098: In ffs_freefile(), use a separate variable to hold the inode number within.
In ffs_freefile(), use a separate variable to hold the inode number within
Nov 25 2019, 7:31 PM

Nov 12 2019

chs committed rS354632: In ufs_dir_dd_ino(), always initialize *dd_vp since the caller expects it..
In ufs_dir_dd_ino(), always initialize *dd_vp since the caller expects it.
Nov 12 2019, 12:32 AM

Oct 16 2019

chs committed rS353668: Make all the gnop parameters optional in the request from userland,.
Make all the gnop parameters optional in the request from userland,
Oct 16 2019, 9:50 PM
chs committed rS353667: Add a new gctl_get_paraml_opt() interface to extract optional parameters from.
Add a new gctl_get_paraml_opt() interface to extract optional parameters from
Oct 16 2019, 9:50 PM
chs closed D21972: Add support to geom_nop.ko kernel module for older geom_nop.so userland modules..
Oct 16 2019, 9:50 PM

Oct 10 2019

chs added inline comments to D21972: Add support to geom_nop.ko kernel module for older geom_nop.so userland modules..
Oct 10 2019, 9:52 PM
chs created D21972: Add support to geom_nop.ko kernel module for older geom_nop.so userland modules..
Oct 10 2019, 6:33 PM

Sep 13 2019

chs committed rS352312: Add a "count_until_fail" option to gnop, which says to start failing.
Add a "count_until_fail" option to gnop, which says to start failing
Sep 13 2019, 11:04 PM
chs closed D21593: Add an option to gnop to allow rejecting I/O after allowing some through..
Sep 13 2019, 11:04 PM

Sep 10 2019

chs added reviewers for D21593: Add an option to gnop to allow rejecting I/O after allowing some through.: imp, mckusick, kib, cem.
Sep 10 2019, 8:05 PM
chs created D21593: Add an option to gnop to allow rejecting I/O after allowing some through..
Sep 10 2019, 8:02 PM

Jul 2 2019

chs closed D15456: change ffs_blkfree() trim to not bypass geom_vfs, avoids panics.
Jul 2 2019, 5:10 PM

Jun 27 2019

chs committed rD53201: Add myself as a new committer.
Add myself as a new committer
Jun 27 2019, 7:59 PM

Jun 21 2019

pi renamed chs from chuq_chuq.com to chs.
Jun 21 2019, 4:43 AM

Jul 27 2018

chs added a comment to D16328: brelse() should not make buffers dirty again when writes fail.

I'll try to address all the points that everyone has made so far here.

Jul 27 2018, 11:28 PM

Jul 18 2018

chs created D16328: brelse() should not make buffers dirty again when writes fail.
Jul 18 2018, 5:55 PM

Jun 27 2018

chs created D16043: add a sysctl to the AHCI driver to allow disabling the PHY.
Jun 27 2018, 9:43 PM

May 16 2018

chs created D15456: change ffs_blkfree() trim to not bypass geom_vfs, avoids panics.
May 16 2018, 5:07 PM

May 14 2018

chs updated the summary of D15435: expand scope of da refcount to protect I/Os in flight.
May 14 2018, 8:30 PM
chs created D15435: expand scope of da refcount to protect I/Os in flight.
May 14 2018, 8:22 PM