User Details
- User Since
- Oct 16 2018, 11:01 AM (318 w, 2 d)
Sep 4 2024
Feb 21 2023
Nov 5 2022
Oct 28 2022
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 24 2022
Aug 28 2022
Aug 27 2022
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?
Dec 5 2021
More context.
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.
Split into two, moved the rusage stuff to D33271.
Nov 28 2021
Sep 20 2021
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 11 2021
Right. Thanks!
Aug 22 2021
Aug 21 2021
Reuploaded patch with -U99999, no change.
Aug 20 2021
Apr 28 2021
Apr 26 2021
Apr 17 2021
Added a test to show that we don't report POLLRDHUP unless you asked for it.
Ok, now ignoring POLLINIGNEOF for this.
Apr 14 2021
This time with -U999999, and mentioning illumos as requested.
Jan 11 2021
Jan 9 2021
Jan 8 2021
Looks OK to me. I suppose we could also use bitmask style for LIO_SYNC and LIO_DATA_ONLY?
Jan 6 2021
Updated to address review feedback and fix oversights in man page.
Rebased. Previous confusion turned out to be explained by problems fixed by D27353 and problems in my test methodology.
Rebased (mostly: ZFS moved).
Dec 16 2020
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 10 2020
Dec 9 2020
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.
Added aio_mlock(2).
Dec 8 2020
Nov 25 2020
Tested, LGTM.
Nov 24 2020
Hmm. My filesystem has 32kb blocks, and this generates reads, according to dwatch -X io:
Nov 8 2020
Jul 12 2020
Jun 23 2020
Jun 21 2020
Jun 17 2020
Jun 2 2020
Jun 1 2020
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.
Thanks! Fixed.
May 30 2020
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 27 2020
Dec 13 2019
Discussed with Mateusz, he would prefer to write a Coccinelle script to automate this change, so I am abandoning this patch.
Oct 4 2019
Aug 19 2019
Thanks for the reminder. I will commit this later today.