Module Name: src Committed By: jakllsch Date: Sat Oct 19 14:13:44 UTC 2024
Modified Files: src/sys/ufs/ext2fs: ext2fs_readwrite.c src/sys/ufs/ufs: ufs_readwrite.c Log Message: ufs: base amount of data to sync on MAXPHYS instead of constant No functional change except on sun2 and sun3, as ilog2(MAXPHYS) is the same as the previous constant (16) on all other ports. On sun[23] this changes amount written from 56KiB/8KiB to 2x 32KiB. To generate a diff of this commit: cvs rdiff -u -r1.78 -r1.79 src/sys/ufs/ext2fs/ext2fs_readwrite.c cvs rdiff -u -r1.128 -r1.129 src/sys/ufs/ufs/ufs_readwrite.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/ufs/ext2fs/ext2fs_readwrite.c diff -u src/sys/ufs/ext2fs/ext2fs_readwrite.c:1.78 src/sys/ufs/ext2fs/ext2fs_readwrite.c:1.79 --- src/sys/ufs/ext2fs/ext2fs_readwrite.c:1.78 Wed Oct 20 03:08:19 2021 +++ src/sys/ufs/ext2fs/ext2fs_readwrite.c Sat Oct 19 14:13:44 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_readwrite.c,v 1.78 2021/10/20 03:08:19 thorpej Exp $ */ +/* $NetBSD: ext2fs_readwrite.c,v 1.79 2024/10/19 14:13:44 jakllsch Exp $ */ /*- * Copyright (c) 1993 @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ext2fs_readwrite.c,v 1.78 2021/10/20 03:08:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_readwrite.c,v 1.79 2024/10/19 14:13:44 jakllsch Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -74,6 +74,7 @@ __KERNEL_RCSID(0, "$NetBSD: ext2fs_readw #include <sys/vnode.h> #include <sys/signalvar.h> #include <sys/kauth.h> +#include <sys/bitops.h> #include <ufs/ufs/inode.h> #include <ufs/ufs/ufsmount.h> @@ -272,6 +273,7 @@ ext2fs_write(void *v) off_t oldoff = 0; /* XXX */ bool async; int advice; + const unsigned int fshift = ilog2(MAXPHYS); ioflag = ap->a_ioflag; advice = IO_ADV_DECODE(ioflag); @@ -333,10 +335,10 @@ ext2fs_write(void *v) * XXXUBC simplistic async flushing. */ - if (!async && oldoff >> 16 != uio->uio_offset >> 16) { + if (!async && oldoff >> fshift != uio->uio_offset >> fshift) { rw_enter(vp->v_uobj.vmobjlock, RW_WRITER); - error = VOP_PUTPAGES(vp, (oldoff >> 16) << 16, - (uio->uio_offset >> 16) << 16, + error = VOP_PUTPAGES(vp, (oldoff >> fshift) << fshift, + (uio->uio_offset >> fshift) << fshift, PGO_CLEANIT | PGO_LAZY); } } Index: src/sys/ufs/ufs/ufs_readwrite.c diff -u src/sys/ufs/ufs/ufs_readwrite.c:1.128 src/sys/ufs/ufs/ufs_readwrite.c:1.129 --- src/sys/ufs/ufs/ufs_readwrite.c:1.128 Mon Feb 21 17:07:45 2022 +++ src/sys/ufs/ufs/ufs_readwrite.c Sat Oct 19 14:13:44 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_readwrite.c,v 1.128 2022/02/21 17:07:45 hannken Exp $ */ +/* $NetBSD: ufs_readwrite.c,v 1.129 2024/10/19 14:13:44 jakllsch Exp $ */ /*- * Copyright (c) 1993 @@ -32,7 +32,9 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.128 2022/02/21 17:07:45 hannken Exp $"); +__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.129 2024/10/19 14:13:44 jakllsch Exp $"); + +#include <sys/bitops.h> #define FS struct fs #define I_FS i_fs @@ -248,6 +250,7 @@ WRITE(void *v) vsize_t bytelen; bool async; struct ufsmount *ump; + const unsigned int fshift = ilog2(MAXPHYS); cred = ap->a_cred; ioflag = ap->a_ioflag; @@ -428,10 +431,10 @@ WRITE(void *v) * XXXUBC simplistic async flushing. */ - if (!async && oldoff >> 16 != uio->uio_offset >> 16) { + if (!async && oldoff >> fshift != uio->uio_offset >> fshift) { rw_enter(vp->v_uobj.vmobjlock, RW_WRITER); - error = VOP_PUTPAGES(vp, (oldoff >> 16) << 16, - (uio->uio_offset >> 16) << 16, + error = VOP_PUTPAGES(vp, (oldoff >> fshift) << fshift, + (uio->uio_offset >> fshift) << fshift, PGO_CLEANIT | PGO_JOURNALLOCKED | PGO_LAZY); if (error) break;