#
320557 |
|
01-Jul-2017 |
alc |
MFC r320049 Pages that are passed to swap_pager_putpages() should already be fully dirty. Assert that they are fully dirty rather than redundantly calling vm_page_dirty() on them.
|
#
320552 |
|
01-Jul-2017 |
alc |
MFC r320181 Eliminate an unused macro.
|
#
319965 |
|
15-Jun-2017 |
alc |
MFC r318995 In r118390, the swap pager's approach to striping swap allocation over multiple devices was changed. However, swapoff_one() was not fully and correctly converted. In particular, with r118390's introduction of a per- device blist, the maximum swap block size, "dmmax", became irrelevant to swapoff_one()'s operation. Moreover, swapoff_one() was performing out-of- range operations on the per-device blist that were silently ignored by blist_fill().
This change corrects both of these problems with swapoff_one(), which will allow us to potentially increase MAX_PAGEOUT_CLUSTER. Previously, swapoff_one() would panic inside of blist_fill() if you increased MAX_PAGEOUT_CLUSTER.
MFC r319001 After r118390, the variable "dmmax" was neither the correct strip size nor the correct maximum block size. Moreover, after r318995, it serves no purpose except to provide information to user space through a read- sysctl.
This change eliminates the variable "dmmax" but retains the sysctl. It also corrects the value returned by the sysctl.
MFC r319604 Halve the memory being internally allocated by the blist allocator. In short, half of the memory that is allocated to implement the radix tree is wasted because we did not change "u_daddr_t" to be a 64-bit unsigned int when we changed "daddr_t" to be a 64-bit (signed) int. (See r96849 and r96851.)
MFC r319612 When the function blist_fill() was added to the kernel in r107913, the swap pager used a different scheme for striping the allocation of swap space across multiple devices. And, although blist_fill() was intended to support fill operations with large counts, the old striping scheme never performed a fill larger than the stripe size. Consequently, the misplacement of a sanity check in blst_meta_fill() went undetected. Now, moving forward in time to r118390, a new scheme for striping was introduced that maintained a blist allocator per device, but as noted in r318995, swapoff_one() was not fully and correctly converted to the new scheme. This change completes what was started in r318995 by fixing the underlying bug in blst_meta_fill() that stops swapoff_one() from simply performing a single blist_fill() operation.
MFC r319627 Starting in r118390, swaponsomething() began to reserve the blocks at the beginning of a swap area for a disk label. However, neither r118390 nor r118544, which increased the reservation from one to two blocks, correctly accounted for these blocks when updating the variable "swap_pager_avail". This change corrects that error.
MFC r319655 Originally, this file could be compiled as a user-space application for testing purposes. However, over the years, various changes to the kernel have broken this feature. This revision applies some fixes to get user- space compilation working again. There are no changes in this revision to code that is used by the kernel.
|
#
310472 |
|
23-Dec-2016 |
kib |
MFC r310182: In swp_pager_meta_free_all(), fix type of the index variable. Style.
|
#
305803 |
|
14-Sep-2016 |
kib |
MFC r305129: Make swapoff reliable.
|
#
302027 |
|
20-Jun-2016 |
kib |
MFC r301851: Explicitely initialize sw_alloc_sx.
|
#
287850 |
|
16-Sep-2015 |
imp |
MFC 281310, 287567:
r287567 | imp | 2015-09-08 11:47:56 -0600 (Tue, 08 Sep 2015) | 16 lines
Mark the swap pager as direct dispatch compatible.
r281310 | mav | 2015-04-09 07:09:05 -0600 (Thu, 09 Apr 2015) | 4 lines
Remove sleeps from geom_up thread on device destruction.
|
#
284665 |
|
21-Jun-2015 |
trasz |
MFC r282213:
Add kern.racct.enable tunable and RACCT_DISABLED config option. The point of this is to be able to add RACCT (with RACCT_DISABLED) to GENERIC, to avoid having to rebuild the kernel to use rctl(8).
MFC r282901:
Build GENERIC with RACCT/RCTL support by default. Note that it still needs to be enabled by adding "kern.racct.enable=1" to /boot/loader.conf.
Note those two are MFC-ed together, because the latter one changes the name of RACCT_DISABLED option to RACCT_DEFAULT_TO_DISABLED. Should have committed the renaming separately...
Relnotes: yes Sponsored by: The FreeBSD Foundation
|
#
284100 |
|
06-Jun-2015 |
jhb |
MFC 261811,282660,282706: Place VM objects on the object list when created and never remove them.
261811: Fix function name in KASSERT().
282660: Place VM objects on the object list when created and never remove them. This is ok since objects come from a NOFREE zone and allows objects to be locked while traversing the object list without triggering a LOR.
Ensure that objects on the list are marked DEAD while free or stillborn, and that they have a refcount of zero. This required updating most of the pagers to explicitly mark an object as dead when deallocating it. (Only the vnode pager did this previously.)
282706: Satisfy vm_object uma zone destructor requirements after r282660 when vnode object creation raced.
|
#
281305 |
|
09-Apr-2015 |
mav |
MFC r280702: Make swapper release orphaned (lost) GEOM provider.
Swap device is still reported as enabled, and system still may crash later if some swapped-out kernel pages were lost with the device, but at least GEOM and CAM can now release the lost disk, allowing it to be reconnected.
|
#
274375 |
|
11-Nov-2014 |
kib |
MFC r274100: Fix mis-spelling of bits and types names in the default_pager_putpages() and swap_pager_putpages().
|
#
265932 |
|
12-May-2014 |
des |
MFH (r264966): add sysctl OIDs for actual swap zone size and capacity
|
#
287850 |
|
16-Sep-2015 |
imp |
MFC 281310, 287567:
r287567 | imp | 2015-09-08 11:47:56 -0600 (Tue, 08 Sep 2015) | 16 lines
Mark the swap pager as direct dispatch compatible.
r281310 | mav | 2015-04-09 07:09:05 -0600 (Thu, 09 Apr 2015) | 4 lines
Remove sleeps from geom_up thread on device destruction.
|
#
284665 |
|
21-Jun-2015 |
trasz |
MFC r282213:
Add kern.racct.enable tunable and RACCT_DISABLED config option. The point of this is to be able to add RACCT (with RACCT_DISABLED) to GENERIC, to avoid having to rebuild the kernel to use rctl(8).
MFC r282901:
Build GENERIC with RACCT/RCTL support by default. Note that it still needs to be enabled by adding "kern.racct.enable=1" to /boot/loader.conf.
Note those two are MFC-ed together, because the latter one changes the name of RACCT_DISABLED option to RACCT_DEFAULT_TO_DISABLED. Should have committed the renaming separately...
Relnotes: yes Sponsored by: The FreeBSD Foundation
|
#
284100 |
|
06-Jun-2015 |
jhb |
MFC 261811,282660,282706: Place VM objects on the object list when created and never remove them.
261811: Fix function name in KASSERT().
282660: Place VM objects on the object list when created and never remove them. This is ok since objects come from a NOFREE zone and allows objects to be locked while traversing the object list without triggering a LOR.
Ensure that objects on the list are marked DEAD while free or stillborn, and that they have a refcount of zero. This required updating most of the pagers to explicitly mark an object as dead when deallocating it. (Only the vnode pager did this previously.)
282706: Satisfy vm_object uma zone destructor requirements after r282660 when vnode object creation raced.
|
#
281305 |
|
09-Apr-2015 |
mav |
MFC r280702: Make swapper release orphaned (lost) GEOM provider.
Swap device is still reported as enabled, and system still may crash later if some swapped-out kernel pages were lost with the device, but at least GEOM and CAM can now release the lost disk, allowing it to be reconnected.
|
#
274375 |
|
11-Nov-2014 |
kib |
MFC r274100: Fix mis-spelling of bits and types names in the default_pager_putpages() and swap_pager_putpages().
|
#
265932 |
|
12-May-2014 |
des |
MFH (r264966): add sysctl OIDs for actual swap zone size and capacity
|