Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1 |
|
#
00369c4a |
| 14-Feb-2020 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Rejigger mount code to add vfs_flags in struct vfsops
* Rejigger the mount code so we can add a vfs_flags field to vfsops, which mount_init() has visibility to.
* Allows nullfs to flag t
kernel - Rejigger mount code to add vfs_flags in struct vfsops
* Rejigger the mount code so we can add a vfs_flags field to vfsops, which mount_init() has visibility to.
* Allows nullfs to flag that its mounts do not need a syncer thread. Previously nullfs would destroy the syncer thread after the fact.
* Improves dsynth performance (it does lots of nullfs mounts).
show more ...
|
Revision tags: v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc |
|
#
d8b10ae3 |
| 02-Dec-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix smbfs readdir and umount
* Fix a bug in smbfs's readdir that was causing an empty list and also a later deadlock.
* Fix a bug in smbfs's umount that was panicing the machine.
|
Revision tags: v4.6.1 |
|
#
fd74079f |
| 16-Oct-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Reduce excessive inode hash table allocations
* Reduce excessive inode hash table allocations in various filesystems (primarily ufs). Introduce vfs_inodehashsize() to calculate a reasona
kernel - Reduce excessive inode hash table allocations
* Reduce excessive inode hash table allocations in various filesystems (primarily ufs). Introduce vfs_inodehashsize() to calculate a reasonable hash table size instead of using 'maxvnodes'.
* The new formula is to generally use maxvnodes / 2 (2 x stacking for the chained hash table). When maxvnodes is large we use maxvnodes / 4, and if maxvnodes is very large (> 1M vnodes) we use maxvnodes / 8. This significantly reduces the amount of kernel memory used when mounting ufs, ext2fs, hpfs, isofs, msdosfs, nfs, ntfs, and smbfs filesystems.
show more ...
|
#
9629eb35 |
| 16-Oct-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Rename desiredvnodes to maxvnodes, fix deadlock
* Rename the kernel variable 'desiredvnodes' to 'maxvnodes' to match the sysctl name (which has always been 'maxvnodes'), and to make the
kernel - Rename desiredvnodes to maxvnodes, fix deadlock
* Rename the kernel variable 'desiredvnodes' to 'maxvnodes' to match the sysctl name (which has always been 'maxvnodes'), and to make the code more readable.
* Probable fix to a rare mount/umount deadlock which can occur in two situations (1) When a large number of mounts and unmounts are running concurrently, and (2) During a umount -a, shutdown, or reboot.
* Considered minor, normal use cases will not reproduce this bug. Only synth or poudriere can generate the mount/umount traffic necessary to reproduce this bug.
* Also fixes a minor kernel memory leak of the mount structure which can occur when a 'df' or filesystem sync races a umount. Also minor.
Reported-by: marino (mount race)
show more ...
|
#
4168cfe8 |
| 29-Sep-2016 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel/smbfs: Fix type mismatches for smbfs_pbuf_freecnt.
Mostly used for getpbuf_kva() that takes int*. Noticed while playing with -flto on LINT64 kernel configuration.
|
Revision tags: v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0 |
|
#
2f0acc22 |
| 17-Jul-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Improve physio performance
* See http://apollo.backplane.com/DFlyMisc/nvme_sys03.txt
* Hash the pbuf system. This chops down spin-lock collisions at high transaction rates (>150K IOPS)
kernel - Improve physio performance
* See http://apollo.backplane.com/DFlyMisc/nvme_sys03.txt
* Hash the pbuf system. This chops down spin-lock collisions at high transaction rates (>150K IOPS) by 1000x.
* Implement a pbuf with pre-allocated kernel memory that we copy into, avoiding page table manipulations and thus avoiding system-wide invltlb/invlpg IPIs.
* This increases NVMe IOPS tests with three cards from 150K-200K IOPS to 950K IOPS using physio (random read, 4K blocks, from urandom-filled partition, with many process threads, from 3 NVMe cards in parallel).
* Further adjustments to the vkernel build.
show more ...
|
Revision tags: v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0 |
|
#
2f3e94be |
| 05-Oct-2014 |
Sascha Wildner <saw@online.de> |
kernel/smbfs: Tabify a few lines.
|
#
63bae95b |
| 05-Oct-2014 |
Sascha Wildner <saw@online.de> |
kernel: Remove some dead code.
While here, also remove an unnecessary NULL check in smbfs (M_WAITOK is used) and use M_ZERO instead of an explicit bzero().
Submitted-by: Edward O'Callaghan <eocalla
kernel: Remove some dead code.
While here, also remove an unnecessary NULL check in smbfs (M_WAITOK is used) and use M_ZERO instead of an explicit bzero().
Submitted-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
show more ...
|
Revision tags: v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1 |
|
#
3fb00659 |
| 11-Jan-2014 |
Sascha Wildner <saw@online.de> |
kernel/smbfs: Remove dead code.
|
Revision tags: v3.6.0, v3.7.1, v3.6.0rc, v3.7.0 |
|
#
ee173d09 |
| 20-Oct-2013 |
Sascha Wildner <saw@online.de> |
kernel - Rewrite vnode ref-counting code to improve performance
* Rewrite the vnode ref-counting code and modify operation to not immediately VOP_INACTIVE a vnode when its refs drops to 0. By d
kernel - Rewrite vnode ref-counting code to improve performance
* Rewrite the vnode ref-counting code and modify operation to not immediately VOP_INACTIVE a vnode when its refs drops to 0. By doing so we avoid cycling vnodes through exclusive locks when temporarily accessing them (such as in a path lookup). Shared locks can be used throughout.
* Track active/inactive vnodes a bit differently, keep track of the number of vnodes that are still active but have zero refs, and rewrite the vnode freeing code to use the new statistics to deactivate cached vnodes.
show more ...
|
Revision tags: v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0 |
|
#
74d62460 |
| 15-Sep-2012 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - remove bounds on buffer cache nbuf count for 64-bit
* Remove arbitrary 1GB buffer cache limitation
* Adjusted numerous 'int' fields to 'long'. Even though nbuf is not likely to exceed 2
kernel - remove bounds on buffer cache nbuf count for 64-bit
* Remove arbitrary 1GB buffer cache limitation
* Adjusted numerous 'int' fields to 'long'. Even though nbuf is not likely to exceed 2 billion buffers, byte calculations using the variable began overflowing so just convert that and various other variables to long.
* Make sure we don't blow-out the temporary valloc() space in early boot due to nbufs being too large.
* Unbound 'kern.nbuf' specifications in /boot/loader.conf as well.
show more ...
|
Revision tags: v3.0.3 |
|
#
e46d128d |
| 07-Jun-2012 |
Sascha Wildner <saw@online.de> |
kernel: Use hashdestroy() to free hash tables allocated with hashinit().
It asserts that the table is empty before kfree()ing it.
|
#
4705d921 |
| 11-Apr-2012 |
Sascha Wildner <saw@online.de> |
kernel/smbfs: The netsmb check only applies if it is not the module build.
The necessary files from netsmb are built into the module. In the kernel it is two separate options.
This fixes buildkerne
kernel/smbfs: The netsmb check only applies if it is not the module build.
The necessary files from netsmb are built into the module. In the kernel it is two separate options.
This fixes buildkernel.
Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
show more ...
|
Revision tags: v3.0.2, v3.0.1, v3.1.0, v3.0.0 |
|
#
884717e1 |
| 06-Dec-2011 |
Sascha Wildner <saw@online.de> |
kernel: Replace all usage of MALLOC()/FREE() with kmalloc()/kfree().
|
#
86d7f5d3 |
| 26-Nov-2011 |
John Marino <draco@marino.st> |
Initial import of binutils 2.22 on the new vendor branch
Future versions of binutils will also reside on this branch rather than continuing to create new binutils branches for each new version.
|
#
e5e63c20 |
| 29-Oct-2011 |
Sascha Wildner <saw@online.de> |
kernel: Add missing MODULE_VERSION()s for file systems.
The loader will figure out by itself whether to load a module or not, depending on whether it's already in the kernel config or not, iif MODUL
kernel: Add missing MODULE_VERSION()s for file systems.
The loader will figure out by itself whether to load a module or not, depending on whether it's already in the kernel config or not, iif MODULE_VERSION() is present.
I.e., if MSDOSFS (that has MODULE_VERSION()) is in the config and msdos_load="YES" is in /boot/loader.conf, msdos.ko will not be loaded by the loader at all.
Without MODULE_VERSION() it will lead (in the best case) to whining in dmesg like for ahci or (in the worst case) to weird behavior, such as for nullfs:
# mount -a null: vfsload(null): No such file or directory
Therefore, we definitely want MODULE_VERSION() for all new modules.
This commit is the first in a series to add the missing MODULE_VERSION()s.
I know that ufs is not a module, just included it for completeness' sake.
Reported-by: marino, tuxillo
show more ...
|
Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0 |
|
#
6288c7ec |
| 05-Sep-2009 |
Alexander Polakov <polachok@gmail.com> |
smbfs: use libiconv v.2
|
#
52174f71 |
| 24-Aug-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
Add a flags argument to VOP_FSYNC()
* So filesystem code knows whether it is being called from userland or not.
|
Revision tags: v2.3.2, v2.3.1, v2.2.1, v2.2.0, v2.3.0, v2.1.1, v2.0.1 |
|
#
3c37c940 |
| 06-May-2007 |
Matthew Dillon <dillon@dragonflybsd.org> |
Use SYSREF to reference count struct vnode. v_usecount is now v_sysref(.refcnt). v_holdcnt is now v_auxrefs. SYSREF's termination state (using a negative reference count from -0x40000000+) now pla
Use SYSREF to reference count struct vnode. v_usecount is now v_sysref(.refcnt). v_holdcnt is now v_auxrefs. SYSREF's termination state (using a negative reference count from -0x40000000+) now places the vnode in a VCACHED or VFREE state and deactivates it. The vnode is now assigned a 64 bit unique id via SYSREF.
vhold() (which manipulates v_auxrefs) no longer reactivates a vnode and is explicitly used only to track references from auxillary structures and references to prevent premature destruction of the vnode. vdrop() will now only move a vnode from VCACHED to VFREE on the 1->0 transition of v_auxrefs if the vnode is in a termination state.
vref() will now panic if used on a vnode in a termination state. vget() must now be used to explicitly reactivate a vnode. These requirements existed before but are now explicitly asserted.
vlrureclaim() and allocvnode() should now interact a bit better. In particular, vlrureclaim() will do a better job of finding vnodes to flush and transition from VCACHED to VFREE, and allocvnode() will do a better job finding vnodes to reuse without getting blocked by a flush.
allocvnode now uses a real VX lock to sequence vnodes into VRECLAIMED. All vnode special state processing now uses a VX lock.
Vnodes are now able to be slowly returned to the memory pool when kern.maxvnodes is reduced at run time.
Various initialization elements have been moved to CTOR/DTOR and are no longer in the critical path, improving performance. However, since SYSREF uses atomic_cmpset_int() (aka cmpxchgl), which reduces performance somewhat, overall performance tends to be about the same.
show more ...
|
#
086c1d7e |
| 23-Dec-2006 |
Sascha Wildner <swildner@dragonflybsd.org> |
Rename printf -> kprintf in sys/ and add some defines where necessary (files which are used in userland, too).
|
#
efda3bd0 |
| 05-Sep-2006 |
Matthew Dillon <dillon@dragonflybsd.org> |
Rename malloc->kmalloc, free->kfree, and realloc->krealloc. Pass 1
|
#
a11aaa81 |
| 12-Aug-2006 |
Matthew Dillon <dillon@dragonflybsd.org> |
VNode sequencing and locking - part 3/4.
VNode aliasing is handled by the namecache (aka nullfs), so there is no longer a need to have VOP_LOCK, VOP_UNLOCK, or VOP_ISSLOCKED as 'VOP' functions. Bot
VNode sequencing and locking - part 3/4.
VNode aliasing is handled by the namecache (aka nullfs), so there is no longer a need to have VOP_LOCK, VOP_UNLOCK, or VOP_ISSLOCKED as 'VOP' functions. Both NFS and DEADFS have been using standard locking functions for some time and are no longer special cases. Replace all uses with native calls to vn_lock, vn_unlock, and vn_islocked.
We can't have these as VOP functions anyhow because of the introduction of the new SYSLINK transport layer, since vnode locks are primarily used to protect the local vnode structure itself.
show more ...
|
#
fef8985e |
| 28-Jul-2006 |
Matthew Dillon <dillon@dragonflybsd.org> |
MASSIVE reorganization of the device operations vector. Change cdevsw to dev_ops. dev_ops is a syslink-compatible operations vector structure similar to the vop_ops structure used by vnodes.
Remov
MASSIVE reorganization of the device operations vector. Change cdevsw to dev_ops. dev_ops is a syslink-compatible operations vector structure similar to the vop_ops structure used by vnodes.
Remove a huge number of instances where a thread pointer is still being passed as an argument to various device ops and other related routines. The device OPEN and IOCTL calls now take a ucred instead of a thread pointer, and the CLOSE call no longer takes a thread pointer.
show more ...
|
#
66a1ddf5 |
| 18-Jul-2006 |
Matthew Dillon <dillon@dragonflybsd.org> |
Remove several layers in the vnode operations vector init code. Declare the operations vector directly instead of via a descriptor array. Remove most of the recalculation code, it stopped being nee
Remove several layers in the vnode operations vector init code. Declare the operations vector directly instead of via a descriptor array. Remove most of the recalculation code, it stopped being needed over a year ago.
This work is similar to what FreeBSD now does, but was developed along a different line. Ultimately our vop_ops will become SYSLINK ops for userland VFS and clustering support.
show more ...
|
#
acde96db |
| 06-May-2006 |
Matthew Dillon <dillon@dragonflybsd.org> |
Remove the thread argument from all mount->vfs_* function vectors, replacing it with a ucred pointer when applicable. This cleans up a considerable amount of VFS function code that previously delved
Remove the thread argument from all mount->vfs_* function vectors, replacing it with a ucred pointer when applicable. This cleans up a considerable amount of VFS function code that previously delved into the process structure to get the cred, though some code remains.
Get rid of the compatibility thread argument for hpfs and nwfs. Our lockmgr calls are now mostly compatible with NetBSD (which doesn't use a thread argument either).
Get rid of some complex junk in fdesc_statfs() that nobody uses.
Remove the thread argument from dounmount() as well as various other filesystem specific procedures (quota calls primarily) which no longer need it due to the lockmgr, VOP, and VFS cleanups. These cleanups also have the effect of making the VFS code slightly less dependant on the calling thread's context.
show more ...
|