Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/cddl/osnet/dist/uts/common/fs/zfs use pool_cache fo...



details:   https://anonhg.NetBSD.org/src/rev/e1a9245c7ea7
branches:  trunk
changeset: 1011127:e1a9245c7ea7
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Fri Jun 19 14:13:23 2020 +0000

description:
use pool_cache for (meta)data buffers also on NetBSD

this should generally slightly improve performance on MP systems, and
specifically for xbd(4) storage avoids slow unaligned I/O buffer handling

this change requires updated kernel, to allow up to SPA_MAXBLOCKSHIFT item
size for pools

fixes PR kern/55397 by Frank Kardel

diffstat:

 external/cddl/osnet/dist/uts/common/fs/zfs/zio.c |  6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diffs (44 lines):

diff -r b5ab1c9a56a5 -r e1a9245c7ea7 external/cddl/osnet/dist/uts/common/fs/zfs/zio.c
--- a/external/cddl/osnet/dist/uts/common/fs/zfs/zio.c  Fri Jun 19 13:52:40 2020 +0000
+++ b/external/cddl/osnet/dist/uts/common/fs/zfs/zio.c  Fri Jun 19 14:13:23 2020 +0000
@@ -46,7 +46,7 @@
 SYSCTL_DECL(_vfs_zfs);
 SYSCTL_NODE(_vfs_zfs, OID_AUTO, zio, CTLFLAG_RW, 0, "ZFS ZIO");
 #ifdef __NetBSD__
-const int zio_use_uma = 0;
+const int zio_use_uma = 1;
 #else
 #if defined(__amd64__)
 static int zio_use_uma = 1;
@@ -156,7 +156,6 @@
        zio_link_cache = kmem_cache_create("zio_link_cache",
            sizeof (zio_link_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
 
-#ifndef __NetBSD__
        if (!zio_use_uma)
                goto out;
 
@@ -220,7 +219,6 @@
                        zio_data_buf_cache[c - 1] = zio_data_buf_cache[c];
        }
 out:
-#endif /* __NetBSD__ */
 
        zio_inject_init();
 
@@ -242,7 +240,6 @@
        kmem_cache_t *last_cache = NULL;
        kmem_cache_t *last_data_cache = NULL;
 
-#ifndef __NetBSD__     
        for (c = 0; c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT; c++) {
                if (zio_buf_cache[c] != last_cache) {
                        last_cache = zio_buf_cache[c];
@@ -256,7 +253,6 @@
                }
                zio_data_buf_cache[c] = NULL;
        }
-#endif /* __NetBSD__ */
 
        kmem_cache_destroy(zio_link_cache);
        kmem_cache_destroy(zio_cache);



Home | Main Index | Thread Index | Old Index