Page MenuHomeFreeBSD

mckusick (Marshall Kirk McKusick)
User

Projects

User Details

User Since
Oct 24 2014, 7:17 PM (292 w, 4 d)

Recent Activity

Tue, May 19

mckusick accepted D24088: handle disk I/O errors in FFS with softdep enabled..

Finally, this looks good to go.

Tue, May 19, 5:41 AM

Fri, May 15

mckusick accepted D24596: vfs: add restrictions to read(2) of a directory.

I believe that this change is correct as it stands.

Fri, May 15, 10:42 PM
mckusick added a comment to D24088: handle disk I/O errors in FFS with softdep enabled..

Peter,
Can you run one more test run over this code just to be sure that it patches cleanly and that none of our final changes broke anything?

Fri, May 15, 8:16 PM

Wed, May 13

mckusick accepted D24596: vfs: add restrictions to read(2) of a directory.

This looks good to me. I am fine with not supporting the old behavior.

Wed, May 13, 10:17 PM

Sat, May 9

mckusick committed rS360835: MFC of 356666.
MFC of 356666
Sat, May 9, 5:04 AM

May 3 2020

mckusick added a comment to D24652: Non-transparent superpages support..

This rather long block is a summary of the discussion that Kostik
and I had in email. Dropping it in here so that it is part of the
public record. Regular font are my comments; italics font are
Kostik's response to my comments.

May 3 2020, 6:11 AM
mckusick added a comment to D24596: vfs: add restrictions to read(2) of a directory.

As imp has noted, we have had readdir(3) and the getdirents(2) for nearly 40 years and many filesystems do not support directly reading directories. While I personally still use od(1) to inspect UFS directories, that is a pretty lame reason for keeping the functionality. And returning EISDIR will make us more compatible with Linux and remain in compliance with POSIX. So, all told I am in favor of this change. Adding a sysctl to revert to the old behavior seems reasonable so long as it defaults to the new (EISDIR) behavior.

May 3 2020, 12:28 AM

Apr 20 2020

mckusick accepted D24484: Retire two unused background fsck sysctls..

I concur with this change.
It should be MFC'ed to stable/12 and stable/11.

Apr 20 2020, 8:00 PM

Apr 15 2020

mckusick committed rS359946: MFC of 359627.
MFC of 359627
Apr 15 2020, 12:18 AM

Apr 10 2020

mckusick committed rS359790: Inode check-hash errors were being reported after system crashes..
Inode check-hash errors were being reported after system crashes.
Apr 10 2020, 11:58 PM
mckusick committed rS359789: Add an inode check-hash verification when running the journalled.
Add an inode check-hash verification when running the journalled
Apr 10 2020, 11:49 PM

Apr 9 2020

mckusick committed rS359760: Fixing the soft update macros in -r359612 triggered a previously.
Fixing the soft update macros in -r359612 triggered a previously
Apr 9 2020, 11:51 PM
mckusick committed rS359759: When running with a kernel compiled with DEBUG_LOCKS, before.
When running with a kernel compiled with DEBUG_LOCKS, before
Apr 9 2020, 11:42 PM
mckusick committed rS359738: Revert MFC of 359612 due to reported problems..
Revert MFC of 359612 due to reported problems.
Apr 9 2020, 6:36 AM
mckusick committed rS359737: Revert MFC of 359612 due to reported problems..
Revert MFC of 359612 due to reported problems.
Apr 9 2020, 6:33 AM

Apr 6 2020

mckusick committed rS359670: MFC of 359612.
MFC of 359612
Apr 6 2020, 10:15 PM
mckusick committed rS359669: MFC of 359612.
MFC of 359612
Apr 6 2020, 10:12 PM
mckusick committed rS359668: Revert -r359612 as it can cause other panics..
Revert -r359612 as it can cause other panics.
Apr 6 2020, 8:23 PM

Apr 4 2020

mckusick committed rS359627: Clean up global variable declarations in the dump and restore.
Clean up global variable declarations in the dump and restore
Apr 4 2020, 12:57 AM
mckusick closed D24210: dump/restore: define variables in exactly one compilation unit.
Apr 4 2020, 12:57 AM

Apr 3 2020

mckusick abandoned D24209: dumprestore: extern the instance of union u_spcl.

Changes moved to D24210.

Apr 3 2020, 11:51 PM
mckusick commandeered D24209: dumprestore: extern the instance of union u_spcl.

These changes will be done as part of D24210 so that all the updates to make the dump and restore utilities compile with -fno-common are in one place.

Apr 3 2020, 11:50 PM
mckusick updated the diff for D24210: dump/restore: define variables in exactly one compilation unit.

Rather than using EXTERN, place each global declaration into the file in which it is primarily used.

Apr 3 2020, 11:48 PM
mckusick commandeered D24210: dump/restore: define variables in exactly one compilation unit.

Taking over with Kyle Evans blessing.

Apr 3 2020, 10:20 PM
mckusick committed rS359613: When shrinking the size of a directory it is sometimes necessary to.
When shrinking the size of a directory it is sometimes necessary to
Apr 3 2020, 8:44 PM
mckusick committed rS359612: Convert DOINGSOFTDEP, MOUNTEDSOFTDEP, DOINGSUJ, and MOUNTEDSUJ to being.
Convert DOINGSOFTDEP, MOUNTEDSOFTDEP, DOINGSUJ, and MOUNTEDSUJ to being
Apr 3 2020, 8:31 PM

Mar 31 2020

mckusick accepted D24209: dumprestore: extern the instance of union u_spcl.

Now looks good.

Mar 31 2020, 9:32 PM
mckusick added a comment to D24210: dump/restore: define variables in exactly one compilation unit.

Rather than doing EXTERN, move the explicit declarations into file as this:
mapsize - main.c
usedinomap - main.c
dumpdirmap - main.c
dumpinomap - main.c
disk - main.c
tape - main.c
popenout - main.c
dumpdates - itime.c
temp - unused, remove from dump.h, main.c, and definition of _PATH_DTMP from pathnames.h
lastlevel - itime.c
level - main.c
uflag - main.c
diskfd - main.c
tapefd - tape.c
pipeout - main.c
curino - tape.c
newtape - tape.c
density - already declared in main.c
tapesize - main.c
tsize - main.c
asize - tape.c
etapes - main.c
nonodump - main.c
unlimited - main.c
cachesize - already declared in main.c
rsync_friendly - main.c
notify - already declared in main.c
blockswritten - already declared in main.c
tapeno - already declared in main.c
tstart_writing - main.c
tend_writing - main.c
passno - main.c
sblock - main.c
dev_bsize - already declared in main.c
dev_bshift - main.c
tp_bshift - main.c
dumpdates - leave in itime.c
nddates - leave in itime.c
If you would like me to take over this project, I am willing to do so.

Mar 31 2020, 9:31 PM

Mar 30 2020

mckusick accepted D24210: dump/restore: define variables in exactly one compilation unit.

I prefer just using extern and then declaring the actual variables in the function in which they are most prominent, but using EXTERN as you have done does work fine.

Mar 30 2020, 10:42 PM
mckusick requested changes to D24209: dumprestore: extern the instance of union u_spcl.

While u_spcl is used only in dump/tape.c, it is used in four different files in restore and is not meant to be a separate instance in each one. So, you will have to make it an extern in the header file and then declare it in dump/tape.c and restore/dump.c. I prefer that you do it that way as opposed to the much uglier EXTERN approach.

Mar 30 2020, 10:40 PM
mckusick accepted D24168: Document EINTEGRITY errors for many system calls..

This looks complete. I had missed the VOP_* manual pages, good catch.
I am happy to have you clean up the duplicate EIOs.
Thanks for doing this.

Mar 30 2020, 12:29 AM

Mar 24 2020

mckusick requested changes to D24168: Document EINTEGRITY errors for many system calls..

While read(2) and write(2) are the most likely system calls to return EINTEGRITY, really any system call that accesses a filesystem can potentially return EINTEGRITY. Using the metric that if it can return EIO, then it can now return EINTEGRITY leads to this list of system calls needing EINTEGRITY added: access.2, acct.2, bind.2, chdir.2, chflags.2, chmod.2, chown.2, chroot.2, copy_file_range.2, execve.2, fhlink.2, fhreadlink.2, fsync.2, getdirentries.2, getfh.2, getfsstat.2, intro.2, ktrace.2, link.2, lio_listio.2, mkdir.2, mkfifo.2, mknod.2, mount.2, msync.2, open.2, pathconf.2, posix_fallocate.2, quotactl.2, readlink.2, rename.2, rmdir.2, sendfile.2, stat.2, statfs.2, swapon.2, symlink.2, truncate.2, undelete.2, unlink.2, utimensat.2, and utimes.2.

Mar 24 2020, 12:19 AM

Mar 20 2020

mckusick accepted D24131: Use the newer EINTEGRITY error when authentication fails..

This is a good example of a place that where EINTEGRITY is intended to be used.
At the moment mount(2) is the only system call that lists EINTEGRITY as a possible error. If your change is going to cause EINTEGRITY to be returned to other system calls (like read(2) or wirite(2)) then you should add it to their list of possible error returns.

Mar 20 2020, 11:18 PM

Mar 17 2020

mckusick accepted D24087: Add fsck_flags config option.

Looks good to me.

Mar 17 2020, 11:33 PM
mckusick requested changes to D24087: Add fsck_flags config option.

With the above suggested changes, I agree with this proposal.

Mar 17 2020, 4:45 AM

Mar 11 2020

mckusick committed rS358899: When mounting a UFS filesystem, return EINTEGRITY rather than EIO.
When mounting a UFS filesystem, return EINTEGRITY rather than EIO
Mar 11 2020, 9:00 PM

Feb 27 2020

mckusick accepted D23787: add "mntfs" private vnodes for file systems to access their storage safely.

I am happy with this revision.

Feb 27 2020, 6:07 AM

Feb 18 2020

mckusick committed rS358085: Additional KASSERTs to ensure the consistency of the soft updates.
Additional KASSERTs to ensure the consistency of the soft updates
Feb 18 2020, 11:56 PM

Jan 28 2020

mckusick added a comment to D23239: [uma-multipage 3/3] uma: grow slabs to enforce minimum memory efficiency.

The logic is easier for me to follow.

Jan 28 2020, 7:38 PM

Jan 23 2020

mckusick committed rS357034: MFC of 356714.
MFC of 356714
Jan 23 2020, 6:24 AM
mckusick committed rS357033: MFC of 356714.
MFC of 356714
Jan 23 2020, 6:21 AM
mckusick committed rS357032: MFC of 356763.
MFC of 356763
Jan 23 2020, 6:18 AM
mckusick committed rS357031: MFC of 356763.
MFC of 356763
Jan 23 2020, 6:11 AM
mckusick committed rS357030: MFC of 356739.
MFC of 356739
Jan 23 2020, 6:06 AM
mckusick committed rS357029: MFC of 356739.
MFC of 356739
Jan 23 2020, 6:03 AM

Jan 22 2020

mckusick committed rS356965: MFC of 356627.
MFC of 356627
Jan 22 2020, 1:31 AM
mckusick committed rS356964: MFC of 356627.
MFC of 356627
Jan 22 2020, 1:29 AM

Jan 20 2020

mckusick added a comment to D23239: [uma-multipage 3/3] uma: grow slabs to enforce minimum memory efficiency.

I am really happy to see these changes as it will be especially helpful for vnodes that waste many Megabytes of space.
I concur with Jeff that the new code is difficult to follow, though do not have any suggestions on how to simplify it.

Jan 20 2020, 3:06 AM

Jan 17 2020

mckusick added a comment to D22973: Map ECKSUM and EFRAGS from ZFS onto real errnos.

After consulting with kib@ I have concluded that it is acceptable to MFC -r343111 to stable/12. You should MFC your change separately (i.e., in a second checkin).

Jan 17 2020, 9:41 PM

Jan 15 2020

mckusick committed rS356763: Peter Holm reports that his test that does an umount(8) on an active.
Peter Holm reports that his test that does an umount(8) on an active
Jan 15 2020, 6:53 PM

Jan 14 2020

mckusick committed rS356739: When sync'ing a mount point, the mount point's vnodes were scanned.
When sync'ing a mount point, the mount point's vnodes were scanned
Jan 14 2020, 10:28 PM

Jan 13 2020

mckusick accepted D23067: vfs: reimplement vlrureclaim to actually use LRU.

This change seems like an improvement over what we have now.

Jan 13 2020, 5:04 AM
mckusick accepted D23117: Use buf to send speedup.

I have never been a fan of short-circuiting the layers, so am fine with keeping them intact.

Jan 13 2020, 4:47 AM
mckusick accepted D22973: Map ECKSUM and EFRAGS from ZFS onto real errnos.

Looks good to go.

Jan 13 2020, 12:52 AM

Jan 11 2020

mckusick committed rS356627: When a read error occurs while fetching a directory block to delete.
When a read error occurs while fetching a directory block to delete
Jan 11 2020, 3:19 AM

Jan 10 2020

mckusick accepted D23050: Use humanize_number to format available and bad space sizes..

OK, looks good to go.

Jan 10 2020, 12:37 AM
mckusick added a comment to D22973: Map ECKSUM and EFRAGS from ZFS onto real errnos.

I agree with mac@ that it looks like EFRAGS is only in an unused code path. But it does not hurt to map it to a FreeBSD error in the event that the code path gets brought back to life.

Jan 10 2020, 12:35 AM

Jan 7 2020

mckusick added a comment to D22996: 5/7 ufs: use lazy list instead of active list for syncer.

I noted I don't know what guaratees are needed for quota files, thus I for safety I regressed the quota-induced scan to go over all vnodes in the mount point. Getting rid of the extra loop is a laudable goal of course, but I don't know how it should look like on a kernel with my patch. If the current places which put the vnode on the dirty list are sufficient that's great, but chances are excellent quota code needs extra calls

Jan 7 2020, 5:44 PM
mckusick added a comment to D23050: Use humanize_number to format available and bad space sizes..

My confusion is what "clusters" represent. Apparently a cluster is a 32KB block. Based on your clarification, I now agree with your calculation and printing of free space, but suggest that you clarify that clusters are 32KB blocks (either by replacing the word "clusters" with "32KB blocks", or if clusters is meaningful to administrators change it to "32KB clusters").

Jan 7 2020, 5:29 PM
mckusick added a comment to D22995: 4/7 vfs: add per-mount vnode lazy list and use it for deferred inactive + msync.

Overall I like these changes. I have one specific comment here and also a suggested change to qsync/qsyncvp to mitigate the increased cost of qsync().

Jan 7 2020, 12:27 AM
mckusick added a comment to D22994: 3/7 ufs: add a setter for inode i_flag field.

What is the reason for adding this macro to set i_flags?

Jan 7 2020, 12:18 AM
mckusick added a comment to D22996: 5/7 ufs: use lazy list instead of active list for syncer.

The heavy use of qsync() is in ffs_sync_lazy() and ffs_sync(). These should be using qsyncvp() in their loops rather than separately calling qsync() as show in my attached diff.


This change is independent of your changes, so I should just check it in as a separate change.

Jan 7 2020, 12:15 AM

Jan 6 2020

mckusick requested changes to D23050: Use humanize_number to format available and bad space sizes..

The current output is number of free blocks and number of bad blocks. You are changing it to number of free bytes and number of bad bytes.
Since fsck for all other filesystems reports blocks this is a non-standard semantic change, so I recommend that you restore the / 1024 to output block counts.
If you think that it is useful to have byte counts then should make it clear you are reporting bytes and not blocks (e.g., %sB free bytes).

Jan 6 2020, 10:23 PM
mckusick added a comment to D23049: fsck_msdosfs.8: document -M.

Might we remove it in the future? I.e., should we add a note that users should not rely on it remaining?

Jan 6 2020, 9:46 PM
mckusick accepted D23049: fsck_msdosfs.8: document -M.

This looks good.

Jan 6 2020, 9:45 PM
mckusick committed rS356428: MFC of 356063.
MFC of 356063
Jan 6 2020, 9:23 PM
mckusick committed rS356427: MFC of 356063.
MFC of 356063
Jan 6 2020, 9:14 PM
mckusick requested changes to D22973: Map ECKSUM and EFRAGS from ZFS onto real errnos.

Adding a new error number requires changes to a lot more files than just lib/libc/gen/errlst.c. See for example -r343111 when I added EINTEGRITY which touched 16 different files in the system. And that is just to add the base error. It then has to be added to every system call manual page for which it can be returned.

Jan 6 2020, 9:01 PM

Dec 25 2019

mckusick committed rS356067: MFC of 355995.
MFC of 355995
Dec 25 2019, 5:01 AM

Dec 24 2019

mckusick committed rS356063: When running fsck_ffs manually, do not ask:.
When running fsck_ffs manually, do not ask:
Dec 24 2019, 11:03 PM

Dec 22 2019

mckusick committed rS355995: Fix typo in hastd.8 manual page..
Fix typo in hastd.8 manual page.
Dec 22 2019, 1:23 AM

Dec 13 2019

mckusick added a comment to D18351: Add BIO_SPEEDUP.

A couple of minor nits noted inline.

Dec 13 2019, 1:18 AM

Dec 3 2019

mckusick committed rS355371: Currently the breadn_flags() and getblkx() interfaces are passed.
Currently the breadn_flags() and getblkx() interfaces are passed
Dec 3 2019, 11:07 PM

Nov 20 2019

mckusick committed rS354873: White space cleanup. No functional change..
White space cleanup. No functional change.
Nov 20 2019, 1:14 AM
mckusick committed rS354872: Add some KASSERTs. Reacquire a mutex after a kernel printf rather.
Add some KASSERTs. Reacquire a mutex after a kernel printf rather
Nov 20 2019, 1:10 AM

Oct 27 2019

mckusick committed rS354125: MFC of 354050.
MFC of 354050
Oct 27 2019, 4:11 AM
mckusick committed rS354124: MFC of 354050.
MFC of 354050
Oct 27 2019, 4:09 AM
mckusick committed rS354123: MFC of 353903.
MFC of 353903
Oct 27 2019, 3:47 AM
mckusick committed rS354122: MFC of 353903.
MFC of 353903
Oct 27 2019, 3:46 AM

Oct 24 2019

mckusick committed rS354050: After the unlink() of one name of a file with multiple links, a.
After the unlink() of one name of a file with multiple links, a
Oct 24 2019, 9:28 PM
mckusick committed rS354036: Soft updates needs to keep an on-disk linked list of inodes that.
Soft updates needs to keep an on-disk linked list of inodes that
Oct 24 2019, 7:47 PM

Oct 22 2019

mckusick committed rS353903: Replace an uninitialized variable with the correct element from the.
Replace an uninitialized variable with the correct element from the
Oct 22 2019, 10:24 PM

Oct 17 2019

mckusick accepted D22042: Abbreviate softdep lock names..

This request is entirely reasonable.

Oct 17 2019, 11:31 PM

Oct 11 2019

mckusick accepted D21897: mountroot: Run statfs after mounting devfs.

I concur that VFS_STATFS should be done here.

Oct 11 2019, 4:30 AM

Oct 4 2019

mckusick committed rS353099: Update ffs_getcg() function to accept a flags parameter to be passed.
Update ffs_getcg() function to accept a flags parameter to be passed
Oct 4 2019, 5:28 AM

Oct 1 2019

mckusick committed rS352947: MFC of 352453.
MFC of 352453
Oct 1 2019, 11:28 PM
mckusick committed rS352946: MFC of 352453.
MFC of 352453
Oct 1 2019, 11:27 PM

Sep 17 2019

mckusick committed rS352453: The VFS-level clustering code collects together sequential blocks.
The VFS-level clustering code collects together sequential blocks
Sep 17 2019, 5:45 PM

Sep 12 2019

mckusick accepted D21593: Add an option to gnop to allow rejecting I/O after allowing some through..

With the minor changes requested, looks good to me.

Sep 12 2019, 9:57 PM

Sep 9 2019

mckusick added a comment to D21560: Collection of fixes for exec/v_writecount handling..

What scenario would ever have v_writecount be less than zero?

Sep 9 2019, 4:12 AM

Aug 28 2019

D21412: Rework v_object lifecycle for vnodes. is now accepted and ready to land.

Removing the function is right approach. All looks good.

Aug 28 2019, 8:00 PM

Aug 27 2019

mckusick added inline comments to D21412: Rework v_object lifecycle for vnodes..
Aug 27 2019, 6:49 PM
mckusick added a comment to D21412: Rework v_object lifecycle for vnodes..

My inline comment seems to have been lost. I requested that ufs_prepare_reclaim() be made static.

Aug 27 2019, 6:47 PM
D21412: Rework v_object lifecycle for vnodes. now requires changes to proceed.

This change looks good to me modulo minor inline comment.

Aug 27 2019, 6:45 PM

Aug 17 2019

mckusick committed rS351164: MFC of 351002.
MFC of 351002
Aug 17 2019, 6:07 AM

Aug 15 2019

mckusick committed rS351098: Add missing comma in calendar.freebsd.
Add missing comma in calendar.freebsd
Aug 15 2019, 6:46 PM

Aug 14 2019

mckusick added a comment to D2844: Bail out of corrupt directory entries during boot.

Any progress on getting this done?

Aug 14 2019, 6:05 AM

Aug 13 2019

mckusick committed rS351002: Clarify comment that describes how the FS_METACKHASH is managed..
Clarify comment that describes how the FS_METACKHASH is managed.
Aug 13 2019, 8:56 PM

Aug 10 2019

mckusick committed rS350852: MFC of 350682.
MFC of 350682
Aug 10 2019, 11:08 PM
mckusick committed rS350851: MFC of 350682.
MFC of 350682
Aug 10 2019, 11:07 PM