<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/vm, branch release/11.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F11.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F11.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2016-08-10T20:31:10Z</updated>
<entry>
<title>MFC r303773</title>
<updated>2016-08-10T20:31:10Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2016-08-10T20:31:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=7769821166d94a3a0650c28c21ef1143df362385'/>
<id>urn:sha1:7769821166d94a3a0650c28c21ef1143df362385</id>
<content type='text'>
  Correct a spelling error.

Approved by:	re (kib)
</content>
</entry>
<entry>
<title>MFC r303448:</title>
<updated>2016-08-10T12:11:11Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2016-08-10T12:11:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=5f758babca7142cefe5eaf7b4ab624c82c5d85f7'/>
<id>urn:sha1:5f758babca7142cefe5eaf7b4ab624c82c5d85f7</id>
<content type='text'>
Do not delegate a work to geom event thread which can be done inline.

MFC r303703:
Explain why swapgeom_close_ev() is delegated.

Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>MFC r303492</title>
<updated>2016-08-05T17:49:13Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2016-08-05T17:49:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=817ff25c71db767db3a3b4f23fb35a418b06be0e'/>
<id>urn:sha1:817ff25c71db767db3a3b4f23fb35a418b06be0e</id>
<content type='text'>
  Remove a probe declaration that has been unused since r292469, when
  vm_pageout_grow_cache() was replaced.

Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>MFC r303446:</title>
<updated>2016-08-04T14:34:33Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2016-08-04T14:34:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=b2dae14c49d2218287ccd5c8aada8cc8d499803b'/>
<id>urn:sha1:b2dae14c49d2218287ccd5c8aada8cc8d499803b</id>
<content type='text'>
Fix style and typo.

Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>MFC r303356 and r303465</title>
<updated>2016-08-01T21:21:26Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2016-08-01T21:21:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=62648ee887158d59fe81b405cc797d838ef58a11'/>
<id>urn:sha1:62648ee887158d59fe81b405cc797d838ef58a11</id>
<content type='text'>
  Remove any mention of cache (PG_CACHE) pages from the comments in
  vm_pageout_scan().  That function has not cached pages since r284376.

Approved by:	re (kib)
</content>
</entry>
<entry>
<title>MFC r302567:</title>
<updated>2016-07-25T13:28:59Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2016-07-25T13:28:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=ca17b3e53b6ba6777d15e22dd7038194ab7cbda6'/>
<id>urn:sha1:ca17b3e53b6ba6777d15e22dd7038194ab7cbda6</id>
<content type='text'>
In vgonel(), postpone setting BO_DEAD until VOP_RECLAIM() is called,
if vnode is VMIO.  For VMIO vnodes, set BO_DEAD in vm_object_terminate().

MFC r302580:
Fix grammar.

Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>MFC r303101</title>
<updated>2016-07-23T21:56:52Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2016-07-23T21:56:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=82d9ac37733efb137df613bfec0c3ad1442fe9db'/>
<id>urn:sha1:82d9ac37733efb137df613bfec0c3ad1442fe9db</id>
<content type='text'>
  Add a comment describing the 'fast path' that was introduced in r270011.

Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>MFC r302980</title>
<updated>2016-07-21T20:11:43Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2016-07-21T20:11:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=79a180b126bc21df83390031b16a8a074b5d6c13'/>
<id>urn:sha1:79a180b126bc21df83390031b16a8a074b5d6c13</id>
<content type='text'>
  Break up vm_fault()'s implementation of the read-ahead and delete-behind
  optimizations into two distinct pieces.  The first piece consists of the
  code that should only be performed once per page fault and requires the
  map to be locked.  The second piece consists of the code that should be
  performed each time a pager is called on an object in the shadow chain.
  (This second piece expects the map to be unlocked.)

  Previously, the entire implementation could be executed multiple times.
  Moreover, the second and subsequent executions would occur with the map
  unlocked.  Usually, the ensuing unsynchronized accesses to the map were
  harmless because the map was not changing.  Nonetheless, it was possible
  for a use-after-free error to occur, where vm_fault() wrote to a freed
  map entry.  This change corrects that problem.

Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>Change the type of the map entry's next_read field from a vm_pindex_t to a</title>
<updated>2016-07-07T20:58:16Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2016-07-07T20:58:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=381b724280e79a651ff1baf00ba9d00581dcda97'/>
<id>urn:sha1:381b724280e79a651ff1baf00ba9d00581dcda97</id>
<content type='text'>
vm_offset_t.  (This field is used to detect sequential access to the virtual
address range represented by the map entry.)  There are three reasons to
make this change.  First, a vm_offset_t is smaller on 32-bit architectures.
Consequently, a struct vm_map_entry is now smaller on 32-bit architectures.
Second, a vm_offset_t can be written atomically, whereas it may not be
possible to write a vm_pindex_t atomically on a 32-bit architecture.  Third,
using a vm_pindex_t makes the next_read field dependent on which object in
the shadow chain is being read from.

Replace an "XXX" comment.

Reviewed by:	kib
Approved by:	re (gjb)
Sponsored by:	EMC / Isilon Storage Division
</content>
</entry>
<entry>
<title>Autotune the number of pages set aside for UMA startup based on the number</title>
<updated>2016-07-07T18:37:12Z</updated>
<author>
<name>Colin Percival</name>
<email>cperciva@FreeBSD.org</email>
</author>
<published>2016-07-07T18:37:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=34caa842a49c9d6902bb50ad7b93e8e32f5044af'/>
<id>urn:sha1:34caa842a49c9d6902bb50ad7b93e8e32f5044af</id>
<content type='text'>
of CPUs present.  On amd64 this unbreaks the boot for systems with 92 or
more CPUs; the limit will vary on other systems depending on the size of
their uma_zone and uma_cache structures.

The major consumer of pages during UMA startup is the 19 zone structures
which are set up before UMA has bootstrapped itself sufficiently to use
the rest of the available memory:  UMA Slabs, UMA Hash, 4 / 6 / 8 / 12 /
16 / 32 / 64 / 128 / 256 Bucket, vmem btag, VM OBJECT, RADIX NODE, MAP,
KMAP ENTRY, MAP ENTRY, VMSPACE, and fakepg.  If the zone structures occupy
more than one page, they will not share pages and the number of pages
currently needed for startup is 19 * pages_per_zone + N, where N is the
number of pages used for allocating other structures; on amd64 N = 3 at
present (2 pages are allocated for UMA Kegs, and one page for UMA Hash).

This patch adds a new definition UMA_BOOT_PAGES_ZONES, currently set to 32,
and if a zone structure does not fit into a single page sets boot_pages to
UMA_BOOT_PAGES_ZONES * pages_per_zone instead of UMA_BOOT_PAGES (which
remains at 64).  Consequently this patch has no effect on systems where the
zone structure fits into 2 or fewer pages (on amd64, 59 or fewer CPUs), but
increases boot_pages sufficiently on systems where the large number of CPUs
makes this structure larger.  It seems safe to assume that systems with 60+
CPUs can afford to set aside an additional 128kB of memory per 32 CPUs.

The vm.boot_pages tunable continues to override this computation, but is
unlikely to be necessary in the future.

Tested on:	EC2 x1.32xlarge
Relnotes:	FreeBSD can now boot on 92+ CPU systems without requiring
		vm.boot_pages to be manually adjusted.
Reviewed by:	jeff, alc, adrian
Approved by:	re (kib)
</content>
</entry>
</feed>
