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;

Reply via email to