Page MenuHomeFreeBSD

tmunro (Thomas Munro)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 16 2018, 11:01 AM (287 w, 3 d)

Recent Activity

Feb 21 2023

tmunro closed D27531: truss: Add preadv(2) and pwritev(2)..
Feb 21 2023, 9:47 AM
tmunro committed rG58e3631bd08c: truss: Add preadv(2) and pwritev(2). (authored by tmunro).
truss: Add preadv(2) and pwritev(2).
Feb 21 2023, 9:46 AM

Nov 5 2022

tmunro added a comment to D37102: kqueue: EVFILT_USERMEM.
In D37102#845792, @kib wrote:

Perhaps you do not get responses before proposed semantic is quite strange.

Nov 5 2022, 11:56 AM

Oct 28 2022

tmunro updated subscribers of D37102: kqueue: EVFILT_USERMEM.

Taking the liberty of subscribing a couple of people who've been active in kern_event.c, to see if they have any flames/feedback/ideas for me or might be able to suggest who could be interested in this area...

Oct 28 2022, 11:06 PM

Oct 24 2022

tmunro requested review of D37102: kqueue: EVFILT_USERMEM.
Oct 24 2022, 5:43 AM

Aug 28 2022

tmunro added inline comments to D36371: ffs: Flush device write cache on fsync/fdatasync.
Aug 28 2022, 5:03 AM

Aug 27 2022

tmunro added a comment to D36371: ffs: Flush device write cache on fsync/fdatasync.

You mean conceptually, or the performance I get on my drive? I have to admit that I only got as far as finding 5.27.1.4 in the NVMe base spec and realising that I want to send that in a Set Features command, and seeing that there is a patch D32700 that might make that easier, but not figuring out how to do it with unpatched nvmecontrol (I guess maybe admin-passthru and some raw bytes?). Got an example command?

Aug 27 2022, 4:21 AM
tmunro updated subscribers of D36371: ffs: Flush device write cache on fsync/fdatasync.
Aug 27 2022, 3:38 AM
tmunro updated the summary of D36371: ffs: Flush device write cache on fsync/fdatasync.
Aug 27 2022, 3:26 AM
tmunro requested review of D36371: ffs: Flush device write cache on fsync/fdatasync.
Aug 27 2022, 3:25 AM

Dec 5 2021

tmunro updated the summary of D33144: Reap AIO completions asynchronously when using kqueue..
Dec 5 2021, 8:29 PM
tmunro updated the diff for D33144: Reap AIO completions asynchronously when using kqueue..

More context.

Dec 5 2021, 8:15 PM
tmunro updated the diff for D33271: Update AIO rusage counters asynchronously..
Dec 5 2021, 8:12 PM
tmunro added a comment to D33144: Reap AIO completions asynchronously when using kqueue..

In fact, if aio_error and aio_return are backwards compatible in that way, could we also create new versions of aio_write, etc that set AIO_KEVENT_FLAG_REAP automatically? That way existing programs could reap the benefits of your work with no code changes, just a recompile.

Dec 5 2021, 11:51 AM
tmunro updated the diff for D33144: Reap AIO completions asynchronously when using kqueue..

Split into two, moved the rusage stuff to D33271.

Dec 5 2021, 11:42 AM
tmunro requested review of D33271: Update AIO rusage counters asynchronously..
Dec 5 2021, 11:40 AM

Nov 28 2021

tmunro updated the summary of D33144: Reap AIO completions asynchronously when using kqueue..
Nov 28 2021, 5:49 PM
tmunro updated the test plan for D33144: Reap AIO completions asynchronously when using kqueue..
Nov 28 2021, 6:46 AM
tmunro updated the summary of D33144: Reap AIO completions asynchronously when using kqueue..
Nov 28 2021, 3:15 AM
tmunro requested review of D33144: Reap AIO completions asynchronously when using kqueue..
Nov 28 2021, 3:10 AM

Sep 20 2021

tmunro accepted D32023: aio_fsync_vnode: handle ERELOOKUP after VOP_FSYNC().

LGTM. I tried it with my aio_fsync/aio_waitcomplete-heavy workload and saw no problem (though that isn't saying much, as I've only ever seen ERELOOKUP/panic twice).

Sep 20 2021, 11:56 AM

Sep 11 2021

tmunro added a comment to D31914: aio: Fix up the opcode in aiocb32_copyin().

Right. Thanks!

Sep 11 2021, 8:11 PM

Aug 22 2021

tmunro committed rG3904e7966eb3: Fix aio_readv(2), aio_writev(2) with SIGEV_THREAD. (authored by tmunro).
Fix aio_readv(2), aio_writev(2) with SIGEV_THREAD.
Aug 22 2021, 12:16 PM
tmunro closed D31618: Fix aio_{read,write}v() with SIGEV_THREAD..
Aug 22 2021, 12:16 PM
tmunro committed rGf30a1ae8d529: lio_listio(2): Allow LIO_READV and LIO_WRITEV. (authored by tmunro).
lio_listio(2): Allow LIO_READV and LIO_WRITEV.
Aug 22 2021, 11:05 AM
tmunro closed D31627: Allow LIO_READV and LIO_WRITEV in lio_listio()..
Aug 22 2021, 11:05 AM

Aug 21 2021

tmunro updated the diff for D31627: Allow LIO_READV and LIO_WRITEV in lio_listio()..
Aug 21 2021, 4:47 AM
tmunro updated the diff for D31627: Allow LIO_READV and LIO_WRITEV in lio_listio()..

Reuploaded patch with -U99999, no change.

Aug 21 2021, 3:31 AM
tmunro requested review of D31627: Allow LIO_READV and LIO_WRITEV in lio_listio()..
Aug 21 2021, 3:08 AM

Aug 20 2021

tmunro requested review of D31618: Fix aio_{read,write}v() with SIGEV_THREAD..
Aug 20 2021, 10:28 AM

Apr 28 2021

tmunro committed rG18f21f035548: Update tools/regression/poll/sockpoll.c for POLLRDPOLL. (authored by tmunro).
Update tools/regression/poll/sockpoll.c for POLLRDPOLL.
Apr 28 2021, 11:20 AM
tmunro closed D29757: POLLRDHUP.
Apr 28 2021, 11:20 AM
tmunro committed rG3aaaa2efde89: poll(2): Add POLLRDHUP. (authored by tmunro).
poll(2): Add POLLRDHUP.
Apr 28 2021, 11:20 AM

Apr 26 2021

tmunro updated the diff for D29757: POLLRDHUP.

-U999999

Apr 26 2021, 11:26 AM
tmunro added a comment to D29757: POLLRDHUP.
In D29757#668704, @kib wrote:

This all looks fine to me, two notes:

  1. Please split the test into two
Apr 26 2021, 11:12 AM
tmunro updated the diff for D29757: POLLRDHUP.
Apr 26 2021, 11:08 AM

Apr 17 2021

tmunro added a comment to D29757: POLLRDHUP.

Added a test to show that we don't report POLLRDHUP unless you asked for it.

Apr 17 2021, 2:10 PM
tmunro updated the diff for D29757: POLLRDHUP.
Apr 17 2021, 2:08 PM
tmunro added a comment to D29757: POLLRDHUP.

Ok, now ignoring POLLINIGNEOF for this.

Apr 17 2021, 10:44 AM
tmunro updated the diff for D29757: POLLRDHUP.
Apr 17 2021, 10:43 AM

Apr 14 2021

tmunro added inline comments to D29757: POLLRDHUP.
Apr 14 2021, 10:51 AM
tmunro updated the diff for D29757: POLLRDHUP.

This time with -U999999, and mentioning illumos as requested.

Apr 14 2021, 10:47 AM
tmunro requested review of D29757: POLLRDHUP.
Apr 14 2021, 5:37 AM

Jan 11 2021

tmunro accepted D28078: lio_listio: validate aio_lio_opcode.
Jan 11 2021, 10:12 PM

Jan 9 2021

tmunro closed D25071: aio_fsync(O_DSYNC).
Jan 9 2021, 7:38 PM
tmunro closed D25160: ufs: add O_DSYNC support.
Jan 9 2021, 7:34 PM

Jan 8 2021

tmunro added a comment to D27942: aio: micro-optimize the lio_opcode assignments.

Looks OK to me. I suppose we could also use bitmask style for LIO_SYNC and LIO_DATA_ONLY?

Jan 8 2021, 5:39 AM
tmunro committed rGda3ef8e66aa1: Fix conflicting value of O_DSYNC. (authored by tmunro).
Fix conflicting value of O_DSYNC.
Jan 8 2021, 5:03 AM
tmunro committed rG801ac943ea08: aio_fsync(2): Support O_DSYNC. (authored by tmunro).
aio_fsync(2): Support O_DSYNC.
Jan 8 2021, 12:18 AM
tmunro committed rGe7347be9e34d: ffs: Support O_DSYNC. (authored by tmunro).
ffs: Support O_DSYNC.
Jan 8 2021, 12:18 AM
tmunro closed D25090: Add O_DSYNC support to open(2) and fcntl(2)..
Jan 8 2021, 12:17 AM
tmunro committed rGa5e284038edc: open(2): Add O_DSYNC flag. (authored by tmunro).
open(2): Add O_DSYNC flag.
Jan 8 2021, 12:17 AM

Jan 6 2021

tmunro added a comment to D25071: aio_fsync(O_DSYNC).

Updated to address review feedback and fix oversights in man page.

Jan 6 2021, 11:52 AM
tmunro updated the diff for D25071: aio_fsync(O_DSYNC).

Rebased.

Jan 6 2021, 11:50 AM
tmunro updated the diff for D25160: ufs: add O_DSYNC support.

Rebased. Previous confusion turned out to be explained by problems fixed by D27353 and problems in my test methodology.

Jan 6 2021, 11:47 AM
tmunro updated the diff for D25090: Add O_DSYNC support to open(2) and fcntl(2)..

Rebased (mostly: ZFS moved).

Jan 6 2021, 11:42 AM

Dec 16 2020

tmunro added a comment to D27624: Add aio_writev and aio_readv.

Great feature. +1 for allowing it in lio_listio() for batched submissions in later work (I'd also like to see LIO_FSYNC allowed in there too). I wonder if it is OK to use C11 anon union syntax in a system header; I see that sys/ucred.h does that.

Dec 16 2020, 2:32 AM

Dec 10 2020

tmunro requested review of D27531: truss: Add preadv(2) and pwritev(2)..
Dec 10 2020, 7:50 AM
tmunro added a comment to D27518: truss(1): add AIO syscalls.

Thanks for doing this. It looks like it could be pretty helpful. Helpful enough that I may need to learn to start using truss.

Dec 10 2020, 7:19 AM
tmunro closed D27518: truss(1): add AIO syscalls.
Dec 10 2020, 7:13 AM
tmunro committed rS368500: truss: Add AIO syscalls..
truss: Add AIO syscalls.
Dec 10 2020, 7:13 AM

Dec 9 2020

tmunro updated the diff for D27518: truss(1): add AIO syscalls.

Dropped the SIGEV_THREAD function pointer. Switched to a hardcoded limit on how many lio_listio array elements to display, following a coding pattern from nearby similar things.

Dec 9 2020, 4:12 AM
tmunro added a comment to D27518: truss(1): add AIO syscalls.

This looks like a good change, but I'm not a truss user. I use ktrace instead. With this patch, how does the output of truss compare to ktrace?

Dec 9 2020, 12:10 AM
tmunro updated the diff for D27518: truss(1): add AIO syscalls.

Added aio_mlock(2).

Dec 9 2020, 12:06 AM

Dec 8 2020

tmunro requested review of D27518: truss(1): add AIO syscalls.
Dec 8 2020, 11:47 PM

Nov 25 2020

tmunro accepted D27353: ffs: do not read full direct blocks if they are going to be overwritten..

Tested, LGTM.

Nov 25 2020, 9:46 PM

Nov 24 2020

tmunro added a comment to D27353: ffs: do not read full direct blocks if they are going to be overwritten..

Hmm. My filesystem has 32kb blocks, and this generates reads, according to dwatch -X io:

Nov 24 2020, 11:29 PM

Nov 8 2020

tmunro closed D17166: Add a way to get version information from querylocale(3)..
Nov 8 2020, 2:50 AM
tmunro committed rS367476: Add collation version support to querylocale(3)..
Add collation version support to querylocale(3).
Nov 8 2020, 2:50 AM

Jul 12 2020

tmunro committed rS363126: MFC r340655.
MFC r340655
Jul 12 2020, 10:07 AM
tmunro committed rS363124: MFC r344656.
MFC r344656
Jul 12 2020, 9:50 AM

Jun 23 2020

tmunro requested review of D25160: ufs: add O_DSYNC support.
Jun 23 2020, 3:26 AM

Jun 21 2020

tmunro closed D25024: VFS: Track sequential reads and writes separately.
Jun 21 2020, 8:51 AM
tmunro committed rS362460: vfs: track sequential reads and writes separately.
vfs: track sequential reads and writes separately
Jun 21 2020, 8:51 AM

Jun 17 2020

tmunro added a comment to D25024: VFS: Track sequential reads and writes separately.
In D25024#551329, @kib wrote:

I think that currently f_nextoff is often redundant, and this can be used to avoid further extending the size of the struct. Most of the time, I believe, f_nextoff == f_offset. You can use this to consider both f_offset/f_nextoff as the pointers to two streams of accesses. More, it could serve a situation where you have e.g. two read streams, instead of current patch insistence of one stream being read and one write.

Jun 17 2020, 2:59 AM

Jun 2 2020

tmunro added inline comments to D25071: aio_fsync(O_DSYNC).
Jun 2 2020, 1:15 PM
tmunro updated the diff for D25071: aio_fsync(O_DSYNC).
Jun 2 2020, 1:12 PM
tmunro updated the diff for D25090: Add O_DSYNC support to open(2) and fcntl(2)..
Jun 2 2020, 10:48 AM

Jun 1 2020

tmunro added a comment to D25071: aio_fsync(O_DSYNC).
In D25071#552096, @kib wrote:

I believe that my main objection against defining O_DSYNC as O_SYNC was that it de-facto provides some intentionally wrong ABI. Defining O_DSYNC as you did, and converting it to IO_DSYNC or better IO_DATASYNC is fine even if no filesystem handle the flag differently from IO_SYNC ATM.

Jun 1 2020, 1:12 PM
tmunro added a comment to D25071: aio_fsync(O_DSYNC).

Thanks for the feedback!

Jun 1 2020, 12:51 PM
tmunro added inline comments to D25071: aio_fsync(O_DSYNC).
Jun 1 2020, 12:50 PM
tmunro updated the diff for D25071: aio_fsync(O_DSYNC).

Handled feedback from asomers@: added a test, added a missing check in aio_queue_file(), used -U999999 for more context. I also created a separate review ticket D25090 to add O_DSYNC for open(2) and fcntl(2). The present patch is rebased on top of that one.

Jun 1 2020, 12:48 PM
tmunro added inline comments to D25072: UFS: write inode block for fdatasync(2) if pointers in inode where allocated.
Jun 1 2020, 11:36 AM
tmunro added a comment to D25090: Add O_DSYNC support to open(2) and fcntl(2)..

Thanks! Fixed.

Jun 1 2020, 11:17 AM
tmunro updated the diff for D25090: Add O_DSYNC support to open(2) and fcntl(2)..
Jun 1 2020, 11:17 AM
tmunro updated the summary of D25090: Add O_DSYNC support to open(2) and fcntl(2)..
Jun 1 2020, 3:48 AM
tmunro updated the summary of D25090: Add O_DSYNC support to open(2) and fcntl(2)..
Jun 1 2020, 3:45 AM
tmunro requested review of D25090: Add O_DSYNC support to open(2) and fcntl(2)..
Jun 1 2020, 3:40 AM

May 30 2020

tmunro added a comment to D25072: UFS: write inode block for fdatasync(2) if pointers in inode where allocated.

This seems correct at a high level. It's required to read the data back. (For what it's worth, failure to distinguish between data integrity meta-data relating to file extension and frippery like mtime seems to have been a problem on other popular OSs' fdatasync(2) implementations in the past, which I think is what leads Postgres to trust fdatasync(2) only when it knows there has been a full fsync(2) since the last file size change. It would be cool to be able to save on some I/Os be being less paranoid.)

May 30 2020, 11:09 PM
tmunro requested review of D25071: aio_fsync(O_DSYNC).
May 30 2020, 2:56 PM

May 27 2020

tmunro updated the diff for D25024: VFS: Track sequential reads and writes separately.
May 27 2020, 10:32 PM
tmunro added a reviewer for D25024: VFS: Track sequential reads and writes separately: mjg.
May 27 2020, 10:35 AM
tmunro requested review of D25024: VFS: Track sequential reads and writes separately.
May 27 2020, 10:34 AM

Dec 13 2019

tmunro abandoned D17581: Convert tests of panicstr to KERNEL_PANICKED()..

Discussed with Mateusz, he would prefer to write a Coccinelle script to automate this change, so I am abandoning this patch.

Dec 13 2019, 10:37 AM

Oct 4 2019

tmunro updated the summary of D17166: Add a way to get version information from querylocale(3)..
Oct 4 2019, 1:59 AM

Aug 19 2019

tmunro committed rP509250: misc/zoneinfo: install zone1970.tab and other fixes.
misc/zoneinfo: install zone1970.tab and other fixes
Aug 19 2019, 3:09 AM
tmunro closed D20981: misc/zoneinfo: install zone1970.tab and other fixes.
Aug 19 2019, 3:09 AM
tmunro added a comment to D20981: misc/zoneinfo: install zone1970.tab and other fixes.

Thanks for the reminder. I will commit this later today.

Aug 19 2019, 1:27 AM

Aug 2 2019

D21123: Teach ps(1) to select processes by parent process ID. now requires review to proceed.

Ok, based on feedback here and elsewhere, here's a version that uses getopt_long() from libc. It supports both --ppid (like Linux ps) and -P (like pgrep), and it seemed reasonable to add obvious long opts for --pid, --tty and --jail too. I decided not to try to add Linux-like --user, --User, --group, --Group in this patch (-u, -U, -g, -G all look a bit unportable and complicated). Thoughts?

Aug 2 2019, 11:35 AM

Jul 30 2019

tmunro created D21123: Teach ps(1) to select processes by parent process ID..
Jul 30 2019, 11:49 PM