History log of /dragonfly/sys/vfs/ufs/ffs_alloc.c (Results 1 – 25 of 44)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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
# dda92f98 28-Apr-2020 Sascha Wildner <saw@online.de>

Fix various grammatical issues in our messages, documentation etc.


Revision tags: v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3
# dae65060 20-Oct-2019 zrj <rimvydas.jasinskas@gmail.com>

<sys/sysref.h>: Switch to lighter <sys/_malloc.h> header.

* Make <sys/sysref2.h> a kernel only header.
* Remove sys/types.h includes that follow <sys/param.h> in devfs(5).
* Add sys/malloc.h incl

<sys/sysref.h>: Switch to lighter <sys/_malloc.h> header.

* Make <sys/sysref2.h> a kernel only header.
* Remove sys/types.h includes that follow <sys/param.h> in devfs(5).
* Add sys/malloc.h includes where it is actually used in sources.

While there, minor whitespace cleanup.

show more ...


Revision tags: 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
# 50a1f598 02-Oct-2018 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Remove duplicate TRIM, only trim with the 'trim' mount opt

* ffs_blkfree_cg() was improperly issuing a synchronous
VOP_FREEBLKS() on the underlying device. This issues a
BUF_CMD_FREEBL

kernel - Remove duplicate TRIM, only trim with the 'trim' mount opt

* ffs_blkfree_cg() was improperly issuing a synchronous
VOP_FREEBLKS() on the underlying device. This issues a
BUF_CMD_FREEBLKS stategy op to the underlying device,
which is executed unconditionally. This basically runs
an unconditional TRIM whether the 'trim' mount flag is
specified or not.

Remove the VOP_FREEBLKS() call.

* For softupdates operation, ffs_blkfree() handles the
'trim' mount flag by issuing a BUF_CMD_FREEBLKS and
sequencing the call to ffs_blkfree_cg() when it completes.

When 'trim' was enabled, *two* TRIM operations were being
executed on the underlying device, and prior to our fix,
if 'trim' was not enabled, *one* TRIM operation would
still be executed instead of zero.

* In many situations... possibly even most situations,
trim operations seriously reduce performance due to
being serialized by AHCI or by the target device. It
is not as useful as people often think it should be
on normal filesystems.

* The removal of the unconditional TRIM significantly improves
UFS performance, meaning primarily installkernel's
since DragonFly doesn't use UFS for its main filesystem by
default any more.

* The 'trim' mount option for UFS will still work as advertised
when coupled with softupdates.

show more ...


Revision tags: v5.2.2, v5.2.1
# c309c6d4 07-Apr-2018 Sascha Wildner <saw@online.de>

ufs: Rename a number of UFS constants throughout the tree.

ROOTINO -> UFS_ROOTINO
WINO -> UFS_WINO
NDADDR -> UFS_NDADDR
NIADDR -> UFS_NIADDR
MAXSYMLINKLEN -> UFS1_MAXSYM

ufs: Rename a number of UFS constants throughout the tree.

ROOTINO -> UFS_ROOTINO
WINO -> UFS_WINO
NDADDR -> UFS_NDADDR
NIADDR -> UFS_NIADDR
MAXSYMLINKLEN -> UFS1_MAXSYMLINKLEN

This helps to better sepate them from identically named EXT2 constants
which I'll rename in a later commit.

It also helps with my makefs(8) port.

I went with FreeBSD's names, so it is UFS1_MAXSYMLINKLEN even though
we'll probably never have UFS2, but since they are in public headers,
some stuff in dports might benefit from it in the future.

For safety, bump <sys/param.h> too.

show more ...


Revision tags: v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0
# d2812084 01-Oct-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Remove repurposebuf

* Remove the repurposebuf hack to prepare for the buffer cache
KVABIO API, which is a better solution.


Revision tags: v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0
# dc6a6bd2 18-Jul-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Refactor buffer cache code in preparation for vm_page repurposing

* Keep buffer_map but no longer use vm_map_findspace/vm_map_delete to manage
buffer sizes. Instead, reserve MAXBSIZE of

kernel - Refactor buffer cache code in preparation for vm_page repurposing

* Keep buffer_map but no longer use vm_map_findspace/vm_map_delete to manage
buffer sizes. Instead, reserve MAXBSIZE of unallocated KVM for each buffer.

* Refactor the buffer cache management code. bufspace exhaustion now has
hysteresis, bufcount works just about the same.

* Start work on the repurposing code (currently disabled).

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
# e3fc69eb 27-Dec-2014 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix incorrect assertion in ffs_reallocblks()

* When softupdates is not enabled reallocblks should not try to free
an unallocated block. This appears to be possible if the reallocation

kernel - Fix incorrect assertion in ffs_reallocblks()

* When softupdates is not enabled reallocblks should not try to free
an unallocated block. This appears to be possible if the reallocation
range covers part of a file with a hole in it. FSX appears to reveal
this case.

* It is also possible that this case is due to some interaction between
the DragonFly buffer cache and UFS that breaks b_offset assignment
assumptions made by UFS, but I couldn't find any particular vector
for the possibility.

show more ...


Revision tags: v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, 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, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3
# dc71b7ab 31-May-2013 Justin C. Sherrill <justin@shiningsilence.com>

Correct BSD License clause numbering from 1-2-4 to 1-2-3.

Apparently everyone's doing it:
http://svnweb.freebsd.org/base?view=revision&revision=251069

Submitted-by: "Eitan Adler" <lists at eitanadl

Correct BSD License clause numbering from 1-2-4 to 1-2-3.

Apparently everyone's doing it:
http://svnweb.freebsd.org/base?view=revision&revision=251069

Submitted-by: "Eitan Adler" <lists at eitanadler.com>

show more ...


Revision tags: v3.4.2
# 2702099d 06-May-2013 Justin C. Sherrill <justin@shiningsilence.com>

Remove advertising clause from all that isn't contrib or userland bin.

By: Eitan Adler <lists@eitanadler.com>


Revision tags: v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2
# f0accfd0 10-Dec-2012 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Make UFS ihash table per-mount

* Make the UFS ihash table per-mount.

* Scale down the size of the hash table a bit so we have ~4 inodes per
bucket instead of ~1. Works fine for a single

kernel - Make UFS ihash table per-mount

* Make the UFS ihash table per-mount.

* Scale down the size of the hash table a bit so we have ~4 inodes per
bucket instead of ~1. Works fine for a single mount and this way
multiple UFS mounts don't make [as] bloated kmalloc calls.

Submitted-by: vsrinivas

show more ...


Revision tags: v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 4090d6ff 03-Jan-2012 Sascha Wildner <saw@online.de>

kernel: Use NULL for pointers.


# 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.


# 54341a3b 15-Nov-2011 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Greatly improve shared memory fault rate concurrency / shared tokens

This commit rolls up a lot of work to improve postgres database operations
and the system in general. With this changes

kernel - Greatly improve shared memory fault rate concurrency / shared tokens

This commit rolls up a lot of work to improve postgres database operations
and the system in general. With this changes we can pgbench -j 8 -c 40 on
our 48-core opteron monster at 140000+ tps, and the shm vm_fault rate
hits 3.1M pps.

* Implement shared tokens. They work as advertised, with some cavets.

It is acceptable to acquire a shared token while you already hold the same
token exclusively, but you will deadlock if you acquire an exclusive token
while you hold the same token shared.

Currently exclusive tokens are not given priority over shared tokens so
starvation is possible under certain circumstances.

* Create a critical code path in vm_fault() using the new shared token
feature to quickly fault-in pages which already exist in the VM cache.
pmap_object_init_pt() also uses the new feature.

This increases fault-in concurrency by a ridiculously huge amount,
particularly on SHM segments (say when you have a large number of postgres
clients). Scaling for large numbers of clients on large numbers of
cores is significantly improved.

This also increases fault-in concurrency for MAP_SHARED file maps.

* Expand the breadn() and cluster_read() APIs. Implement breadnx() and
cluster_readx() which allows a getblk()'d bp to be passed. If *bpp is not
NULL a bp is being passed in, otherwise the routines call getblk().

* Modify the HAMMER read path to use the new API. Instead of calling
getcacheblk() HAMMER now calls getblk() and checks the B_CACHE flag.
This gives getblk() a chance to regenerate a fully cached buffer from
VM backing store without having to acquire any hammer-related locks,
resulting in even faster operation.

* If kern.ipc.shm_use_phys is set to 2 the VM pages will be pre-allocated.
This can take quite a while for a large map and also lock the machine
up for a few seconds. Defaults to off.

* Reorder the smp_invltlb()/cpu_invltlb() combos in a few places, running
cpu_invltlb() last.

* An invalidation interlock might be needed in pmap_enter() under certain
circumstances, enable the code for now.

* vm_object_backing_scan_callback() was failing to properly check the
validity of a vm_object after acquiring its token. Add the required
check + some debugging.

* Make vm_object_set_writeable_dirty() a bit more cache friendly.

* The vmstats sysctl was scanning every process's vm_map (requiring a
vm_map read lock to do so), which can stall for long periods of time
when the system is paging heavily. Change the mechanic to a LWP flag
which can be tested with minimal locking.

* Have the phys_pager mark the page as dirty too, to make sure nothing
tries to free it.

* Remove the spinlock in pmap_prefault_ok(), since we do not delete page
table pages it shouldn't be needed.

* Add a required cpu_ccfence() in pmap_inval.c. The code generated prior
to this fix was still correct, and this makes sure it stays that way.

* Replace several manual wiring cases with calls to vm_page_wire().

show more ...


# efe855e1 10-Oct-2011 Sascha Wildner <saw@online.de>

kernel/ufs: Fix mount_point access in ffs_blkfree() when using softdep.

Was going through inode->vnode->v_mount, but vnode was bad so
v_mount was NULL reference.

New way to get mount point: inode->

kernel/ufs: Fix mount_point access in ffs_blkfree() when using softdep.

Was going through inode->vnode->v_mount, but vnode was bad so
v_mount was NULL reference.

New way to get mount point: inode->i_devvp->v_mount.

Reported-by: Thomas Nikolajsen
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue2142>
Submitted-by: Tim Bisson <bissont@mac.com>

show more ...


# e0fb398b 07-Oct-2011 Tim <bissont@mac.com>

TRIM support

Signed-off-by: Samuel J. Greear <sjg@thesjg.com>


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
# b9b0a6d0 23-Jul-2009 Matthew Dillon <dillon@apollo.backplane.com>

HAMMER / VFS_VGET - Add optional dvp argument to VFS_VGET(). Fix readdirplus

* VGET is used by NFS to acquire a vnode given an inode number. HAMMER
requires additional information to determine t

HAMMER / VFS_VGET - Add optional dvp argument to VFS_VGET(). Fix readdirplus

* VGET is used by NFS to acquire a vnode given an inode number. HAMMER
requires additional information to determine the PFS the inode is being
acquired from.

Add an optional directory vnode argument to the VGET. If non-NULL, HAMMER
will extract the PFS information from this vnode.

* Adjust NFS to pass the dvp to VGET when doing a readdirplus.

Note that the PFS is already encoded in file handles, but readdirplus
acquires the attributes for each directory entry it scans (readdir does
not). This fixes readdirplus for NFS served HAMMER PFS exports.

show more ...


Revision tags: v2.3.2, v2.3.1, v2.2.1, v2.2.0, v2.3.0, v2.1.1, v2.0.1
# 72b70bdb 29-Dec-2006 Sascha Wildner <swildner@dragonflybsd.org>

Use %j to print an ino_t.


# 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).


# f3dc9d06 14-Oct-2006 Matthew Dillon <dillon@dragonflybsd.org>

Remove inode free race warning messages. These were originally added to
determine how often an inode free race occured and are no longer needed.
The actual handling of an inode free race is still in

Remove inode free race warning messages. These were originally added to
determine how often an inode free race occured and are no longer needed.
The actual handling of an inode free race is still in place.

show more ...


# cddfb7bb 03-Sep-2006 Matthew Dillon <dillon@dragonflybsd.org>

Rename functions to avoid conflicts with libc.


# 0ced1954 03-Sep-2006 Matthew Dillon <dillon@dragonflybsd.org>

Rename functions to avoid conflicts with libc.


# ac690a1d 26-May-2006 Matthew Dillon <dillon@dragonflybsd.org>

Remove FFS function hooks used by UFS. Simply make direct calls from ufs
to ffs. The original ufs routines don't exist anymore anyhow and EXT2 no
longer references UFS files directly. UFS and FFS

Remove FFS function hooks used by UFS. Simply make direct calls from ufs
to ffs. The original ufs routines don't exist anymore anyhow and EXT2 no
longer references UFS files directly. UFS and FFS have been 'one' filesystem
for two decades. These hooks are no longer needed.

show more ...


# 10f3fee5 30-Apr-2006 Matthew Dillon <dillon@dragonflybsd.org>

Replace the the buffer cache's B_READ, B_WRITE, B_FORMAT, and B_FREEBUF
b_flags with a separate b_cmd field. Use b_cmd to test for I/O completion
as well (getting rid of B_DONE in the process). Thi

Replace the the buffer cache's B_READ, B_WRITE, B_FORMAT, and B_FREEBUF
b_flags with a separate b_cmd field. Use b_cmd to test for I/O completion
as well (getting rid of B_DONE in the process). This further simplifies
the setup required to issue a buffer cache I/O.

Remove a redundant header file, bus/isa/i386/isa_dma.h and merge any
discrepancies into bus/isa/isavar.h.

Give ISADMA_READ/WRITE/RAW their own independant flag definitions instead of
trying to overload them on top of B_READ, B_WRITE, and B_RAW. Add a
routine isa_dmabp() which takes a struct buf pointer and returns the ISA
dma flags associated with the operation.

Remove the 'clear_modify' argument to vfs_busy_pages(). Instead,
vfs_busy_pages() asserts that the buffer's b_cmd is valid and then uses
it to determine the action it must take.

show more ...


# 70371608 28-Apr-2006 Matthew Dillon <dillon@dragonflybsd.org>

Get rid of the remaining buffer background bitmap code. It's been turned
off for a while, and it represents a fairly severe hack to the buffer
cache code that just complicates further development.


# 50e58362 03-Apr-2006 Matthew Dillon <dillon@dragonflybsd.org>

A number of structures related to UFS and QUOTAS have changed name.

dinode -> ufs1_dinode
dqblk -> ufs_dqblk (and other quota related structures)

In addition, a large number of UFS related structur

A number of structures related to UFS and QUOTAS have changed name.

dinode -> ufs1_dinode
dqblk -> ufs_dqblk (and other quota related structures)

In addition, a large number of UFS related structures and procedures have
been prefixed with 'ufs_' to allow us to split off EXT2FS.

ufs_daddr_t has been moved out of sys/types.h and into vfs/ufs/dinode.h.

The #ifndef header file checks for UFS have been normalized.

show more ...


12