Page MenuHomeFreeBSD

chs (Chuck Silvers)
User

Projects

User Details

User Since
May 9 2018, 1:01 AM (211 w, 3 h)

Recent Activity

Mon, May 9

chs accepted D35149: ffs_use_bwrite: make the superblock snapshot more consistent.
Mon, May 9, 3:57 PM

Thu, Apr 28

chs accepted D35093: cam_periph: Return ENXIO when peripheral is invalidated.

This makes sense to me.

Thu, Apr 28, 9:01 PM

Apr 11 2022

chs added a comment to D34836: vfs: fix vn_read_from_obj() for PAGE_SIZE > block size.

No, in this example of 16k pages and 4k blocks, the first page would contain the first 4 blocks, the second page would contain the next 4 blocks, etc, so mmap'ing the file works as you would expect.

Apr 11 2022, 7:08 PM

Apr 8 2022

chs closed D34806: ffs: wait for trims earlier during unmount to avoid panic.
Apr 8 2022, 5:24 PM
chs committed R10:3dc5f8e19d8c: ffs: wait for trims earlier during unmount to avoid panic (authored by chs).
ffs: wait for trims earlier during unmount to avoid panic
Apr 8 2022, 5:24 PM

Apr 7 2022

chs updated the diff for D34806: ffs: wait for trims earlier during unmount to avoid panic.

made requested changes.

Apr 7 2022, 10:26 PM
chs requested review of D34837: vfs: fix vfs_bio_clrbuf() for PAGE_SIZE > block size.
Apr 7 2022, 8:15 PM
chs requested review of D34836: vfs: fix vn_read_from_obj() for PAGE_SIZE > block size.
Apr 7 2022, 8:15 PM
chs requested review of D34835: ffs: fix vn_io_fault_pgmove() offset for PAGE_SIZE > block size.
Apr 7 2022, 8:15 PM

Apr 6 2022

chs requested review of D34806: ffs: wait for trims earlier during unmount to avoid panic.
Apr 6 2022, 5:54 PM

Feb 28 2022

chs accepted D32697: Create a union GEOM module.
Feb 28 2022, 6:07 PM
chs accepted D34259: Report I/O stats from the CAM_IOSCHED_DYNAMIC extension.
Feb 28 2022, 5:43 PM

Feb 24 2022

chs accepted D34365: cam: add hw.cam.iosched.read_bias.
Feb 24 2022, 12:50 AM

Feb 23 2022

chs added a comment to D34259: Report I/O stats from the CAM_IOSCHED_DYNAMIC extension.

It would be good to go ahead and resolve the XXX comments that are currently being added by the patch.

Feb 23 2022, 11:54 PM
chs added a comment to D34351: cam iosched: Allow read bias to be 0.

I would characterize this change as: redefine "read_bias==0" from the current meaning of "prefer writes" to instead mean "no read-vs-write bias".
This patch looks correct in implementing that new meaning, though it would be nice if it didn't involve essentially duplicating the code of cam_iosched_get_write() in cam_iosched_next_bio().

Feb 23 2022, 9:17 PM

Feb 22 2022

chs accepted D34348: camcontrol fwdownload minor improvements.
Feb 22 2022, 9:34 PM
chs added a reviewer for D34348: camcontrol fwdownload minor improvements: chs.
Feb 22 2022, 9:34 PM

Feb 10 2022

chs closed D34216: dtrace: remove unnecessary fflush().
Feb 10 2022, 2:49 AM
chs committed R10:f339a3ef6369: dtrace: remove unnecessary fflush() (authored by chs).
dtrace: remove unnecessary fflush()
Feb 10 2022, 2:49 AM

Feb 8 2022

chs added a reviewer for D34216: dtrace: remove unnecessary fflush(): markj.
Feb 8 2022, 11:41 PM
chs requested review of D34216: dtrace: remove unnecessary fflush().
Feb 8 2022, 11:40 PM

Jan 10 2022

chs added a comment to D32697: Create a union GEOM module.

I agree with kib that there is no need to serialize read requests (that need to choose whether to read from lower or upper) with write requests (that change the target of future reads from lower to upper)... allowing a pending read from the lower layer to complete after a write changes the target of future reads of that sector to be the upper layer is fine. The application must be prepared for the read to return either the old data or the new data in this case because the order of processing of these parallel async operations is not guaranteed.

Jan 10 2022, 11:42 PM

Dec 3 2021

chs closed D32950: librtld_db: Handle shlibs with discontiguous mappings..
Dec 3 2021, 7:09 PM
chs committed R10:dfd00261c95a: librtld_db: Handle shlibs with discontiguous mappings. (authored by chs).
librtld_db: Handle shlibs with discontiguous mappings.
Dec 3 2021, 7:09 PM
chs added a comment to D32950: librtld_db: Handle shlibs with discontiguous mappings..

Yea, I couldn't see any reason for the linker to leave the gap in libcrypto.so's memory layout either, but it doesn't seem like an invalid thing to do either, and it's easy enough to handle it.

Dec 3 2021, 3:22 PM
chs updated the diff for D32950: librtld_db: Handle shlibs with discontiguous mappings..

update for review comments.

Dec 3 2021, 3:19 PM

Nov 11 2021

chs updated the summary of D32950: librtld_db: Handle shlibs with discontiguous mappings..
Nov 11 2021, 9:49 PM
chs requested review of D32950: librtld_db: Handle shlibs with discontiguous mappings..
Nov 11 2021, 9:48 PM

Oct 27 2021

chs accepted D32679: cam_periph: style change.
Oct 27 2021, 6:34 PM

Sep 27 2021

chs accepted D32150: Avoid "consumer not attached in g_io_request" panic when disk lost while using a UFS snapshot..

there's one more unsafe use of g_io_request() in UFS, in softdep_synchronize(), but that can be fixed separately from this one.

Sep 27 2021, 1:37 AM

Sep 24 2021

chs accepted D32089: kern_reboot: Only call the shutdown handler once.
Sep 24 2021, 9:37 PM
chs accepted D32089: kern_reboot: Only call the shutdown handler once.

I'm told that these day using "bool" and true/false is preferred over using "int" and 1/0, but otherwise this is good.

Sep 24 2021, 12:18 AM
chs accepted D32088: nvme: Sanity check completion id.
Sep 24 2021, 12:16 AM

Jul 19 2021

chs added inline comments to D31016: Allow stacked filesystems to be recursively unmounted.
Jul 19 2021, 5:21 PM

Jun 29 2021

chs committed R10:ed1a156b038d: fsck_ffs: don't try to write in read-only mode (authored by chs).
fsck_ffs: don't try to write in read-only mode
Jun 29 2021, 9:30 PM

Jun 24 2021

chs accepted D30881: dumpfs(8): add option to only print superblock information.
Jun 24 2021, 5:36 PM

Jun 22 2021

chs added a comment to D28856: Move struct bufobj out of struct vnode.

overall I agree with mjg and kirk that it would be simpler and better in the long term for the bufobj to be part of the fs-specific "inode" structure for file systems that need it, rather than having the fs-independent code need to know about multiple flavors of vnodes.

Jun 22 2021, 8:29 PM

May 28 2021

chs added a comment to D30537: fsck_ffs(8): do bufinit() just before gjournal_check().

what is the "issue reported by jhb" that you mention?

May 28 2021, 11:23 PM

May 25 2021

chs committed R10:84768d114951: fsdb: add missing bufinit() call (authored by chs).
fsdb: add missing bufinit() call
May 25 2021, 4:44 PM

Apr 2 2021

chs accepted D29540: sendfile: Fix error initialization in sendfile_getobj().
Apr 2 2021, 12:00 AM

Mar 18 2021

chs committed R10:8c59e863e2c0: tail: fix "tail -F" file rotation detection (authored by chs).
tail: fix "tail -F" file rotation detection
Mar 18 2021, 8:18 PM

Mar 11 2021

chs accepted D29210: cam: Run all XPT_ASYNC ccbs in a dedicated thread.
Mar 11 2021, 6:12 PM
chs added inline comments to D29210: cam: Run all XPT_ASYNC ccbs in a dedicated thread.
Mar 11 2021, 12:29 AM

Feb 24 2021

chs accepted D28811: sendfile: Return the object size from sendfile_getobj().
Feb 24 2021, 8:42 PM

Feb 2 2021

chs committed R10:7787e7eed9d2: tail: fix "tail -F" file rotation detection (authored by chs).
tail: fix "tail -F" file rotation detection
Feb 2 2021, 12:29 AM

Jan 7 2021

chs closed D28008: vfs: fix rangelock range in vn_rdwr() for IO_APPEND.
Jan 7 2021, 9:42 PM
chs committed R10:11403bdeb415: vfs: fix rangelock range in vn_rdwr() for IO_APPEND (authored by chs).
vfs: fix rangelock range in vn_rdwr() for IO_APPEND
Jan 7 2021, 9:42 PM

Jan 6 2021

chs updated the test plan for D28008: vfs: fix rangelock range in vn_rdwr() for IO_APPEND.
Jan 6 2021, 8:53 PM
chs requested review of D28008: vfs: fix rangelock range in vn_rdwr() for IO_APPEND.
Jan 6 2021, 8:25 PM

Nov 3 2020

chs accepted D27081: ffs: Clamp BIO_SPEEDUP length.

The same issue exists in g_io_speedup() (though that function appears to be unused at the moment).

Nov 3 2020, 9:29 PM

Oct 5 2020

chs closed D26596: ufs: restore uniqueness of st_dev.
Oct 5 2020, 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()
Oct 5 2020, 6:18 PM

Sep 29 2020

chs requested review of D26596: ufs: restore uniqueness of st_dev.
Sep 29 2020, 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