svn commit: r355784 - in head/sys: compat/linuxkpi/common/src dev/dpaa kern mips/nlm sys

2019-12-15 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 21:26:50 2019 New Revision: 355784 URL: https://svnweb.freebsd.org/changeset/base/355784 Log: schedlock 4/4 Don't hold the scheduler lock while doing context switches. Instead we unlock after selecting the new thread and switch within a spinlock section le

svn commit: r355782 - head/sys/kern

2019-12-15 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 21:19:41 2019 New Revision: 355782 URL: https://svnweb.freebsd.org/changeset/base/355782 Log: schedlock 3/4 Eliminate lock recursion from turnstiles. This was simply used to avoid tracking the top-level turnstile lock. explicitly check for it before picki

svn commit: r355781 - in head/sys: kern sys

2019-12-15 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 21:18:07 2019 New Revision: 355781 URL: https://svnweb.freebsd.org/changeset/base/355781 Log: schedlock 2/4 Do all sleepqueue post-processing in sleepq_remove_thread() so that we do not require the thread lock after a context switch. Reviewed by: jhb, k

svn commit: r355779 - in head/sys: cddl/compat/opensolaris/sys compat/linux compat/linuxkpi/common/src dev/ocs_fc kern mips/nlm sys vm

2019-12-15 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 21:11:15 2019 New Revision: 355779 URL: https://svnweb.freebsd.org/changeset/base/355779 Log: schedlock 1/4 Eliminate recursion from most thread_lock consumers. Return from sched_add() without the thread_lock held. This eliminates unnecessary atomics and

svn commit: r355771 - head/sys/kern

2019-12-14 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 06:26:47 2019 New Revision: 355771 URL: https://svnweb.freebsd.org/changeset/base/355771 Log: Fix a mistake in r355765. We need to activate the page if it is not yet on a pagequeue. Reported by: pho Modified: head/sys/kern/uipc_shm.c Modified: head/sys/

svn commit: r355766 - head/sys/vm

2019-12-14 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 04:08:24 2019 New Revision: 355766 URL: https://svnweb.freebsd.org/changeset/base/355766 Log: Previously we did not support invalid pages in default objects. This means that if fault fails to progress and needs to restart the loop it must free the page it is wo

svn commit: r355765 - in head/sys: dev/md fs/tmpfs kern vm

2019-12-14 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 03:15:06 2019 New Revision: 355765 URL: https://svnweb.freebsd.org/changeset/base/355765 Log: Add a deferred free mechanism for freeing swap space that does not require an exclusive object lock. Previously swap space was freed on a best effort basis when a pa

svn commit: r355764 - head/sys/vm

2019-12-14 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 02:02:27 2019 New Revision: 355764 URL: https://svnweb.freebsd.org/changeset/base/355764 Log: Slightly optimize locking in vm_map_copy_swap_entry(). Anonymous objects require the object lock to synchronize collapse. Other swap objects such as tmpfs do not.

svn commit: r355763 - in head/sys: kern vm

2019-12-14 Thread Jeff Roberson
Author: jeff Date: Sun Dec 15 02:00:32 2019 New Revision: 355763 URL: https://svnweb.freebsd.org/changeset/base/355763 Log: Handle pagein clustering in vm_page_grab_valid() so that it can be used by exec_map_first_page(). This will also enable pagein clustering for other interested consumer

svn commit: r355517 - head/sys/vm

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:55:23 2019 New Revision: 355517 URL: https://svnweb.freebsd.org/changeset/base/355517 Log: Fix two problems with r355149. The sysctl name collision code assumed that zones would never be freed. In the case of tmpfs this was not true. While here test for th

svn commit: r355516 - head/sys/vm

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:49:53 2019 New Revision: 355516 URL: https://svnweb.freebsd.org/changeset/base/355516 Log: It is safe to wire a page while the object is busy. Reviewed by: kib, markj Differential Revision:https://reviews.freebsd.org/D22636 Modified: head/sys/v

svn commit: r355515 - head/sys/vm

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:49:03 2019 New Revision: 355515 URL: https://svnweb.freebsd.org/changeset/base/355515 Log: It is now safe to rename a page that is still on a queue. Allowing this is necessary for a forthcoming patch. Reviewed by: kib, markj Differential Revision:

svn commit: r355514 - head/sys/vm

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:47:29 2019 New Revision: 355514 URL: https://svnweb.freebsd.org/changeset/base/355514 Log: Do not assert that the object lock is held in vm_object_set_writeable_dirty. A valid reference is all that is required. If we race with a deallocation we will harmless

svn commit: r355512 - in head/sys: kern sys

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:17:38 2019 New Revision: 355512 URL: https://svnweb.freebsd.org/changeset/base/355512 Log: Handle multiple clock interrupts simultaneously in sched_clock(). Reviewed by: kib, markj, mav Differential Revision:https://reviews.freebsd.org/D22625 Mod

svn commit: r355511 - head/sys/vm

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:16:22 2019 New Revision: 355511 URL: https://svnweb.freebsd.org/changeset/base/355511 Log: Reduce duplication in grab functions by providing allocflags based inlines. Reviewed by: kib, markj Differential Revision:https://reviews.freebsd.org/D22635

svn commit: r355510 - head/sys/vm

2019-12-07 Thread Jeff Roberson
Author: jeff Date: Sun Dec 8 01:15:06 2019 New Revision: 355510 URL: https://svnweb.freebsd.org/changeset/base/355510 Log: Use a variant slab structure for offpage zones. This saves space in embedded slabs but also is an opportunity to tidy up code and add accessor inlines. Reviewed b

svn commit: r355315 - in head/sys: kern sys vm

2019-12-02 Thread Jeff Roberson
Author: jeff Date: Mon Dec 2 22:44:34 2019 New Revision: 355315 URL: https://svnweb.freebsd.org/changeset/base/355315 Log: Use a precise bit count for the slab free items in UMA. This significantly shrinks embedded slab structures. Reviewed by: markj, rlibby (prior version) Different

svn commit: r355314 - in head/sys: amd64/sgx arm/nvidia/drm2 dev/md vm x86/iommu

2019-12-02 Thread Jeff Roberson
Author: jeff Date: Mon Dec 2 22:42:05 2019 New Revision: 355314 URL: https://svnweb.freebsd.org/changeset/base/355314 Log: Fix a few places that free a page from an object without busy held. This is tightening constraints on busy as a precursor to lockless page lookup and should largely be

svn commit: r355313 - in head/sys: compat/cloudabi compat/linux kern

2019-12-02 Thread Jeff Roberson
Author: jeff Date: Mon Dec 2 22:38:25 2019 New Revision: 355313 URL: https://svnweb.freebsd.org/changeset/base/355313 Log: Fix the last few cases that grab without busy or valid. The grab functions must return the page in some held state for consistency elsewhere. Reviewed by: alc, ki

svn commit: r355312 - head/sys/kern

2019-12-02 Thread Jeff Roberson
Author: jeff Date: Mon Dec 2 22:35:45 2019 New Revision: 355312 URL: https://svnweb.freebsd.org/changeset/base/355312 Log: Initialize the idle thread's lock sooner so it's not evaluated on every fork exit and we can rely on it elsewhere. Reviewed by: mav, kib, jhb, markj Differential

svn commit: r355311 - head/sys/x86/x86

2019-12-02 Thread Jeff Roberson
Author: jeff Date: Mon Dec 2 22:34:19 2019 New Revision: 355311 URL: https://svnweb.freebsd.org/changeset/base/355311 Log: Don't run sched_preempt() inside of an extra critical section. This disables the sched_preempt() switch optimization and causes the sched lock to be dropped and immed

svn commit: r355217 - head/sys/vm

2019-11-29 Thread Jeff Roberson
Author: jeff Date: Fri Nov 29 19:57:49 2019 New Revision: 355217 URL: https://svnweb.freebsd.org/changeset/base/355217 Log: Restore swap space accounting for non-anonymous swap objects. This was broken in r355082. Reduce some locking in nearby related object type checks. Reviewed by:

svn commit: r355216 - head/sys/vm

2019-11-29 Thread Jeff Roberson
Author: jeff Date: Fri Nov 29 19:49:20 2019 New Revision: 355216 URL: https://svnweb.freebsd.org/changeset/base/355216 Log: Avoid acquiring the object lock if color is already set. It can not be unset until the object is recycled so this check is stable. Now that we can acquire the ref wit

svn commit: r355215 - head/sys/vm

2019-11-29 Thread Jeff Roberson
Author: jeff Date: Fri Nov 29 19:47:40 2019 New Revision: 355215 URL: https://svnweb.freebsd.org/changeset/base/355215 Log: Fix a perf regression from r355122. We can use a shared lock to drop the last ref on vnodes. Reviewed by: kib, markj Differential Revision:https://review

svn commit: r355203 - in head/sys: kern vm

2019-11-28 Thread Jeff Roberson
Author: jeff Date: Fri Nov 29 03:14:10 2019 New Revision: 355203 URL: https://svnweb.freebsd.org/changeset/base/355203 Log: Handle large mallocs by going directly to kmem. Taking a detour through UMA does not provide any additional value. Reviewed by: markj Differential Revision:

svn commit: r355171 - head/sys/kern

2019-11-28 Thread Jeff Roberson
Author: jeff Date: Thu Nov 28 08:56:14 2019 New Revision: 355171 URL: https://svnweb.freebsd.org/changeset/base/355171 Log: Fix DEBUG_REDZONE build after r355169 Modified: head/sys/kern/kern_malloc.c Modified: head/sys/kern/kern_malloc.c ==

svn commit: r355169 - in head/sys: kern vm

2019-11-27 Thread Jeff Roberson
Author: jeff Date: Thu Nov 28 07:49:25 2019 New Revision: 355169 URL: https://svnweb.freebsd.org/changeset/base/355169 Log: Garbage collect the mostly unused us_keg field. Use appropriately named union members in vm_page.h to store the zone and slab. Remove some nearby dead code. Revi

Re: svn commit: r355166 - head/sys/vm

2019-11-27 Thread Jeff Roberson
Thank you. mea culpa. Jeff On Thu, 28 Nov 2019, Ryan Libby wrote: Author: rlibby Date: Thu Nov 28 04:15:16 2019 New Revision: 355166 URL: https://svnweb.freebsd.org/changeset/base/355166 Log: uma: move sysctl vm.uma defn out from under INVARIANTS Fix non-INVARIANTS builds after r355149.

svn commit: r355149 - head/sys/vm

2019-11-27 Thread Jeff Roberson
Author: jeff Date: Thu Nov 28 00:19:09 2019 New Revision: 355149 URL: https://svnweb.freebsd.org/changeset/base/355149 Log: Implement a sysctl tree for uma zones to assist in debugging and provide more statistcs than are exported via the ABI stable vmstat interface. Rename uz_count to uz_buc

svn commit: r355148 - head/sys/vm

2019-11-27 Thread Jeff Roberson
Author: jeff Date: Wed Nov 27 23:19:06 2019 New Revision: 355148 URL: https://svnweb.freebsd.org/changeset/base/355148 Log: Refactor uma_zfree_arg into several functions to make control flow more clear and icache usage cleaner. Reviewed by: markj Differential Revision:https://r

svn commit: r355122 - in head/sys: sys vm

2019-11-26 Thread Jeff Roberson
Author: jeff Date: Wed Nov 27 00:39:23 2019 New Revision: 355122 URL: https://svnweb.freebsd.org/changeset/base/355122 Log: Use atomics in more cases for object references. We now can completely omit the object lock if we are above a certain threshold. Hold only a single vnode reference wh

svn commit: r355121 - head/sys/vm

2019-11-26 Thread Jeff Roberson
Author: jeff Date: Tue Nov 26 22:17:02 2019 New Revision: 355121 URL: https://svnweb.freebsd.org/changeset/base/355121 Log: Refactor uma_zalloc_arg(). It is a mess of gotos and code which doesn't make sense after many partial refactors. Attempt to make a smaller cache footprint for the fas

svn commit: r355082 - head/sys/vm

2019-11-24 Thread Jeff Roberson
Author: jeff Date: Mon Nov 25 07:13:05 2019 New Revision: 355082 URL: https://svnweb.freebsd.org/changeset/base/355082 Log: Move anonymous object copying for fork into its own routine and so that we can avoid locking non-anonymous objects. Reviewed by: kib Differential Revision:

svn commit: r354874 - head/sys/vm

2019-11-19 Thread Jeff Roberson
Author: jeff Date: Wed Nov 20 01:57:33 2019 New Revision: 354874 URL: https://svnweb.freebsd.org/changeset/base/354874 Log: When we set OFFPAGE to limit fragmentation we should also set VTOSLAB so that we avoid the hashtables. The hashtable is now only required if a zone is created with OFF

svn commit: r354871 - head/sys/vm

2019-11-19 Thread Jeff Roberson
Author: jeff Date: Wed Nov 20 00:31:14 2019 New Revision: 354871 URL: https://svnweb.freebsd.org/changeset/base/354871 Log: Only keep anonymous objects on shadow lists. This eliminates locking of globally visible objects when they are part of a backing chain. Reviewed by: kib, markj D

svn commit: r354870 - head/sys/vm

2019-11-19 Thread Jeff Roberson
Author: jeff Date: Tue Nov 19 23:30:09 2019 New Revision: 354870 URL: https://svnweb.freebsd.org/changeset/base/354870 Log: Remove unnecessary object locking from the vnode pager. Recent changes to busy/valid/dirty locking make these acquires redundant. Reviewed by: kib, markj Differe

svn commit: r354869 - in head/sys: fs/tmpfs kern vm

2019-11-19 Thread Jeff Roberson
Author: jeff Date: Tue Nov 19 23:19:43 2019 New Revision: 354869 URL: https://svnweb.freebsd.org/changeset/base/354869 Log: Simplify anonymous memory handling with an OBJ_ANON flag. This eliminates reudundant complicated checks and additional locking required only for anonymous memory. Int

svn commit: r354158 - in head/sys: fs/nfsclient fs/nfsserver fs/tmpfs kern ufs/ffs vm

2019-10-29 Thread Jeff Roberson
Author: jeff Date: Tue Oct 29 21:06:34 2019 New Revision: 354158 URL: https://svnweb.freebsd.org/changeset/base/354158 Log: Replace OBJ_MIGHTBEDIRTY with a system using atomics. Remove the TMPFS_DIRTY flag and use the same system. This enables further fault locking improvements by allowi

svn commit: r354157 - in head/sys: sys vm

2019-10-29 Thread Jeff Roberson
Author: jeff Date: Tue Oct 29 20:58:46 2019 New Revision: 354157 URL: https://svnweb.freebsd.org/changeset/base/354157 Log: Use atomics and a shared object lock to protect the object reference count. Certain consumers still need to guarantee a stable reference so we can not switch entirel

svn commit: r354156 - head/sys/vm

2019-10-29 Thread Jeff Roberson
Author: jeff Date: Tue Oct 29 20:46:25 2019 New Revision: 354156 URL: https://svnweb.freebsd.org/changeset/base/354156 Log: Drop the object lock earlier in fault and don't relock it after pmap_enter(). Recent changes in object and page locking have enabled more lock pushdown. Reviewed

svn commit: r354155 - head/sys/kern

2019-10-29 Thread Jeff Roberson
Author: jeff Date: Tue Oct 29 20:37:59 2019 New Revision: 354155 URL: https://svnweb.freebsd.org/changeset/base/354155 Log: Drop the object lock in vfs_bio and cluster where it is now safe to do so. Recent changes to busy/valid/dirty have enabled page based synchronization and the object

Re: svn commit: r353539 - in head/sys: amd64/sgx cddl/contrib/opensolaris/uts/common/fs/zfs compat/linuxkpi/common/src dev/drm2/ttm dev/md dev/netmap dev/xen/gntdev dev/xen/privcmd fs/nfsclient fs/smb

2019-10-15 Thread Jeff Roberson
On Tue, 15 Oct 2019, Oliver Pinter wrote: On Tuesday, October 15, 2019, Jeff Roberson wrote: Author: jeff Date: Tue Oct 15 03:45:41 2019 New Revision: 353539 URL: https://svnweb.freebsd.org/changeset/base/353539 Log: ? (4/6) Protect page valid with the

svn commit: r353541 - in head/sys: amd64/amd64 arm/arm arm64/arm64 i386/i386 mips/mips powerpc/aim powerpc/booke riscv/riscv sparc64/sparc64

2019-10-14 Thread Jeff Roberson
Author: jeff Date: Tue Oct 15 03:51:46 2019 New Revision: 353541 URL: https://svnweb.freebsd.org/changeset/base/353541 Log: (6/6) Convert pmap to expect busy in write related operations now that all callers hold it. This simplifies pmap code and removes a dependency on the object lock.

svn commit: r353540 - head/sys/vm

2019-10-14 Thread Jeff Roberson
Author: jeff Date: Tue Oct 15 03:48:22 2019 New Revision: 353540 URL: https://svnweb.freebsd.org/changeset/base/353540 Log: (5/6) Move the VPO_NOSYNC to PGA_NOSYNC to eliminate the dependency on the object lock in vm_page_set_validclean(). Reviewed by:kib, markj Tested by: pho

svn commit: r353539 - in head/sys: amd64/sgx cddl/contrib/opensolaris/uts/common/fs/zfs compat/linuxkpi/common/src dev/drm2/ttm dev/md dev/netmap dev/xen/gntdev dev/xen/privcmd fs/nfsclient fs/smbf...

2019-10-14 Thread Jeff Roberson
Author: jeff Date: Tue Oct 15 03:45:41 2019 New Revision: 353539 URL: https://svnweb.freebsd.org/changeset/base/353539 Log: (4/6) Protect page valid with the busy lock. Atomics are used for page busy and valid state when the shared busy is held. The details of the locking protocol and va

svn commit: r353538 - in head/sys: amd64/amd64 arm/arm arm64/arm64 i386/i386 mips/mips powerpc/aim powerpc/booke riscv/riscv sparc64/sparc64 vm

2019-10-14 Thread Jeff Roberson
Author: jeff Date: Tue Oct 15 03:41:36 2019 New Revision: 353538 URL: https://svnweb.freebsd.org/changeset/base/353538 Log: (3/6) Add a shared object busy synchronization mechanism that blocks new page busy acquires while held. This allows code that would need to acquire and release a ver

svn commit: r353537 - head/sys/vm

2019-10-14 Thread Jeff Roberson
Author: jeff Date: Tue Oct 15 03:38:02 2019 New Revision: 353537 URL: https://svnweb.freebsd.org/changeset/base/353537 Log: (2/6) Don't release xbusy in vm_page_remove(), defer to vm_page_free_prep(). This persists busy state across operations like rename and replace. Reviewed by:k

svn commit: r353535 - in head/sys: dev/xen/gntdev dev/xen/privcmd fs/tmpfs kern sys vm

2019-10-14 Thread Jeff Roberson
Author: jeff Date: Tue Oct 15 03:35:11 2019 New Revision: 353535 URL: https://svnweb.freebsd.org/changeset/base/353535 Log: (1/6) Replace busy checks with acquires where it is trival to do so. This is the first in a series of patches that promotes the page busy field to a first class lock

svn commit: r352176 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs compat/linuxkpi/common/src dev/drm2/ttm dev/xen/gntdev dev/xen/privcmd kern vm

2019-09-10 Thread Jeff Roberson
Author: jeff Date: Tue Sep 10 19:08:01 2019 New Revision: 352176 URL: https://svnweb.freebsd.org/changeset/base/352176 Log: Replace redundant code with a few new vm_page_grab facilities: - VM_ALLOC_NOCREAT will grab without creating a page. - vm_page_grab_valid() will grab and page in if n

svn commit: r352174 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs dev/drm2/ttm kern vm

2019-09-10 Thread Jeff Roberson
Author: jeff Date: Tue Sep 10 18:27:45 2019 New Revision: 352174 URL: https://svnweb.freebsd.org/changeset/base/352174 Log: Use the sleepq lock rather than the page lock to protect against wakeup races with page busy state. The object lock is still used as an interlock to ensure that the id

svn commit: r351241 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs kern vm

2019-08-19 Thread Jeff Roberson
Author: jeff Date: Mon Aug 19 23:09:38 2019 New Revision: 351241 URL: https://svnweb.freebsd.org/changeset/base/351241 Log: Use an atomic reference count for paging in progress so that callers do not require the object lock. Reviewed by: markj Tested by:pho (as part of a larger bra

svn commit: r351235 - head/sys/vm

2019-08-19 Thread Jeff Roberson
Author: jeff Date: Mon Aug 19 22:25:28 2019 New Revision: 351235 URL: https://svnweb.freebsd.org/changeset/base/351235 Log: Permit vm_pager_has_page() to run with a shared lock. Introduce VM_OBJECT_DROP/VM_OBJECT_PICKUP to handle functions that are called with uncertain lock state. Rev

svn commit: r351200 - in head/sys: amd64/amd64 dev/acpica

2019-08-18 Thread Jeff Roberson
Author: jeff Date: Sun Aug 18 23:44:23 2019 New Revision: 351200 URL: https://svnweb.freebsd.org/changeset/base/351200 Log: Allocate all per-cpu datastructures in domain correct memory. Reviewed by: kib, gallatin (some objections) Tested by:pho Sponsored by: Netflix Differential

svn commit: r351198 - in head/sys: amd64/amd64 amd64/include vm

2019-08-18 Thread Jeff Roberson
Author: jeff Date: Sun Aug 18 23:07:56 2019 New Revision: 351198 URL: https://svnweb.freebsd.org/changeset/base/351198 Log: Allocate amd64's page array using pages and page directory pages from the NUMA domain that the pages describe. Patch original from gallatin. Reviewed by: kib Tes

svn commit: r351188 - in head/sys: kern sys

2019-08-18 Thread Jeff Roberson
Author: jeff Date: Sun Aug 18 11:43:58 2019 New Revision: 351188 URL: https://svnweb.freebsd.org/changeset/base/351188 Log: Add a blocking wait bit to refcount. This allows refs to be used as a simple barrier. Reviewed by: markj, kib Discussed with: jhb Sponsored by: Netflix

Re: svn commit: r351183 - head/sys/vm

2019-08-18 Thread Jeff Roberson
On Sun, 18 Aug 2019, Jeff Roberson wrote: Author: jeff Date: Sun Aug 18 08:07:31 2019 New Revision: 351183 URL: https://svnweb.freebsd.org/changeset/base/351183 Log: Remove unnecessary debugging from r351181 that caused powerpc build to fail. I'm not sure how I made such a mess of thi

svn commit: r351183 - head/sys/vm

2019-08-18 Thread Jeff Roberson
Author: jeff Date: Sun Aug 18 08:07:31 2019 New Revision: 351183 URL: https://svnweb.freebsd.org/changeset/base/351183 Log: Remove unnecessary debugging from r351181 that caused powerpc build to fail. Tested by:make universe TARGETS=powerpc Modified: head/sys/vm/vm_phys.c Modified:

svn commit: r351182 - head/sys/vm

2019-08-18 Thread Jeff Roberson
Author: jeff Date: Sun Aug 18 07:43:15 2019 New Revision: 351182 URL: https://svnweb.freebsd.org/changeset/base/351182 Log: vm_phys_avail_find is only used on NUMA kernels. Fix a build error. Modified: head/sys/vm/vm_phys.c Modified: head/sys/vm/vm_phys.c ===

svn commit: r351181 - head/sys/vm

2019-08-18 Thread Jeff Roberson
Author: jeff Date: Sun Aug 18 07:06:31 2019 New Revision: 351181 URL: https://svnweb.freebsd.org/changeset/base/351181 Log: Encapsulate phys_avail manipulation in a set of simple routines. Add a NUMA aware boot time memory allocator that will be used to allocate early domain correct structu

svn commit: r351108 - in head/sys: amd64/amd64 amd64/include arm/arm arm/include arm64/include i386/i386 i386/include kern mips/atheros mips/atheros/ar531x mips/beri mips/broadcom mips/cavium mips/...

2019-08-15 Thread Jeff Roberson
Author: jeff Date: Fri Aug 16 00:45:14 2019 New Revision: 351108 URL: https://svnweb.freebsd.org/changeset/base/351108 Log: Move phys_avail definition into MI code. It is consumed in the MI layer and doing so adds more flexibility with less redundant code. Reviewed by: jhb, markj, kib

svn commit: r350972 - in head/sys: kern sys

2019-08-12 Thread Jeff Roberson
Author: jeff Date: Tue Aug 13 04:54:02 2019 New Revision: 350972 URL: https://svnweb.freebsd.org/changeset/base/350972 Log: Move scheduler state into the per-cpu area where it can be allocated on the correct NUMA domain. Reviewed by: markj, gallatin Sponsored by: Netflix Differential

svn commit: r350663 - in head/sys: ddb sys vm

2019-08-06 Thread Jeff Roberson
Author: jeff Date: Tue Aug 6 23:15:34 2019 New Revision: 350663 URL: https://svnweb.freebsd.org/changeset/base/350663 Log: Cache kernel stacks in UMA. This gives us NUMA support, better concurrency, and more statistics. Reviewed by: kib, markj Tested by:pho Sponsored by: Netfli

svn commit: r350661 - head/sys/vm

2019-08-06 Thread Jeff Roberson
Author: jeff Date: Tue Aug 6 23:04:59 2019 New Revision: 350661 URL: https://svnweb.freebsd.org/changeset/base/350661 Log: Implement a MINBUCKET zone flag so we can use minimal caching on zones that may be expensive to cache. Reviewed by: markj, kib Sponsored by: Netflix Dif

svn commit: r350659 - in head: lib/libmemstat sys/conf sys/vm usr.bin/vmstat

2019-08-06 Thread Jeff Roberson
Author: jeff Date: Tue Aug 6 21:50:34 2019 New Revision: 350659 URL: https://svnweb.freebsd.org/changeset/base/350659 Log: Add two new kernel options to control memory locality on NUMA hardware. - UMA_XDOMAIN enables an additional per-cpu bucket for freed memory that was freed on a diff

svn commit: r336055 - head/sys/vm

2018-07-06 Thread Jeff Roberson
Author: jeff Date: Sat Jul 7 01:54:45 2018 New Revision: 336055 URL: https://svnweb.freebsd.org/changeset/base/336055 Log: Use the ticks since the last update to reduce hysteresis in the partpopq and contention on the vm_reserv_domain lock. This gives a roughly 8x speedup on will-it-scal

Re: svn commit: r336025 - in head/sys: amd64/include i386/include

2018-07-06 Thread Jeff Roberson
On Fri, 6 Jul 2018, Rodney W. Grimes wrote: On Fri, Jul 6, 2018, 12:27 PM Rodney W. Grimes < free...@pdx.rh.cn85.dnsmgr.net> wrote: On Fri, Jul 6, 2018 at 9:52 AM, Rodney W. Grimes < free...@pdx.rh.cn85.dnsmgr.net> wrote: On Fri, Jul 6, 2018 at 9:32 AM, Rodney W. Grimes < free...@pdx.rh.cn85

Re: svn commit: r336025 - in head/sys: amd64/include i386/include

2018-07-06 Thread Jeff Roberson
On Fri, 6 Jul 2018, Rodney W. Grimes wrote: On Friday, July 6, 2018, Rodney W. Grimes wrote: Author: hselasky Date: Fri Jul 6 10:13:42 2018 New Revision: 336025 URL: https://svnweb.freebsd.org/changeset/base/336025 Log: Make sure kernel modules built by default are portable between UP and

Re: svn commit: r335579 - head/sys/vm

2018-06-23 Thread Jeff Roberson
On Sat, 23 Jun 2018, Jeff Roberson wrote: Author: jeff Date: Sat Jun 23 08:10:09 2018 New Revision: 335579 URL: https://svnweb.freebsd.org/changeset/base/335579 Log: Sort uma_zone fields according to 64 byte cache line with adjacent line prefetch on 64bit architectures. Prior to this, two

svn commit: r335579 - head/sys/vm

2018-06-23 Thread Jeff Roberson
Author: jeff Date: Sat Jun 23 08:10:09 2018 New Revision: 335579 URL: https://svnweb.freebsd.org/changeset/base/335579 Log: Sort uma_zone fields according to 64 byte cache line with adjacent line prefetch on 64bit architectures. Prior to this, two lines were needed for the fast path and eac

svn commit: r331863 - head/sys/vm

2018-04-01 Thread Jeff Roberson
Author: jeff Date: Sun Apr 1 04:50:05 2018 New Revision: 331863 URL: https://svnweb.freebsd.org/changeset/base/331863 Log: Add a uma cache of free pages in the DEFAULT freepool. This gives us per-cpu alloc and free of pages. The cache is filled with as few trips to the phys allocator as p

svn commit: r331862 - head/sys/vm

2018-04-01 Thread Jeff Roberson
Author: jeff Date: Sun Apr 1 04:47:05 2018 New Revision: 331862 URL: https://svnweb.freebsd.org/changeset/base/331862 Log: Add the flag ZONE_NOBUCKETCACHE. This flag instructions UMA not to keep a cache of fully populated buckets. This will be used in a follow-on commit. The flag ide

svn commit: r331723 - in head: share/man/man9 sys/kern sys/sys sys/vm usr.bin/cpuset

2018-03-28 Thread Jeff Roberson
Author: jeff Date: Thu Mar 29 02:54:50 2018 New Revision: 331723 URL: https://svnweb.freebsd.org/changeset/base/331723 Log: Implement several enhancements to NUMA policies. Add a new "interleave" allocation policy which stripes pages across domains with a stride or width keeping contiguit

svn commit: r331698 - in head/sys: amd64/include i386/include kern x86/x86 x86/xen

2018-03-28 Thread Jeff Roberson
Author: jeff Date: Wed Mar 28 18:47:35 2018 New Revision: 331698 URL: https://svnweb.freebsd.org/changeset/base/331698 Log: Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all platforms. Original commit message as follows: Only use CPUs in the domain the device is attac

Re: svn commit: r331606 - in head/sys: amd64/include i386/include x86/x86 x86/xen

2018-03-27 Thread Jeff Roberson
On Tue, 27 Mar 2018, Li-Wen Hsu wrote: On Mon, Mar 26, 2018 at 20:35:12 -1000, Jeff Roberson wrote: The patch has been on my branch for weeks and has been tested by a half dozen people. I'm sorry it does not work for you. If you reverted 331605 the change that followed should not have

svn commit: r331610 - in head/sys: amd64/include i386/include x86/x86 x86/xen

2018-03-27 Thread Jeff Roberson
Author: jeff Date: Tue Mar 27 10:20:50 2018 New Revision: 331610 URL: https://svnweb.freebsd.org/changeset/base/331610 Log: Backout r331606 until I can identify why it does not boot on some machines. Modified: head/sys/amd64/include/intr_machdep.h head/sys/i386/include/intr_machdep.h he

Re: svn commit: r331606 - in head/sys: amd64/include i386/include x86/x86 x86/xen

2018-03-26 Thread Jeff Roberson
On Tue, 27 Mar 2018, O. Hartmann wrote: On Tue, 27 Mar 2018 08:15:35 +0200 "O. Hartmann" wrote: On Tue, 27 Mar 2018 03:37:04 +0000 (UTC) Jeff Roberson wrote: Author: jeff Date: Tue Mar 27 03:37:04 2018 New Revision: 331606 URL: https://svnweb.freebsd.org/changeset/base/331606 L

svn commit: r331606 - in head/sys: amd64/include i386/include x86/x86 x86/xen

2018-03-26 Thread Jeff Roberson
Author: jeff Date: Tue Mar 27 03:37:04 2018 New Revision: 331606 URL: https://svnweb.freebsd.org/changeset/base/331606 Log: Only use CPUs in the domain the device is attached to for default assignment. Device drivers are able to override the default assignment if they bind directly. There

svn commit: r331605 - head/sys/vm

2018-03-26 Thread Jeff Roberson
Author: jeff Date: Tue Mar 27 03:27:02 2018 New Revision: 331605 URL: https://svnweb.freebsd.org/changeset/base/331605 Log: Move vm_ndomains to vm.h where it can be used with a single header include rather than requiring a half-dozen. Many non-vm files may want to know the number of valid d

svn commit: r331561 - head/sys/kern

2018-03-26 Thread Jeff Roberson
Author: jeff Date: Mon Mar 26 18:36:17 2018 New Revision: 331561 URL: https://svnweb.freebsd.org/changeset/base/331561 Log: Fix a bug introduced in r329612 that slowly invalidates all clean bufs. Reported by: bde Reviewed by: bde Sponsored by: Netflix, Dell/EMC Isilon Modified: hea

Re: svn commit: r331447 - head/sys/dev/mlx5/mlx5_core

2018-03-25 Thread Jeff Roberson
Author: hselasky Date: Fri Mar 23 18:11:06 2018 New Revision: 331447 URL: https://svnweb.freebsd.org/changeset/base/331447 Log: Hide verbose proclamation of error when forced in mlx5core. When mlx5_enter_error_state() operation is forced by shutdown, the messages surrounding setting the err

svn commit: r331529 - head/lib/libc/sys

2018-03-25 Thread Jeff Roberson
Author: jeff Date: Sun Mar 25 07:42:44 2018 New Revision: 331529 URL: https://svnweb.freebsd.org/changeset/base/331529 Log: Add missing file from 4331508 Document cpuset_{get,set}domain() Added: head/lib/libc/sys/cpuset_getdomain.2 (contents, props changed) Added: head/lib/libc/sys/cp

svn commit: r331508 - in head: lib/libc/sys share/man/man9 usr.bin/cpuset

2018-03-24 Thread Jeff Roberson
Author: jeff Date: Sat Mar 24 23:58:44 2018 New Revision: 331508 URL: https://svnweb.freebsd.org/changeset/base/331508 Log: Document new NUMA related syscalls and utility options. Sponsored by: Netflix, Dell/EMC Isilon Modified: head/lib/libc/sys/Makefile.inc head/lib/libc/sys/cpuset.2

svn commit: r331450 - head/sys/vm

2018-03-23 Thread Jeff Roberson
Author: jeff Date: Fri Mar 23 18:24:02 2018 New Revision: 331450 URL: https://svnweb.freebsd.org/changeset/base/331450 Log: Fix two compliation problems on non-amd64 architectures. Modified: head/sys/vm/vm_page.c head/sys/vm/vm_reserv.c Modified: head/sys/vm/vm_page.c =

Re: svn commit: r331369 - head/sys/vm

2018-03-22 Thread Jeff Roberson
On Thu, 22 Mar 2018, Cy Schubert wrote: In message , Jeff Roberson writes: On Thu, 22 Mar 2018, Cy Schubert wrote: It broke i386 too. I just did TARGET_ARCH=i386 make buildworld TARGET_ARCH=i386 make buildkernel This worked for me? Jeff hmmm. make TARGET=i386 TARGET_ARCH=i386

Re: svn commit: r331369 - head/sys/vm

2018-03-22 Thread Jeff Roberson
55,6 +53,8 @@ #include #include #include +#include +#include #include #include This is because sys/i386/include/machine.h uses critical_enter() and critical_exit() which are defined in sys/systm.h. It built nicely on my amd64's though. ~cy In message , Jeff Roberson writes: Thank you, wo

Re: svn commit: r331369 - head/sys/vm

2018-03-22 Thread Jeff Roberson
critical_exit() which are defined in sys/systm.h. It built nicely on my amd64's though. ~cy In message , Jeff Roberson writes: Thank you, working on it. I had done a make universe before getting review feedback. Jeff On Thu, 22 Mar 2018, Justin Hibbits wrote: This broke gcc builds. O

Re: svn commit: r331369 - head/sys/vm

2018-03-22 Thread Jeff Roberson
Thank you, working on it. I had done a make universe before getting review feedback. Jeff On Thu, 22 Mar 2018, Justin Hibbits wrote: This broke gcc builds. On Thu, Mar 22, 2018 at 2:21 PM, Jeff Roberson wrote: Author: jeff Date: Thu Mar 22 19:21:11 2018 New Revision: 331369 URL: https

svn commit: r331369 - head/sys/vm

2018-03-22 Thread Jeff Roberson
Author: jeff Date: Thu Mar 22 19:21:11 2018 New Revision: 331369 URL: https://svnweb.freebsd.org/changeset/base/331369 Log: Lock reservations with a dedicated lock in each reservation. Protect the vmd_free_count with atomics. This allows us to allocate and free from reservations without

svn commit: r331368 - in head/sys: kern sys vm

2018-03-22 Thread Jeff Roberson
Author: jeff Date: Thu Mar 22 19:11:43 2018 New Revision: 331368 URL: https://svnweb.freebsd.org/changeset/base/331368 Log: Start witness much earlier in boot so that we can shrink the pend list and make it more immune to further change. Reviewed by: markj, imp (Part of D14707) Sponsor

svn commit: r331367 - head/sys/vm

2018-03-22 Thread Jeff Roberson
Author: jeff Date: Thu Mar 22 19:06:50 2018 New Revision: 331367 URL: https://svnweb.freebsd.org/changeset/base/331367 Log: Use read_mostly and alignment tags to eliminate or limit false sharing. Reviewed by: markj (Part of D14707) Sponsored by: Netflix, Dell/EMC Isilon Modified: head

Re: svn commit: r331233 - head/sys/kern

2018-03-19 Thread Jeff Roberson
Thanks for fixing my bug. Sorry I didn't build universe for this one. Thanks, Jeff On Tue, 20 Mar 2018, Justin Hibbits wrote: Author: jhibbits Date: Tue Mar 20 02:01:30 2018 New Revision: 331233 URL: https://svnweb.freebsd.org/changeset/base/331233 Log: Cast through uintptr_t to narrow the

svn commit: r331106 - head/sys/kern

2018-03-17 Thread Jeff Roberson
Author: jeff Date: Sat Mar 17 18:14:49 2018 New Revision: 331106 URL: https://svnweb.freebsd.org/changeset/base/331106 Log: Move the dirty queues inside the per-domain structure. This resolves a bug where we had not hit global dirty limits but a single queue was starved for space by dirty b

svn commit: r331018 - head/sys/vm

2018-03-15 Thread Jeff Roberson
Author: jeff Date: Thu Mar 15 19:23:07 2018 New Revision: 331018 URL: https://svnweb.freebsd.org/changeset/base/331018 Log: Eliminate pageout wakeup races. Take another step towards lockless vmd_free_count manipulation. Reduce the scope of the free lock by using a pageout lock to synchroni

svn commit: r330624 - head/sys/vm

2018-03-07 Thread Jeff Roberson
Author: jeff Date: Wed Mar 7 22:04:27 2018 New Revision: 330624 URL: https://svnweb.freebsd.org/changeset/base/330624 Log: Don't assert that the domain free lock is held until we're certain that there is a valid reservation. This can trip erroneously when memory falls within a domain but d

svn commit: r329943 - head/sys/kern

2018-02-24 Thread Jeff Roberson
Author: jeff Date: Sun Feb 25 00:35:21 2018 New Revision: 329943 URL: https://svnweb.freebsd.org/changeset/base/329943 Log: Fix issues with sparse cpu allocation. Consistently use mp_maxid + 1. Reported by: pho Reviewed by: markj Sponsored by: Netflix, Dell/EMC Isilon Modified: he

svn commit: r329882 - in head/sys: conf kern sys vm

2018-02-23 Thread Jeff Roberson
Author: jeff Date: Fri Feb 23 22:51:51 2018 New Revision: 329882 URL: https://svnweb.freebsd.org/changeset/base/329882 Log: Add a generic Proportional Integral Derivative (PID) controller algorithm and use it to regulate page daemon output. This provides much smoother and more responsive

svn commit: r329672 - head/sys/kern

2018-02-20 Thread Jeff Roberson
Author: jeff Date: Tue Feb 20 21:27:17 2018 New Revision: 329672 URL: https://svnweb.freebsd.org/changeset/base/329672 Log: Fix the broken subqueue assignment for the cleanq. Reported by: pho Tested by:pho Sponsored by: Netflix, Dell/EMC Isilon Modified: head/sys/kern/vfs_bio.c

svn commit: r329612 - in head/sys: kern sys

2018-02-19 Thread Jeff Roberson
Author: jeff Date: Tue Feb 20 00:06:07 2018 New Revision: 329612 URL: https://svnweb.freebsd.org/changeset/base/329612 Log: Further parallelize the buffer cache. Provide multiple clean queues partitioned into 'domains'. Each domain manages its own bufspace and has its own bufspace daemon

svn commit: r329187 - in head/sys: amd64/amd64 arm/arm arm64/arm64 compat/linprocfs compat/linux i386/i386 kern mips/mips powerpc/booke riscv/riscv sparc64/sparc64 sys vm

2018-02-12 Thread Jeff Roberson
Author: jeff Date: Mon Feb 12 22:53:00 2018 New Revision: 329187 URL: https://svnweb.freebsd.org/changeset/base/329187 Log: Make v_wire_count a per-cpu counter(9) counter. This eliminates a significant source of cache line contention from vm_page_alloc(). Use accessors and vm_page_unwire_n

svn commit: r328954 - in head/sys: amd64/amd64 arm/arm cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs compat/linprocfs fs/tmpfs i386/i386 kern mips/mips powerpc/booke powerp...

2018-02-06 Thread Jeff Roberson
Author: jeff Date: Tue Feb 6 22:10:07 2018 New Revision: 328954 URL: https://svnweb.freebsd.org/changeset/base/328954 Log: Use per-domain locks for vm page queue free. Move paging control from global to per-domain state. Protect reservations with the free lock from the domain that they be

<    1   2   3   4   >