CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Wed Oct 18 12:16:40 UTC 2023 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: misc.c Log Message: Apply patch, requested by riastradh in ticket #1752: external/cddl/osnet/sys/kern/misc.c (apply patch) Restore thread_create symbol for compatibility (after removal in pullup-9 #1711). To generate a diff of this commit: cvs rdiff -u -r1.5.4.2 -r1.5.4.3 src/external/cddl/osnet/sys/kern/misc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/misc.c diff -u src/external/cddl/osnet/sys/kern/misc.c:1.5.4.2 src/external/cddl/osnet/sys/kern/misc.c:1.5.4.3 --- src/external/cddl/osnet/sys/kern/misc.c:1.5.4.2 Wed Aug 9 17:25:00 2023 +++ src/external/cddl/osnet/sys/kern/misc.c Wed Oct 18 12:16:40 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: misc.c,v 1.5.4.2 2023/08/09 17:25:00 martin Exp $ */ +/* $NetBSD: misc.c,v 1.5.4.3 2023/10/18 12:16:40 martin Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -93,6 +93,18 @@ vn_is_readonly(vnode_t *vp) return (vp->v_mount->mnt_flag & MNT_RDONLY); } +#undef thread_create +kthread_t *thread_create(void *, size_t, void (*)(void *), void *, size_t, +proc_t *, int, pri_t); +kthread_t * +thread_create(void *stk, size_t stksize, void (*proc)(), void *arg, +size_t len, proc_t *pp, int state, pri_t pri) +{ + + return solaris__thread_create(stk, stksize, proc, arg, len, pp, state, + pri, "zfs"); +} + kthread_t * solaris__thread_create(void * stk, size_t stksize, void (*proc)(), void *arg, size_t len, proc_t *pp, int state, pri_t pri, const char *name)
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Wed Oct 18 12:16:40 UTC 2023 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: misc.c Log Message: Apply patch, requested by riastradh in ticket #1752: external/cddl/osnet/sys/kern/misc.c (apply patch) Restore thread_create symbol for compatibility (after removal in pullup-9 #1711). To generate a diff of this commit: cvs rdiff -u -r1.5.4.2 -r1.5.4.3 src/external/cddl/osnet/sys/kern/misc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Mon Oct 2 13:31:14 UTC 2023 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: kmem.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1735): external/cddl/osnet/sys/kern/kmem.c: revision 1.4 solaris: Use pool_cache_reclaim, not pool_cache_invalidate. pool_cache_invalidate invalidates cached objects, but doesn't return any backing pages to the underlying page allocator. pool_cache_reclaim does pool_cache_invalidate _and_ reutrns backing pages to the underlying page alloator, so it is actually useful for the page daemon to do when trying to free memory. PR kern/57558 To generate a diff of this commit: cvs rdiff -u -r1.2.2.1 -r1.2.2.2 src/external/cddl/osnet/sys/kern/kmem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Mon Oct 2 13:31:14 UTC 2023 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: kmem.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1735): external/cddl/osnet/sys/kern/kmem.c: revision 1.4 solaris: Use pool_cache_reclaim, not pool_cache_invalidate. pool_cache_invalidate invalidates cached objects, but doesn't return any backing pages to the underlying page allocator. pool_cache_reclaim does pool_cache_invalidate _and_ reutrns backing pages to the underlying page alloator, so it is actually useful for the page daemon to do when trying to free memory. PR kern/57558 To generate a diff of this commit: cvs rdiff -u -r1.2.2.1 -r1.2.2.2 src/external/cddl/osnet/sys/kern/kmem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/kmem.c diff -u src/external/cddl/osnet/sys/kern/kmem.c:1.2.2.1 src/external/cddl/osnet/sys/kern/kmem.c:1.2.2.2 --- src/external/cddl/osnet/sys/kern/kmem.c:1.2.2.1 Wed Aug 3 15:54:23 2022 +++ src/external/cddl/osnet/sys/kern/kmem.c Mon Oct 2 13:31:14 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kmem.c,v 1.2.2.1 2022/08/03 15:54:23 martin Exp $ */ +/* $NetBSD: kmem.c,v 1.2.2.2 2023/10/02 13:31:14 martin Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -123,7 +123,7 @@ void kmem_cache_reap_now(kmem_cache_t *km) { - pool_cache_invalidate(km->km_pool); + pool_cache_reclaim(km->km_pool); } #undef kmem_alloc
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Wed Aug 3 15:54:23 UTC 2022 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: kmem.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1494): external/cddl/osnet/sys/kern/kmem.c: revision 1.3 kmem_cache_create()'s "name" parameter can be on the stack, so make a copy of it rather than keeping a pointer to it. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.2.1 src/external/cddl/osnet/sys/kern/kmem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/kmem.c diff -u src/external/cddl/osnet/sys/kern/kmem.c:1.2 src/external/cddl/osnet/sys/kern/kmem.c:1.2.2.1 --- src/external/cddl/osnet/sys/kern/kmem.c:1.2 Thu May 23 08:32:30 2019 +++ src/external/cddl/osnet/sys/kern/kmem.c Wed Aug 3 15:54:23 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: kmem.c,v 1.2 2019/05/23 08:32:30 hannken Exp $ */ +/* $NetBSD: kmem.c,v 1.2.2.1 2022/08/03 15:54:23 martin Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -30,6 +30,7 @@ struct kmem_cache { pool_cache_t km_pool; + char km_name[32]; void *km_private; int (*km_constructor)(void *, void *, int); void (*km_destructor)(void *, void *); @@ -78,11 +79,12 @@ kmem_cache_create(char *name, size_t buf KASSERT(vmp == NULL); km = kmem_zalloc(sizeof(*km), KM_SLEEP); + strlcpy(km->km_name, name, sizeof(km->km_name)); km->km_private = private; km->km_constructor = constructor; km->km_destructor = destructor; km->km_reclaim = reclaim; - km->km_pool = pool_cache_init(bufsize, align, 0, 0, name, NULL, + km->km_pool = pool_cache_init(bufsize, align, 0, 0, km->km_name, NULL, IPL_NONE, solaris_constructor, solaris_destructor, km); if (km->km_pool == NULL) { kmem_free(km, sizeof(*km));
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Wed Aug 3 15:54:23 UTC 2022 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: kmem.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1494): external/cddl/osnet/sys/kern/kmem.c: revision 1.3 kmem_cache_create()'s "name" parameter can be on the stack, so make a copy of it rather than keeping a pointer to it. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.2.1 src/external/cddl/osnet/sys/kern/kmem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Tue Aug 20 11:45:35 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: taskq.c Log Message: Pull up following revision(s) (requested by hannken in ticket #102): external/cddl/osnet/sys/kern/taskq.c: revision 1.11 task_executor: prevent use after free, the task function may free the tasq entry. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.10.2.1 src/external/cddl/osnet/sys/kern/taskq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/external/cddl/osnet/sys/kern
Module Name:src Committed By: martin Date: Tue Aug 20 11:45:35 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern [netbsd-9]: taskq.c Log Message: Pull up following revision(s) (requested by hannken in ticket #102): external/cddl/osnet/sys/kern/taskq.c: revision 1.11 task_executor: prevent use after free, the task function may free the tasq entry. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.10.2.1 src/external/cddl/osnet/sys/kern/taskq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/taskq.c diff -u src/external/cddl/osnet/sys/kern/taskq.c:1.10 src/external/cddl/osnet/sys/kern/taskq.c:1.10.2.1 --- src/external/cddl/osnet/sys/kern/taskq.c:1.10 Tue Jun 11 09:05:33 2019 +++ src/external/cddl/osnet/sys/kern/taskq.c Tue Aug 20 11:45:35 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: taskq.c,v 1.10 2019/06/11 09:05:33 hannken Exp $ */ +/* $NetBSD: taskq.c,v 1.10.2.1 2019/08/20 11:45:35 martin Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -75,6 +75,7 @@ task_executor(struct threadpool_job *job struct taskq_executor *state = (struct taskq_executor *)job; taskq_t *tq = state->te_self; taskq_ent_t *tqe; + bool is_dynamic; int error; lwp_setspecific(taskq_lwp_key, tq); @@ -97,13 +98,14 @@ task_executor(struct threadpool_job *job tqe = SIMPLEQ_FIRST(>tq_list); KASSERT(tqe != NULL); SIMPLEQ_REMOVE_HEAD(>tq_list, tqent_list); + is_dynamic = tqe->tqent_dynamic; tqe->tqent_queued = 0; mutex_exit(>tq_lock); (*tqe->tqent_func)(tqe->tqent_arg); mutex_enter(>tq_lock); - if (tqe->tqent_dynamic) + if (is_dynamic) kmem_free(tqe, sizeof(*tqe)); tq->tq_active--; }