<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/md, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2014-08-04T01:14:27Z</updated>
<entry>
<title>MFC r269190:</title>
<updated>2014-08-04T01:14:27Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2014-08-04T01:14:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bcfefada8d082603756ae409e09009d7ce469685'/>
<id>urn:sha1:bcfefada8d082603756ae409e09009d7ce469685</id>
<content type='text'>
For md(4), posix shm(3) and tmpfs(5), free swap space used by paged in
dirty page, which is written by the process.
</content>
</entry>
<entry>
<title>MFC Alexander Motin's GEOM direct dispatch work:</title>
<updated>2014-01-07T01:32:23Z</updated>
<author>
<name>Scott Long</name>
<email>scottl@FreeBSD.org</email>
</author>
<published>2014-01-07T01:32:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1b4fd9eb9dc68d4e670fd189e02902682d3fc070'/>
<id>urn:sha1:1b4fd9eb9dc68d4e670fd189e02902682d3fc070</id>
<content type='text'>
r256603:
Introduce new function devstat_end_transaction_bio_bt(), adding new argument
to specify present time.  Use this function to move binuptime() out of lock,
substantially reducing lock congestion when slow timecounter is used.

r256606:
Move g_io_deliver() out of the lock, as required for direct dispatch.
Move g_destroy_bio() out too to reduce lock scope even more.

r256607:
Fix passing uninitialized bio_resid argument to g_trace().

r256610:
Add unmapped I/O support to GEOM RAID.

r256830:
Restore BIO_UNMAPPED and BIO_TRANSIENT_MAPPING in biodonne() when unmapping
temporary mapped buffer.  That fixes double unmap if biodone() called twice
for the same BIO (but with different done methods).

r256880:
Merge GEOM direct dispatch changes from the projects/camlock branch.

When safety requirements are met, it allows to avoid passing I/O requests
to GEOM g_up/g_down thread, executing them directly in the caller context.
That allows to avoid CPU bottlenecks in g_up/g_down threads, plus avoid
several context switches per I/O.

r259247:
Fix bug introduced at r256607.  We have to recalculate bp_resid here since
sizes of original and completed requests may differ due to end of media.

Testing of the stable/10 merge was done by Netflix, but all of the credit
goes to Alexander and iX Systems.

Submitted by:   mav
Sponsored by:   iX Systems
</content>
</entry>
<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/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/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/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/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/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/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/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/commit/?id=341b240dc7d5f40f873ece04264bc29c85444b5b'/>
<id>urn:sha1:341b240dc7d5f40f873ece04264bc29c85444b5b</id>
<content type='text'>
Retire now unused mdunits variable.
</content>
</entry>
</feed>
