<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/dev/md, branch release/10.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F10.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F10.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2013-08-30T20:12:23Z</updated>
<entry>
<title>Give the page allocations initiated by the swap-backed md(4) a higher</title>
<updated>2013-08-30T20:12:23Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2013-08-30T20:12:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1a42d14a80482de31e79be33adbffba67fecac3b'/>
<id>urn:sha1:1a42d14a80482de31e79be33adbffba67fecac3b</id>
<content type='text'>
priority.  If the write is requested by a system daemon, sleeping
there would starve resources and cause deadlock.

Reported and tested by:	pho
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>Remove the deprecated VM_ALLOC_RETRY flag for the vm_page_grab(9).</title>
<updated>2013-08-22T07:39:53Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2013-08-22T07:39:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=5944de8ecd5c87f5c1d9a602c3557fd4d6829d0d'/>
<id>urn:sha1:5944de8ecd5c87f5c1d9a602c3557fd4d6829d0d</id>
<content type='text'>
The flag was mandatory since r209792, where vm_page_grab(9) was
changed to only support the alloc retry semantic.

Suggested and reviewed by:	alc
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>The soft and hard busy mechanism rely on the vm object lock to work.</title>
<updated>2013-08-09T11:11:11Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2013-08-09T11:11:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=c7aebda8a14a3bb94bb038df338549ccde5b56ea'/>
<id>urn:sha1:c7aebda8a14a3bb94bb038df338549ccde5b56ea</id>
<content type='text'>
Unify the 2 concept into a real, minimal, sxlock where the shared
acquisition represent the soft busy and the exclusive acquisition
represent the hard busy.
The old VPO_WANTED mechanism becames the hard-path for this new lock
and it becomes per-page rather than per-object.
The vm_object lock becames an interlock for this functionality:
it can be held in both read or write mode.
However, if the vm_object lock is held in read mode while acquiring
or releasing the busy state, the thread owner cannot make any
assumption on the busy state unless it is also busying it.

Also:
- Add a new flag to directly shared busy pages while vm_page_alloc
  and vm_page_grab are being executed.  This will be very helpful
  once these functions happen under a read object lock.
- Move the swapping sleep into its own per-object flag

The KPI is heavilly changed this is why the version is bumped.
It is very likely that some VM ports users will need to change
their own code.

Sponsored by:	EMC / Isilon storage division
Discussed with:	alc
Reviewed by:	jeff, kib
Tested by:	gavin, bapt (older version)
Tested by:	pho, scottl
</content>
</entry>
<entry>
<title>Fix the data corruption on the swap-backed md.</title>
<updated>2013-05-24T09:48:42Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2013-05-24T09:48:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=537cc627d7da93b40a5c23662284f70ed5b1fa01'/>
<id>urn:sha1:537cc627d7da93b40a5c23662284f70ed5b1fa01</id>
<content type='text'>
Assign the rv variable a success code if the pager was not asked for
the page.  Using an error code from the previous processed page caused
zeroing of the valid page, when e.g. the previous page was not
available in the pager.

Reported by:	lstewart
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
</content>
</entry>
<entry>
<title>Do not declare that preloaded md(4) supports unmapped bio requests, it</title>
<updated>2013-04-02T19:39:31Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2013-04-02T19:39:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1ef76554fbe316181437598d0acc1c1c29a33e32'/>
<id>urn:sha1:1ef76554fbe316181437598d0acc1c1c29a33e32</id>
<content type='text'>
does not.

Reported by:	&lt;mh@kernel32.de&gt;
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>Support unmapped i/o for the md(4).</title>
<updated>2013-03-19T14:53:23Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2013-03-19T14:53:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=59ec9023ca4a10af278ba3288ce02783f7f1321a'/>
<id>urn:sha1:59ec9023ca4a10af278ba3288ce02783f7f1321a</id>
<content type='text'>
The vnode-backed md(4) has to map the unmapped bio because VOP_READ()
and VOP_WRITE() interfaces do not allow to pass unmapped requests to
the filesystem. Vnode-backed md(4) uses pbufs instead of relying on
the bio_transient_map, to avoid usual md deadlock.

Sponsored by:	The FreeBSD Foundation
Tested by:	pho, scottl
</content>
</entry>
<entry>
<title>Switch the vm_object mutex to be a rwlock.  This will enable in the</title>
<updated>2013-03-09T02:32:23Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2013-03-09T02:32:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=89f6b8632cc94bca2738b4fcc26e1189ef4f5dde'/>
<id>urn:sha1:89f6b8632cc94bca2738b4fcc26e1189ef4f5dde</id>
<content type='text'>
future further optimizations where the vm_object lock will be held
in read mode most of the time the page cache resident pool of pages
are accessed for reading purposes.

The change is mostly mechanical but few notes are reported:
* The KPI changes as follow:
  - VM_OBJECT_LOCK() -&gt; VM_OBJECT_WLOCK()
  - VM_OBJECT_TRYLOCK() -&gt; VM_OBJECT_TRYWLOCK()
  - VM_OBJECT_UNLOCK() -&gt; VM_OBJECT_WUNLOCK()
  - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -&gt; VM_OBJECT_ASSERT_WLOCKED()
    (in order to avoid visibility of implementation details)
  - The read-mode operations are added:
    VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(),
    VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED()
* The vm/vm_pager.h namespace pollution avoidance (forcing requiring
  sys/mutex.h in consumers directly to cater its inlining functions
  using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h
  consumers now must include also sys/rwlock.h.
* zfs requires a quite convoluted fix to include FreeBSD rwlocks into
  the compat layer because the name clash between FreeBSD and solaris
  versions must be avoided.
  At this purpose zfs redefines the vm_object locking functions
  directly, isolating the FreeBSD components in specific compat stubs.

The KPI results heavilly broken by this commit.  Thirdy part ports must
be updated accordingly (I can think off-hand of VirtualBox, for example).

Sponsored by:	EMC / Isilon storage division
Reviewed by:	jeff
Reviewed by:	pjd (ZFS specific review)
Discussed with:	alc
Tested by:	pho
</content>
</entry>
<entry>
<title>Print correct unit number when attaching preloaded memory disks.</title>
<updated>2012-11-21T17:05:57Z</updated>
<author>
<name>Jaakko Heinonen</name>
<email>jh@FreeBSD.org</email>
</author>
<published>2012-11-21T17:05:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=341b240dc7d5f40f873ece04264bc29c85444b5b'/>
<id>urn:sha1:341b240dc7d5f40f873ece04264bc29c85444b5b</id>
<content type='text'>
Retire now unused mdunits variable.
</content>
</entry>
<entry>
<title>Disallow attaching preloaded memory disks via ioctl.</title>
<updated>2012-11-21T16:56:47Z</updated>
<author>
<name>Jaakko Heinonen</name>
<email>jh@FreeBSD.org</email>
</author>
<published>2012-11-21T16:56:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=734e78dfcb0b1c724a336101db3edd5519ef342f'/>
<id>urn:sha1:734e78dfcb0b1c724a336101db3edd5519ef342f</id>
<content type='text'>
- The feature is dangerous because the kernel code didn't check
  validity of the memory address provided from user space.
- It seems that mdconfig(8) never really supported attaching preloaded
  memory disks.
- Preloaded memory disks are automatically attached during md(4)
  initialization. Thus there shouldn't be much use for the feature.

PR:		kern/169683
Discussed on:	freebsd-hackers
</content>
</entry>
<entry>
<title>Zero the newly allocated md(4) swap-backed page to prevent random</title>
<updated>2012-11-08T03:17:41Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2012-11-08T03:17:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=e9f581ba3182ba0eb9dd658fe9442aff2b2733a6'/>
<id>urn:sha1:e9f581ba3182ba0eb9dd658fe9442aff2b2733a6</id>
<content type='text'>
kernel memory leakage to userspace. For the typical use, when a
filesystem put on the md disk, the change only results in CPU and
memory bandwidth spent to zero the page, since filsystems make sure
that user never see unwritten content.  But if md disk is used as raw
device by userspace, the garbage is exposed.

Reported by:	Paul Schenkeveld &lt;freebsd@psconsult.nl&gt;
MFC after:	2 weeks
</content>
</entry>
</feed>
