Commit Graph

93 Commits

Author SHA1 Message Date
pjd
86c4fc0123 IFp4: Don't rely on disk IDs and always use vdev guids, which means always look
up for components by reading metadata. This might be slower when there are big
number of disks in the system, but is definiately more reliable.
2008-11-22 13:33:06 +00:00
pjd
eb404aafac Fix a warning on amd64 caused by using int for request argument instead of
unsigned long:

WARNING pid 12888 (zfs/zpool): ioctl sign-extension ioctl ffffffffcc285aXX

Reported by:	kris
2008-11-18 00:03:38 +00:00
pjd
bbe899b96e Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:

- Delegated Administration

	Allows regular users to perform ZFS operations, like file system
	creation, snapshot creation, etc.

- L2ARC

	Level 2 cache for ZFS - allows to use additional disks for cache.
	Huge performance improvements mostly for random read of mostly
	static content.

- slog

	Allow to use additional disks for ZFS Intent Log to speed up
	operations like fsync(2).

- vfs.zfs.super_owner

	Allows regular users to perform privileged operations on files stored
	on ZFS file systems owned by him. Very careful with this one.

- chflags(2)

	Not all the flags are supported. This still needs work.

- ZFSBoot

	Support to boot off of ZFS pool. Not finished, AFAIK.

	Submitted by:	dfr

- Snapshot properties

- New failure modes

	Before if write requested failed, system paniced. Now one
	can select from one of three failure modes:
	- panic - panic on write error
	- wait - wait for disk to reappear
	- continue - serve read requests if possible, block write requests

- Refquota, refreservation properties

	Just quota and reservation properties, but don't count space consumed
	by children file systems, clones and snapshots.

- Sparse volumes

	ZVOLs that don't reserve space in the pool.

- External attributes

	Compatible with extattr(2).

- NFSv4-ACLs

	Not sure about the status, might not be complete yet.

	Submitted by:	trasz

- Creation-time properties

- Regression tests for zpool(8) command.

Obtained from:	OpenSolaris
2008-11-17 20:49:29 +00:00
rodrigc
9f34c4004d Merge latest DTrace changes from Perforce.
Approved by:	jb
2008-11-05 19:35:09 +00:00
imp
6538abe8be Mips doesn't have a long double that's different in size from double. 2008-09-18 19:54:02 +00:00
attilio
a7d0f2bbf3 Add a missing file change from the VOP_GETATTR() argument axing. 2008-08-28 18:00:20 +00:00
jb
b96c45bfb8 Don't need to include vmem.h anymore. 2008-05-23 22:44:46 +00:00
jb
b64f9e972e Add the dtrace client app to the build. 2008-05-22 23:06:19 +00:00
jb
8a79fc60dc Add the DTrace build tools. 2008-05-22 08:04:49 +00:00
jb
c0a128b2a4 Oops, these files belonged under src/sys, not src. Sorry. 2008-05-22 07:46:01 +00:00
jb
f5c9887752 This commit was generated by cvs2svn to compensate for changes in r179191,
which included commits to RCS files with non-trunk default branches.
2008-05-22 07:00:07 +00:00
jb
d9b7f78c73 Vendor import (really!) of the OpenSolaris bits for DTrace. 2008-05-22 07:00:07 +00:00
jb
1f1c4e3e67 Add the DTrace libraries and D library scripts. 2008-05-22 04:26:42 +00:00
jb
d318ba34ed Add Solaris compatibility definitions for things we don't really want in
FreeBSD headers.
2008-05-21 00:26:38 +00:00
jb
3719d4861d * Handle the different ioctl design.
* Add a couple of FreeBSD action extensions.
2008-04-26 05:09:19 +00:00
jb
7bc32bb24c Make this file compile cleanly. 2008-04-26 05:07:54 +00:00
jb
66387460cd Leave out some header files. 2008-04-26 05:07:07 +00:00
jb
f16781162b * Handle building on FreeBSD for i386 and amd64.
* Add stubs for the other FreeBSD arches.
* Make the file compile cleanly.
2008-04-26 05:05:48 +00:00
jb
85357324f2 * Make this file compile cleanly.
* Add FreeBSD constructor/destructor definitions.
2008-04-26 05:03:22 +00:00
jb
625e71e402 * Add FreeBSD action extensions.
* Get the kernel module file name rather than hard-coding it like on Solaris.
* Use FreeBSD's process library API.
* Handle FreeBSD's different lock types.
* Get the list of loaded providers via a syscall.
2008-04-26 05:01:29 +00:00
jb
195c17a375 * Handle the different ioctl design.
* Make this file compile cleanly.
2008-04-26 04:57:45 +00:00
jb
14d04ad607 There is a lot of commented out code here which applies to future work
for userland tracing.

For now we need the basic functions to be in place so that DTrace can
be used for kernel tracing.
2008-04-26 04:56:46 +00:00
jb
ab746bef99 Leave out a header file. 2008-04-26 04:54:58 +00:00
jb
47935bea9d Merge FreeBSD include file changes with some code that should have come
in on the vendor branch.
2008-04-26 04:53:24 +00:00
jb
118f217464 * Use FreeBSD's process library instead of the Solaris one.
* There are a few placeholders in here for which there isn't libproc
  support code yet. This is relevent to userland tracing. This set of
  commits is designed to get kernel tracing up and running, with the
  userland stuff to follow later.
2008-04-26 04:51:45 +00:00
jb
729d998abb Leave out the hook that Solaris has into it's rtld. 2008-04-26 04:49:02 +00:00
jb
ba64b2a3fa * Add a couple of action definitions for FreeBSD extensions.
* Handle the different ioctl design.
* Add support for the get and set error location.
* Add support for freopen().
2008-04-26 04:47:16 +00:00
jb
2d46247bf5 * Handle the different ioctl design.
* Make the file compile cleanly.
2008-04-26 04:44:34 +00:00
jb
ace3d24b37 There are many places in libdtrace where errno can be set. When an
error is returned all the way back to the dtrace app, it's hard to
figure out where that error came from.

Add a couple of functions to get and set the error location which can
be optionally compiled into the library.
2008-04-26 04:43:19 +00:00
jb
fd0fbf31aa Add some error definitions for FreeBSD action extensions. 2008-04-26 04:40:38 +00:00
jb
befef11246 * Make this file compile cleanly.
* Use FreeBSD's kld syscalls to get kernel module information instead
  of using an object file system like Solaris uses.
2008-04-26 04:39:26 +00:00
jb
52ee64efcd * Handle the different ioctl design.
* Use FreeBSD's process library API.
* Make the file compile cleanly.
2008-04-26 04:37:01 +00:00
jb
5bfe3a7665 Just leave out a few includes to compile this on FreeBSD. 2008-04-26 04:34:50 +00:00
jb
f1ca15c2de * Get the maximum number of CPUs via a sysctl.
* Handle the different ioctl design.
* Support the freopen() changes.
* Use functions in FreeBSD's process library rather than the CDDL
  library that Solaris has which sits on top of their process file
  system and is therefore unsuitable for use on FreeBSD. The libproc
  API for FreeBSD is deliberately different to that on Solaris because
  Sun wouldn't release the libproc.h header under a BSD license.
2008-04-26 04:33:15 +00:00
jb
fe5ac1ba72 * Define YY_INPUT for flex since input() can't be re-defined.
* On FreeBSD define both LITTLE_ENDIAN and BIG_ENDIAN and then set the
  BYTE_ORDER to the one we are using. On Solaris they define one or
  the other but not both. For us to keep using FreeBSD header files,
  we need to use endian definitions the same way we do in pure BSD
  code.
2008-04-26 04:26:23 +00:00
jb
a656947bce Make this compile cleanly. 2008-04-26 04:22:32 +00:00
jb
2879d0ed4f Handle the different level of indirection between ioctl on SYSV vs BSD. 2008-04-26 04:20:11 +00:00
jb
37e61e49bf freopen() on FreeBSD behaves differently to the Solaris one. 2008-04-26 04:18:35 +00:00
jb
105579b1e6 * Use a portable POSIX timed wait.
* Handle the different ioctl format.
2008-04-26 04:16:17 +00:00
jb
71dafcd844 * Fix a function prototype.
* Allow for the different level of indirection between SYSV's ioctl and BSD's.
* Map a couple of sysconf definitions to one that FreeBSD has.
2008-04-26 04:13:23 +00:00
jb
db2123cf65 Simplify for FreeBSD for now, bypassing the multibyte char variables
that Solaris has. We may need to revisit this issue later.
2008-04-26 04:11:16 +00:00
jb
7063bf54fd Solaris has code which makes zlib optional, so they have to jump through
some hoops to get the compression functions. On FreeBSD have libz and
can just link against it.
2008-04-26 04:09:13 +00:00
jb
6e4e8caae1 'echo' behaviour differs between SYSV and BSD. 2008-04-26 04:03:58 +00:00
jb
17d482cf8c A lot of changes to make this code compile cleanly on FreeBSD. 2008-04-26 04:01:35 +00:00
jb
134952ed1b Use FreeBSD's libdwarf which is BSD licensed instead of the GPL'd one that
is used in Solaris.
2008-04-26 03:59:24 +00:00
jb
4e2e3671df We need to be consistent with prototype definitions. It isn't OK to
use 'const' and just override it whenever we feel like it. If we use
it at all, then we need to do it properly.

Add a couple of functions that were useful in getting this code ported.
2008-04-26 03:56:49 +00:00
jb
c8faa11c4f Make this file compile cleanly. 2008-04-26 03:54:23 +00:00
jb
4f3d158a74 Apply FreeBSD changes. 2008-04-26 03:47:34 +00:00
jb
36ed3b8831 On FreeBSD we can't afford to have a build fail simply because there
was some sort of CTF conversion error.
2008-04-26 03:44:47 +00:00
jb
221a9b981e Add a missing include file. We care about function prototype definitions. 2008-04-26 03:40:56 +00:00