#
acada7ae |
| 03-Oct-2015 |
Alan Cox <alc@FreeBSD.org> |
Perform a single batched update to the object's paging-in-progress count rather than updating it for each page.
|
#
65dcb5bc |
| 01-Oct-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r288197 through r288456.
|
#
5a2b666c |
| 01-Oct-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
3138cd36 |
| 01-Oct-2015 |
Mark Johnston <markj@FreeBSD.org> |
As a step towards the elimination of PG_CACHED pages, rework the handling of POSIX_FADV_DONTNEED so that it causes the backing pages to be moved to the head of the inactive queue instead of being cac
As a step towards the elimination of PG_CACHED pages, rework the handling of POSIX_FADV_DONTNEED so that it causes the backing pages to be moved to the head of the inactive queue instead of being cached.
This affects the implementation of POSIX_FADV_NOREUSE as well, since it works by applying POSIX_FADV_DONTNEED to file ranges after they have been read or written. At that point the corresponding buffers may still be dirty, so the previous implementation would coalesce successive ranges and apply POSIX_FADV_DONTNEED to the result, ensuring that pages backing the dirty buffers would eventually be cached. To preserve this behaviour in an efficient manner, this change adds a new buf flag, B_NOREUSE, which causes the pages backing a VMIO buf to be placed at the head of the inactive queue when the buf is released. POSIX_FADV_NOREUSE then works by setting this flag in bufs that underlie the specified range.
Reviewed by: alc, kib Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3726
show more ...
|
#
0f405ee7 |
| 28-Sep-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Sync up with head (up to r288341).
|
#
4615830d |
| 27-Sep-2015 |
Jeff Roberson <jeff@FreeBSD.org> |
- Collapse vfs_vmio_truncate & vfs_vmio_release into a single function. - Allow vfs_vmio_invalidate() to free the pages, leaving us with a single loop and bufobj lock when B_NOCACHE/B_INVAL is us
- Collapse vfs_vmio_truncate & vfs_vmio_release into a single function. - Allow vfs_vmio_invalidate() to free the pages, leaving us with a single loop and bufobj lock when B_NOCACHE/B_INVAL is used. - Eliminate the special B_ASYNC handling on free that has not been relevant for some time. - Remove the extraneous page busy from vfs_vmio_truncate().
Reviewed by: kib Tested by: pho Sponsored by: EMC / Isilon storage division
show more ...
|
#
98e67009 |
| 24-Sep-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r288126 through r288196.
|
#
589c956a |
| 23-Sep-2015 |
Jeff Roberson <jeff@FreeBSD.org> |
- Fix a nonsense reordering that somehow slipped into my last diff.
Reported by: pho
|
#
8264830c |
| 23-Sep-2015 |
Jeff Roberson <jeff@FreeBSD.org> |
Some refactoring of the buf/vm interface. - Eliminate bogus page replacement that is inconsistently applied in the invalidation loop in brelse. This has been a no-op in modern times as biodon
Some refactoring of the buf/vm interface. - Eliminate bogus page replacement that is inconsistently applied in the invalidation loop in brelse. This has been a no-op in modern times as biodone() is responsible for cleaning up after bogus pages. This would've spammed the console with printfs at a minimum. - Allow the compiler and human readers alike to reason about allocbuf() by splitting it into constituent parts. - Separate the VM manipulating and buf manipulating code in brelse() and bufdone() so that the intentions are clear. This makes it evident that there are several duplicated buf pages loops that will be consolidated at a later time.
Reviewed by: kib Tested by: pho Sponsored by: EMC / Isilon Storage Division
show more ...
|
#
727dbcac |
| 22-Sep-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r288100 through r288125.
|
#
15aaea78 |
| 22-Sep-2015 |
Alan Cox <alc@FreeBSD.org> |
Change vm_page_unwire() such that it (1) accepts PQ_NONE as the specified queue and (2) returns a Boolean indicating whether the page's wire count transitioned to zero.
Exploit this change in vfs_vm
Change vm_page_unwire() such that it (1) accepts PQ_NONE as the specified queue and (2) returns a Boolean indicating whether the page's wire count transitioned to zero.
Exploit this change in vfs_vmio_release() to avoid pointlessly enqueueing a page that is about to be freed.
(An earlier version of this change was developed by attilio@ and kmacy@. Any errors in this version are my own.)
Reviewed by: kib Sponsored by: EMC / Isilon Storage Division
show more ...
|
#
f94594b3 |
| 12-Sep-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Finish merging from head, messed up in previous attempt
|
#
b5ff185e |
| 12-Sep-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
0e1e5c22 |
| 11-Sep-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r287527 through r287679.
|
#
7297c5e5 |
| 11-Sep-2015 |
Warner Losh <imp@FreeBSD.org> |
bufdonebio is now unused. Retire it too.
|
#
ad8d57a9 |
| 11-Sep-2015 |
Warner Losh <imp@FreeBSD.org> |
dev_strategy and dev_strategy_csw are unused since r281825. Remove them.
Differential Revision: https://reviews.freebsd.org/D3620
|
#
ab875b71 |
| 14-Aug-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Catch up with head, primarily for the 1.14.4.0 firmware.
|
Revision tags: release/10.2.0 |
|
#
1347814c |
| 07-Aug-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r285924 through r286421.
|
#
c023d823 |
| 30-Jul-2015 |
Roger Pau Monné <royger@FreeBSD.org> |
vfs: fill fallout from r286076
This right operator is >= not =>.
Reported by: cem
|
#
8f89a299 |
| 30-Jul-2015 |
Roger Pau Monné <royger@FreeBSD.org> |
vfs: fix off-by-one error in vfs_buf_check_mapped
The check added in r285872 can trigger for valid buffers if the buffer space used happens to be just after unmapped_buf in KVA space.
Discussed wit
vfs: fix off-by-one error in vfs_buf_check_mapped
The check added in r285872 can trigger for valid buffers if the buffer space used happens to be just after unmapped_buf in KVA space.
Discussed with: kib Sponsored by: Citrix Systems R&D
show more ...
|
#
6cebf7e2 |
| 29-Jul-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Move bufshutdown() out of the #ifdef INVARIANTS block.
|
#
98082691 |
| 29-Jul-2015 |
Jeff Roberson <jeff@FreeBSD.org> |
- Make 'struct buf *buf' private to vfs_bio.c. Having a global variable 'buf' is inconvenient and has lead me to some irritating to discover bugs over the years. It also makes it more challen
- Make 'struct buf *buf' private to vfs_bio.c. Having a global variable 'buf' is inconvenient and has lead me to some irritating to discover bugs over the years. It also makes it more challenging to refactor the buf allocation system. - Move swbuf and declare it as an extern in vfs_bio.c. This is still not perfect but better than it was before. - Eliminate the unused ffs function that relied on knowledge of the buf array. - Move the shutdown code that iterates over the buf array into vfs_bio.c.
Reviewed by: kib Sponsored by: EMC / Isilon Storage Division
show more ...
|
#
38750ada |
| 28-Jul-2015 |
Jeff Roberson <jeff@FreeBSD.org> |
- Eliminate the EMPTYKVA queue. It served as a cache of KVA allocations attached to bufs to avoid the overhead of the vm. This purposes is now better served by vmem. Freeing the kva immediat
- Eliminate the EMPTYKVA queue. It served as a cache of KVA allocations attached to bufs to avoid the overhead of the vm. This purposes is now better served by vmem. Freeing the kva immediately when a buf is destroyed leads to lower fragmentation and a much simpler scan algorithm.
Reviewed by: kib Sponsored by: EMC / Isilon Storage Division
show more ...
|
#
5f78ec1c |
| 28-Jul-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r285793 through r285923.
|
#
6fd04eff |
| 25-Jul-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
With the removal of b_saveaddr in the r285819, b_data must be reset to b_kvabase when the buffer is reclaimed. Otherwise, if b_data for the mapped buffer was adjusted with the page-offset portion of
With the removal of b_saveaddr in the r285819, b_data must be reset to b_kvabase when the buffer is reclaimed. Otherwise, if b_data for the mapped buffer was adjusted with the page-offset portion of b_offset, nothing would re-adjust the b_data, which breaks buffer management code which expects page-aligned b_data (see e.g. bpman_qenter(), which skips partial pages).
Fix a minor issue with the GB_KVAALLOC requests, which could result in returning the mapped buffer if the reused buffer is mapped and have the right amount of KVA reserved.
Improve assertion in the vfs_buf_check_mapped() to catch unmapped buffers which have their b_data incorrectly adjusted with offset.
Reported and tested by: pho (previous version) Reviewed by: jeff (previous version) Sponsored by: The FreeBSD Foundation
show more ...
|