<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/vm/vm_map.h, branch release/8.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F8.4.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F8.4.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2012-08-22T17:16:05Z</updated>
<entry>
<title>MFC r238502:</title>
<updated>2012-08-22T17:16:05Z</updated>
<author>
<name>Matthew D Fleming</name>
<email>mdf@FreeBSD.org</email>
</author>
<published>2012-08-22T17:16:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=bc59914d8df4f7263fa5b7d094ad209358736c1c'/>
<id>urn:sha1:bc59914d8df4f7263fa5b7d094ad209358736c1c</id>
<content type='text'>
Fix a bug with memguard(9) on 32-bit architectures without a
VM_KMEM_MAX_SIZE.

The code was not taking into account the size of the kernel_map, which
the kmem_map is allocated from, so it could produce a sub-map size too
large to fit.  The simplest solution is to ignore VM_KMEM_MAX entirely
and base the memguard map's size off the kernel_map's size, since this
is always relevant and always smaller.

Found by:	Justin Hibbits
</content>
</entry>
<entry>
<title>MFC r218966, r219124:</title>
<updated>2011-03-04T20:26:35Z</updated>
<author>
<name>Rebecca Cran</name>
<email>brucec@FreeBSD.org</email>
</author>
<published>2011-03-04T20:26:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=e08130305119bcdc4c7724fe8a12f074e94c8ab6'/>
<id>urn:sha1:e08130305119bcdc4c7724fe8a12f074e94c8ab6</id>
<content type='text'>
Change the return type of vmspace_swap_count to a long to match the other
vmspace_*_count functions.

While here, clean up some style(9) issues.

PR:	kern/152200
</content>
</entry>
<entry>
<title>MFC 214144:</title>
<updated>2011-01-25T19:44:42Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2011-01-25T19:44:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=ce2491b293398de07919677a520f7e3e6c0f36c0'/>
<id>urn:sha1:ce2491b293398de07919677a520f7e3e6c0f36c0</id>
<content type='text'>
- Make 'vm_refcnt' volatile so that compilers won't be tempted to treat
  its value as a loop invariant.  Currently this is a no-op because
  'atomic_cmpset_int()' clobbers all memory on current architectures.
- Use atomic_fetchadd_int() instead of an atomic_cmpset_int() loop to drop
  a reference in vmspace_free().
</content>
</entry>
<entry>
<title>MFC r216335:</title>
<updated>2010-12-19T06:07:35Z</updated>
<author>
<name>Max Laier</name>
<email>mlaier@FreeBSD.org</email>
</author>
<published>2010-12-19T06:07:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=a30cb0df09d88065187349db9bd492cd4a190de6'/>
<id>urn:sha1:a30cb0df09d88065187349db9bd492cd4a190de6</id>
<content type='text'>
  Fix a long standing (from the original 4.4BSD lite sources) race between
  vmspace_fork and vm_map_wire that would lead to "vm_fault_copy_wired: page
  missing" panics.  While faulting in pages for a map entry that is being
  wired down, mark the containing map as busy.  In vmspace_fork wait until
  the map is unbusy, before we try to copy the entries.

  Sponsored by:	Isilon Systems, Inc.

Approved by:	re (kib)
</content>
</entry>
<entry>
<title>Merge MIPS platform support to 8-STABLE.</title>
<updated>2010-11-27T12:26:40Z</updated>
<author>
<name>Jayachandran C.</name>
<email>jchandra@FreeBSD.org</email>
</author>
<published>2010-11-27T12:26:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=43f6e368b0a5523c2727da0b0248172b488b758e'/>
<id>urn:sha1:43f6e368b0a5523c2727da0b0248172b488b758e</id>
<content type='text'>
This commit merges the MIPS platform changes that was now stable in
-CURRENT into 8-STABLE. The MIPS changesets are too many (~400) to list
here. But the changesets merged in this commit that affect other platforms
are summarized below:

r204635 : (changes to sys/dev/hwpmc, lib/libpmc, sys/sys/pmc.h)
Add support for hwpmc(4) on the MIPS 24K, 32 bit, embedded processor.

r205845: (changes to sys/modules/Makefile)
Fix for building modules on mips and arm.

r204031: (changes to sys/kern/link_elf_obj.c)
printf fix, as part of kernel module support for MIPS.

r206404: (changes to sys/arm/include/bus.h)
Add BUS_SPACE_UNRESTRICTED and define it to be ~0, just like all the
other platforms - for arm and mips.

r206819: (changes to sys/vm/)
Add VMFS_TLB_ALIGNED_SPACE option and kmem_alloc_nofault_space(), which
is used to allocate kernel stack address on MIPS.

r208165, r211087: (sys/kern/subr_smp.c, sys/kern/sched_ule.c)
Enable ULE scheduler for MIPS, Fix for an issue in SMP when 32 cpus are
enabled.

r208659: (sys/{ia64/ia64,mips/mips,sun4v/sun4v}/pmap.c)
Simplify the inner loop of get_pv_entry()

r208794: (changes to sys/vm/)
Make vm_contig_grow_cache() extern, and use it when vm_phys_alloc_contig()
fails to allocate MIPS page table pages.

r210327:  (changes to sys/vm/)
Support for MIPS page table page allocation.  Add a new function 'vm_page_t
vm_page_alloc_freelist(int flind, int order, int req)' to vm/vm_page.c to
allocate a page from a specified freelist, and other related changes.

Reviewed by:	alc(vm changes only)
Approved by:	kib(re), alc(vm), imp(mips), jmallett(mips), gnn(mips pmc)
</content>
</entry>
<entry>
<title>MFC r212824:</title>
<updated>2010-10-02T17:41:47Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2010-10-02T17:41:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f7e332040f10f4de1129c28f58876eb51273eb32'/>
<id>urn:sha1:f7e332040f10f4de1129c28f58876eb51273eb32</id>
<content type='text'>
Adopt the deferring of object deallocation for the deleted map entries
on map unlock to the lock downgrade and later read unlock operation.

MFC r212868 (by alc) [1]:
Make refinements to r212824. Redo the implementation of
vm_map_unlock_and_wait().

Approved by:	alc [1]
</content>
</entry>
<entry>
<title>Implement global and per-uid accounting of the anonymous memory. Add</title>
<updated>2009-06-23T20:45:22Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2009-06-23T20:45:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=3364c323e6ad143e0e95e2d1c7c3c3b880515860'/>
<id>urn:sha1:3364c323e6ad143e0e95e2d1c7c3c3b880515860</id>
<content type='text'>
rlimit RLIMIT_SWAP that limits the amount of swap that may be reserved
for the uid.

The accounting information (charge) is associated with either map entry,
or vm object backing the entry, assuming the object is the first one
in the shadow chain and entry does not require COW. Charge is moved
from entry to object on allocation of the object, e.g. during the mmap,
assuming the object is allocated, or on the first page fault on the
entry. It moves back to the entry on forks due to COW setup.

The per-entry granularity of accounting makes the charge process fair
for processes that change uid during lifetime, and decrements charge
for proper uid when region is unmapped.

The interface of vm_pager_allocate(9) is extended by adding struct ucred *,
that is used to charge appropriate uid when allocation if performed by
kernel, e.g. md(4).

Several syscalls, among them is fork(2), may now return ENOMEM when
global or per-uid limits are enforced.

In collaboration with:	pho
Reviewed by:	alc
Approved by:	re (kensmith)
</content>
</entry>
<entry>
<title>When vm_map_wire(9) is allowed to skip holes in the wired region, skip</title>
<updated>2009-04-10T10:16:03Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2009-04-10T10:16:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=6d7e80912385a084d2634e557751d8a4e025a8aa'/>
<id>urn:sha1:6d7e80912385a084d2634e557751d8a4e025a8aa</id>
<content type='text'>
the mappings without any of read and execution rights, in particular,
the PROT_NONE entries. This makes mlockall(2) work for the process
address space that has such mappings.

Since protection mode of the entry may change between setting
MAP_ENTRY_IN_TRANSITION and final pass over the region that records
the wire status of the entries, allocate new map entry flag
MAP_ENTRY_WIRE_SKIPPED to mark the skipped PROT_NONE entries.

Reported and tested by:	Hans Ottevanger &lt;fbsdhackers beasties demon nl&gt;
Reviewed by:	alc
MFC after:	3 weeks
</content>
</entry>
<entry>
<title>Revert the addition of the freelist argument for the vm_map_delete()</title>
<updated>2009-02-24T20:57:43Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2009-02-24T20:57:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=655c349022fdd59abd960c2fec435cef2a84ba06'/>
<id>urn:sha1:655c349022fdd59abd960c2fec435cef2a84ba06</id>
<content type='text'>
function, done in r188334. Instead, collect the entries that shall be
freed, in the deferred_freelist member of the map. Automatically purge
the deferred freelist when map is unlocked.

Tested by:	pho
Reviewed by:	alc
</content>
</entry>
<entry>
<title>Do not call vm_object_deallocate() from vm_map_delete(), because we</title>
<updated>2009-02-08T20:39:17Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2009-02-08T20:39:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=897d81a0202f3b068edfd20736cb55137bc88a12'/>
<id>urn:sha1:897d81a0202f3b068edfd20736cb55137bc88a12</id>
<content type='text'>
hold the map lock there, and might need the vnode lock for OBJT_VNODE
objects. Postpone object deallocation until caller of vm_map_delete()
drops the map lock. Link the map entries to be freed into the freelist,
that is released by the new helper function vm_map_entry_free_freelist().

Reviewed by:	tegge, alc
Tested by:	pho
</content>
</entry>
</feed>
