<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/cddl/dev, branch releng/7.3</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>MFC several ZFS related commits:</title>
<updated>2010-01-06T08:18:49+00:00</updated>
<author>
<name>Alexander Leidinger</name>
<email>netchild@FreeBSD.org</email>
</author>
<published>2010-01-06T08:18:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e53ea618735fd21aacf7ae0088e0880b0e04d0be'/>
<id>e53ea618735fd21aacf7ae0088e0880b0e04d0be</id>
<content type='text'>
 - taskq changes
 - fixes for race conditions
 - locking fixes
 - bug fixes
 - ...

r185310:
---snip---
    Remove unused variable.

    Found with:	Coverity Prevent(tm)
    CID:	3669,3671
---snip---

r185319:
---snip---
    Fix locking (file descriptor table and Giant around VFS).

    Most submitted by:	kib
    Reviewed by:	kib
---snip---

r192689:
---snip---
    Fix comment.
---snip---

r193110:
---snip---
	work around snapshot shutdown race reported by Henri Hennebert
---snip---

r193440:
---snip---
    Support shared vnode locks for write operations when the offset is
    provided on filesystems that support it.  This really improves mysql
    + innodb performance on ZFS.

    Reviewed by:	jhb, kmacy, jeffr
---snip---
ATTENTION: this commit to releng7 does not allow shared vnode locks
(there are some VFS changes needed before it can be enabled), it only
provides the infrastructure and serves mostly as a diff reduction in
the ZFS code.
A comment has been added to the locking part to explain why no shared
locks are used.

r195627:
---snip---
    In nvpair_native_embedded_array(), meaningless pointers are zeroed.
    The programmer was aware that alignment was not guaranteed in the
    packed structure and used bzero() to NULL out the pointers.
    However, on ia64, the compiler is quite agressive in finding ILP
    and calls to bzero() are often replaced by simple assignments (i.e.
    stores). Especially when the width or size in question corresponds
    with a store instruction (i.e. st1, st2, st4 or st8).

    The problem here is not a compiler bug. The address of the memory
    to zero-out was given by '&amp;packed-&gt;nvl_priv' and given the type of
    the 'packed' pointer the compiler could assume proper alignment for
    the replacement of bzero() with an 8-byte wide store to be valid.
    The problem is with the programmer. The programmer knew that the
    address did not have the alignment guarantees needed for a regular
    assignment, but failed to inform the compiler of that fact. In
    fact, the programmer told the compiler the opposite: alignment is
    guaranteed.

    The fix is to avoid using a pointer of type "nvlist_t *" and
    instead use a "char *" pointer as the basis for calculating the
    address. This tells the compiler that only 1-byte alignment can
    be assumed and the compiler will either keep the bzero() call
    or instead replace it with a sequence of byte-wise stores. Both
    are valid.
---snip---

r195822:
---snip---
    Fix extattr_list_file(2) on ZFS in case the attribute directory
    doesn't exist and user doesn't have write access to the file.
    Without this fix, it returns bogus value instead of 0.  For some
    reason this didn't manifest on my kernel compiled with -O0.

    PR:			kern/136601
    Submitted by:	Jaakko Heinonen &lt;jh at saunalahti dot fi&gt;
---snip---

r195909
---snip---
    We don't support ephemeral IDs in FreeBSD and without this fix ZFS can
    panic when in zfs_fuid_create_cred() when userid is negative. It is
    converted to unsigned value which makes IS_EPHEMERAL() macro to
    incorrectly report that this is ephemeral ID. The most reasonable
    solution for now is to always report that the given ID is not ephemeral.

    PR:			kern/132337
    Submitted by:	Matthew West &lt;freebsd@r.zeeb.org&gt;
    Tested by:		Thomas Backman &lt;serenity@exscape.org&gt;, Michael Reifenberger &lt;mike@reifenberger.com&gt;
---snip---

r196291:
---snip---
    - Fix a race where /dev/zfs control device is created before ZFS is fully
      initialized. Also destroy /dev/zfs before doing other deinitializations.
    - Initialization through taskq is no longer needed and there is a race
      where one of the zpool/zfs command loads zfs.ko and tries to do some work
      immediately, but /dev/zfs is not there yet.

    Reported by:	pav
---snip---

r196269:
---snip---
    Fix misalignment in nvpair_native_embedded() caused by the compiler
    replacing the bzero(). See also revision 195627, which fixed the
    misalignment in nvpair_native_embedded_array().
---snip---

r196295:
---snip---
    Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
    replace it with wrappers around our taskqueue(9).
    To make it possible implement taskqueue_member() function which returns 1
    if the given thread was created by the given taskqueue.
---snip---
The taskqueue_member() function is different due to kproc/kthread changes
in releng8 and head, the function was...
Revieved by:	jhb

r196297:
---snip---
    Fix panic in zfs recv code. The last vnode (mountpoint's vnode) can have
    0 usecount.

    Reported by:	Thomas Backman &lt;serenity@exscape.org&gt;
---snip---

r196299:
---snip---
    - We need to recycle vnode instead of freeing znode.

    Submitted by:	avg

    - Add missing vnode interlock unlock.
    - Remove redundant znode locking.
---snip---

r196301:
---snip---
    If z_buf is NULL, we should free znode immediately.

    Noticed by:	avg
---snip---

r196307:
---snip---
    Manage asynchronous vnode release just like Solaris.

    Discussed with:	kmacy
---snip---
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - taskq changes
 - fixes for race conditions
 - locking fixes
 - bug fixes
 - ...

r185310:
---snip---
    Remove unused variable.

    Found with:	Coverity Prevent(tm)
    CID:	3669,3671
---snip---

r185319:
---snip---
    Fix locking (file descriptor table and Giant around VFS).

    Most submitted by:	kib
    Reviewed by:	kib
---snip---

r192689:
---snip---
    Fix comment.
---snip---

r193110:
---snip---
	work around snapshot shutdown race reported by Henri Hennebert
---snip---

r193440:
---snip---
    Support shared vnode locks for write operations when the offset is
    provided on filesystems that support it.  This really improves mysql
    + innodb performance on ZFS.

    Reviewed by:	jhb, kmacy, jeffr
---snip---
ATTENTION: this commit to releng7 does not allow shared vnode locks
(there are some VFS changes needed before it can be enabled), it only
provides the infrastructure and serves mostly as a diff reduction in
the ZFS code.
A comment has been added to the locking part to explain why no shared
locks are used.

r195627:
---snip---
    In nvpair_native_embedded_array(), meaningless pointers are zeroed.
    The programmer was aware that alignment was not guaranteed in the
    packed structure and used bzero() to NULL out the pointers.
    However, on ia64, the compiler is quite agressive in finding ILP
    and calls to bzero() are often replaced by simple assignments (i.e.
    stores). Especially when the width or size in question corresponds
    with a store instruction (i.e. st1, st2, st4 or st8).

    The problem here is not a compiler bug. The address of the memory
    to zero-out was given by '&amp;packed-&gt;nvl_priv' and given the type of
    the 'packed' pointer the compiler could assume proper alignment for
    the replacement of bzero() with an 8-byte wide store to be valid.
    The problem is with the programmer. The programmer knew that the
    address did not have the alignment guarantees needed for a regular
    assignment, but failed to inform the compiler of that fact. In
    fact, the programmer told the compiler the opposite: alignment is
    guaranteed.

    The fix is to avoid using a pointer of type "nvlist_t *" and
    instead use a "char *" pointer as the basis for calculating the
    address. This tells the compiler that only 1-byte alignment can
    be assumed and the compiler will either keep the bzero() call
    or instead replace it with a sequence of byte-wise stores. Both
    are valid.
---snip---

r195822:
---snip---
    Fix extattr_list_file(2) on ZFS in case the attribute directory
    doesn't exist and user doesn't have write access to the file.
    Without this fix, it returns bogus value instead of 0.  For some
    reason this didn't manifest on my kernel compiled with -O0.

    PR:			kern/136601
    Submitted by:	Jaakko Heinonen &lt;jh at saunalahti dot fi&gt;
---snip---

r195909
---snip---
    We don't support ephemeral IDs in FreeBSD and without this fix ZFS can
    panic when in zfs_fuid_create_cred() when userid is negative. It is
    converted to unsigned value which makes IS_EPHEMERAL() macro to
    incorrectly report that this is ephemeral ID. The most reasonable
    solution for now is to always report that the given ID is not ephemeral.

    PR:			kern/132337
    Submitted by:	Matthew West &lt;freebsd@r.zeeb.org&gt;
    Tested by:		Thomas Backman &lt;serenity@exscape.org&gt;, Michael Reifenberger &lt;mike@reifenberger.com&gt;
---snip---

r196291:
---snip---
    - Fix a race where /dev/zfs control device is created before ZFS is fully
      initialized. Also destroy /dev/zfs before doing other deinitializations.
    - Initialization through taskq is no longer needed and there is a race
      where one of the zpool/zfs command loads zfs.ko and tries to do some work
      immediately, but /dev/zfs is not there yet.

    Reported by:	pav
---snip---

r196269:
---snip---
    Fix misalignment in nvpair_native_embedded() caused by the compiler
    replacing the bzero(). See also revision 195627, which fixed the
    misalignment in nvpair_native_embedded_array().
---snip---

r196295:
---snip---
    Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
    replace it with wrappers around our taskqueue(9).
    To make it possible implement taskqueue_member() function which returns 1
    if the given thread was created by the given taskqueue.
---snip---
The taskqueue_member() function is different due to kproc/kthread changes
in releng8 and head, the function was...
Revieved by:	jhb

r196297:
---snip---
    Fix panic in zfs recv code. The last vnode (mountpoint's vnode) can have
    0 usecount.

    Reported by:	Thomas Backman &lt;serenity@exscape.org&gt;
---snip---

r196299:
---snip---
    - We need to recycle vnode instead of freeing znode.

    Submitted by:	avg

    - Add missing vnode interlock unlock.
    - Remove redundant znode locking.
---snip---

r196301:
---snip---
    If z_buf is NULL, we should free znode immediately.

    Noticed by:	avg
---snip---

r196307:
---snip---
    Manage asynchronous vnode release just like Solaris.

    Discussed with:	kmacy
---snip---
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC 195710: dtrace_gethrtime: improve scaling of TSC ticks to</title>
<updated>2009-07-22T15:41:37+00:00</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2009-07-22T15:41:37+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ea2f8bfa946f11498a0154adf5a2cc465eb7c7e0'/>
<id>ea2f8bfa946f11498a0154adf5a2cc465eb7c7e0</id>
<content type='text'>
nanoseconds

PR:		kern/127441
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nanoseconds

PR:		kern/127441
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC 194850: dtrace/amd64: fix virtual address checks</title>
<updated>2009-07-09T13:48:06+00:00</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2009-07-09T13:48:06+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=236c804010a454b42887aa94827ba0337ac82e45'/>
<id>236c804010a454b42887aa94827ba0337ac82e45</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC</title>
<updated>2008-08-27T04:41:15+00:00</updated>
<author>
<name>John Birrell</name>
<email>jb@FreeBSD.org</email>
</author>
<published>2008-08-27T04:41:15+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=144cd58d16b601d52d00c5a37c8e0226aa1ce55a'/>
<id>144cd58d16b601d52d00c5a37c8e0226aa1ce55a</id>
<content type='text'>
DTrace support.

Note that this defaults the 'make buildkernel' to build with CTF data so
that the release kernel and modules are DTrace-able.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DTrace support.

Note that this defaults the 'make buildkernel' to build with CTF data so
that the release kernel and modules are DTrace-able.
</pre>
</div>
</content>
</entry>
</feed>
