Brian Behlendorf 86dd0fd922 Pre-allocate vdev I/O buffers
The vdev queue layer may require a small number of buffers
when attempting to create aggregate I/O requests.  Rather than
attempting to allocate them from the global zio buffers, which
is slow under memory pressure, it makes sense to pre-allocate
them because...

1) These buffers are short lived.  They are only required for
the life of a single I/O at which point they can be used by
the next I/O.

2) The maximum number of concurrent buffers needed by a vdev is
small.  It's roughly limited by the zfs_vdev_max_pending tunable
which defaults to 10.

By keeping a small list of these buffer per-vdev we can ensure
one is always available when we need it.  This significantly
reduces contention on the vq->vq_lock, because we no longer
need to perform a slow allocation under this lock.  This is
particularly important when memory is already low on the system.

It would probably be wise to extend the use of these buffers beyond
aggregate I/O and in to the raidz implementation.  The inability
to quickly allocate buffer for the parity stripes could result in
similiar problems.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2012-08-27 12:01:37 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 12:01:37 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 12:01:37 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 11:47:44 -07:00
2012-08-27 11:47:44 -07:00
2011-06-17 16:35:49 -07:00
2012-08-27 11:47:44 -07:00
2010-08-31 13:41:27 -07:00
2012-08-26 13:49:37 -07:00
2010-05-18 10:32:23 -07:00
2012-08-23 09:50:00 -07:00
2012-08-14 08:38:19 -07:00
2008-12-01 14:49:34 -08:00
2010-08-26 14:24:34 -07:00
2012-08-10 15:32:30 -07:00

Native ZFS for Linux! ZFS is an advanced file system and volume manager which was originally developed for Solaris. It has been successfully ported to FreeBSD and now there is a functional Linux ZFS kernel port too. The port currently includes a fully functional and stable SPA, DMU, and ZVOL with a ZFS Posix Layer (ZPL) on the way!

$ ./configure
$ make pkg

To copy the kernel code inside your kernel source tree for builtin compilation:

$ ./configure --enable-linux-builtin --with-linux=/usr/src/linux-...
$ ./copy-builtin /usr/src/linux-...

Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org

S
Description
No description provided
Readme 122 MiB
Languages
C 70.2%
Shell 19.9%
Assembly 5.1%
M4 1.9%
Python 1.6%
Other 1.3%