Author: alc
Date: Thu May 24 20:43:41 2018
New Revision: 334180
URL: https://svnweb.freebsd.org/changeset/base/334180
Log:
Eliminate an unused parameter from vm_fault_populate().
Reviewed by: kib
MFC after:10 days
Modified:
head/sys/vm/vm_fault.c
Modified: head/sys/vm/vm_fault.c
Author: alc
Date: Sat May 26 02:59:34 2018
New Revision: 334233
URL: https://svnweb.freebsd.org/changeset/base/334233
Log:
Use pmap_enter(..., psind=1) in vm_fault_populate() on amd64. While
superpage mappings were already being created by automatic promotion in
vm_fault_populate(), this ch
Author: alc
Date: Mon May 28 04:38:10 2018
New Revision: 334274
URL: https://svnweb.freebsd.org/changeset/base/334274
Log:
Eliminate duplicate assertions. We assert at the start of vm_fault_hold()
that the map entry is wired if the caller passes the flag VM_FAULT_WIRE.
Eliminate the same as
Author: alc
Date: Mon May 28 16:23:39 2018
New Revision: 334287
URL: https://svnweb.freebsd.org/changeset/base/334287
Log:
Addendum to r334233. In vm_fault_populate(), since the page lock is held,
we must use vm_page_xunbusy_maybelocked() rather than vm_page_xunbusy() to
unbusy the page.
Author: alc
Date: Fri Jun 1 21:37:42 2018
New Revision: 334499
URL: https://svnweb.freebsd.org/changeset/base/334499
Log:
Only a small subset of mmap(2)'s flags should be used in combination with
the flag MAP_GUARD. Rather than enumerating the flags that are not
allowed, enumerate the flag
Author: alc
Date: Mon Jun 4 16:28:06 2018
New Revision: 334621
URL: https://svnweb.freebsd.org/changeset/base/334621
Log:
Use a single, consistent approach to returning success versus failure in
vm_map_madvise(). Previously, vm_map_madvise() used a traditional Unix-
style "return (0);" to
Author: alc
Date: Thu Jun 7 02:54:11 2018
New Revision: 334752
URL: https://svnweb.freebsd.org/changeset/base/334752
Log:
pidctrl_daemon() implements a variation on the classical, discrete PID
controller that tries to handle early invocations of the controller,
in other words, invocations b
Author: alc
Date: Thu Jun 7 07:48:50 2018
New Revision: 334769
URL: https://svnweb.freebsd.org/changeset/base/334769
Log:
When pidctrl_daemon() is called multiple times within an interval, it
should use the cumulative error to calculate the output.
Modified:
head/sys/kern/subr_pidctrl.c
M
> On Jun 14, 2018, at 5:54 PM, Steven Hartland
> wrote:
>
> Out of interest, how would this exhibit itself?
>
A panic in vm_page_insert_after().
> On 14/06/2018 20:41, Konstantin Belousov wrote:
>> Author: kib
>> Date: Thu Jun 14 19:41:02 2018
>> New Revision: 335171
>> URL: https://svnweb.
> On Jun 14, 2018, at 6:07 PM, Alan Cox wrote:
>
>
>> On Jun 14, 2018, at 5:54 PM, Steven Hartland
>> mailto:steven.hartl...@multiplay.co.uk>>
>> wrote:
>>
>> Out of interest, how would this exhibit itself?
>>
>
> A panic in
Author: alc
Date: Tue Nov 28 17:46:03 2017
New Revision: 326329
URL: https://svnweb.freebsd.org/changeset/base/326329
Log:
When the swap pager allocates space on disk, it requests contiguous
blocks in a single call to blist_alloc(). However, when it frees
that space, it previously called bl
Author: alc
Date: Tue Dec 19 17:07:50 2017
New Revision: 326982
URL: https://svnweb.freebsd.org/changeset/base/326982
Log:
Document the semantics of atomic_thread_fence operations.
Add atomic_load_ and atomic_store_, and explain why they
exist.
Define the synchronizes-with relationsh
On 12/19/2017 21:00, Bruce Evans wrote:
> On Tue, 19 Dec 2017, Alan Cox wrote:
>
>> Log:
>> ...
>> Reorder and revise some of the existing text. For example, more
>> precisely describe when ordinary accesses are atomic.
>> ...
>&
Author: alc
Date: Mon Dec 25 19:36:04 2017
New Revision: 327179
URL: https://svnweb.freebsd.org/changeset/base/327179
Log:
Make the vm object bypass and collapse counters per CPU.
Requested by: mjg
Reviewed by: kib, markj
MFC after:1 week
Differential Revision:https://rev
Author: alc
Date: Tue Dec 26 17:59:37 2017
New Revision: 327218
URL: https://svnweb.freebsd.org/changeset/base/327218
Log:
Refactor vm_map_find(), creating a separate function, vm_map_alignspace(),
for finding aligned free space in the given map. With this change, we
always return KERN_NO_S
Author: alc
Date: Fri Dec 29 17:02:22 2017
New Revision: 327349
URL: https://svnweb.freebsd.org/changeset/base/327349
Log:
After r327168, the variable "vm_pageout_wanted" can be static.
MFC after:2 weeks
Modified:
head/sys/vm/vm_pageout.c
head/sys/vm/vm_pageout.h
Modified: head/sy
Author: alc
Date: Sun Dec 31 04:01:47 2017
New Revision: 327410
URL: https://svnweb.freebsd.org/changeset/base/327410
Log:
Previously, swap_pager_copy() freed swap blocks one at at time, via
swp_pager_meta_ctl(), with no opportunity to recognize freeing of
consecutive blocks and free fewer b
Author: alc
Date: Sun Dec 31 21:36:42 2017
New Revision: 327450
URL: https://svnweb.freebsd.org/changeset/base/327450
Log:
The variable "minslptime" is pointless and always has been, ever since its
introduction in r83366. (At that time, this code appeared in vm/vm_glue.c,
because vm/vm_swap
Author: alc
Date: Thu Jan 4 03:16:32 2018
New Revision: 327538
URL: https://svnweb.freebsd.org/changeset/base/327538
Log:
Once we have decided to swap out a process, don't delay the laundering of
its per-thread kernel stack pages by making them pass through the inactive
queue first. Instea
On 01/15/2018 20:40, Nathan Whitehorn wrote:
>
>
> On 01/15/18 15:42, Konstantin Belousov wrote:
>> On Mon, Jan 15, 2018 at 03:20:49PM -0800, Nathan Whitehorn wrote:
>>> Fair enough. Here's a patch with a new flag (DIRECT_MAP_AVAILABLE).
>>> I've
>>> also retooled the sfbuf code to use this rather
On 01/18/2018 09:35, Konstantin Belousov wrote:
> On Thu, Jan 18, 2018 at 07:24:11AM -0800, Nathan Whitehorn wrote:
>>
>> On 01/17/18 01:44, Konstantin Belousov wrote:
>>> On Tue, Jan 16, 2018 at 09:30:29PM -0800, Nathan Whitehorn wrote:
On 01/16/18 11:32, Marius Strobl wrote:
> On Mon, Ja
Author: alc
Date: Sat May 27 16:40:00 2017
New Revision: 318995
URL: https://svnweb.freebsd.org/changeset/base/318995
Log:
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 p
Author: alc
Date: Sat May 27 21:46:00 2017
New Revision: 319001
URL: https://svnweb.freebsd.org/changeset/base/319001
Log:
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 provi
Author: alc
Date: Sat Jun 3 16:19:33 2017
New Revision: 319540
URL: https://svnweb.freebsd.org/changeset/base/319540
Log:
The data type returned by vmoff() is too narrow in its range. This could
break the transmission of files longer than 4 GB on 32-bit architectures.
Reviewed by: gleb
Author: alc
Date: Sat Jun 3 17:24:13 2017
New Revision: 319542
URL: https://svnweb.freebsd.org/changeset/base/319542
Log:
Eliminate duplication of the pmap and pv list unlock operations in
pmap_enter() by implementing a single return path. Otherwise, the
duplication will only increase with
Author: alc
Date: Mon Jun 5 17:14:16 2017
New Revision: 319604
URL: https://svnweb.freebsd.org/changeset/base/319604
Log:
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
Author: alc
Date: Mon Jun 5 18:07:56 2017
New Revision: 319605
URL: https://svnweb.freebsd.org/changeset/base/319605
Log:
The variable "breakout" is used like a Boolean, so actually define it as
one.
Reviewed by: kib
MFC after:5 days
Modified:
head/sys/vm/vm_pageout.c
Modified
Author: alc
Date: Tue Jun 6 03:32:17 2017
New Revision: 319612
URL: https://svnweb.freebsd.org/changeset/base/319612
Log:
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 devic
Author: alc
Date: Tue Jun 6 16:52:07 2017
New Revision: 319627
URL: https://svnweb.freebsd.org/changeset/base/319627
Log:
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 increas
Author: alc
Date: Wed Jun 7 16:04:34 2017
New Revision: 319655
URL: https://svnweb.freebsd.org/changeset/base/319655
Log:
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 featur
Author: alc
Date: Thu Jun 8 15:48:54 2017
New Revision: 319699
URL: https://svnweb.freebsd.org/changeset/base/319699
Log:
When allocating swap blocks, if the available number of free blocks in a
subtree is already zero, then setting the "largest contiguous free block"
hint for that subtree
> On Jun 8, 2017, at 2:37 PM, John Baldwin wrote:
>
> On Thursday, June 08, 2017 12:55:45 PM Bryan Drewery wrote:
>> On 6/8/17 12:18 PM, John Baldwin wrote:
>>> Author: jhb
>>> Date: Thu Jun 8 16:18:41 2017
>>> New Revision: 319702
>>> URL: https://svnweb.freebsd.org/changeset/base/319702
>>>
> On Jun 8, 2017, at 5:28 PM, John Baldwin wrote:
>
> On Thursday, June 08, 2017 05:07:40 PM Alan Cox wrote:
>>
>>> On Jun 8, 2017, at 2:37 PM, John Baldwin wrote:
>>>
>>> On Thursday, June 08, 2017 12:55:45 PM Bryan Drewery wrote:
>>>>
Author: alc
Date: Fri Jun 9 16:19:24 2017
New Revision: 319755
URL: https://svnweb.freebsd.org/changeset/base/319755
Log:
blist_fill()'s return type is too narrow. blist_fill() accepts a 64-bit
quantity as the size of the range to fill, but returns a 32-bit quantity
as the number of blocks
Author: alc
Date: Fri Jun 9 17:19:27 2017
New Revision: 319756
URL: https://svnweb.freebsd.org/changeset/base/319756
Log:
Style and comment fixes only.
Reviewed by: kib
MFC after:6 weeks
Modified:
head/sys/sys/blist.h
Modified: head/sys/sys/blist.h
==
Author: alc
Date: Sat Jun 10 16:11:39 2017
New Revision: 319793
URL: https://svnweb.freebsd.org/changeset/base/319793
Log:
Remove an unnecessary field from struct blist. (The comment describing
what this field represented was also inaccurate.) Suggested by: kib
In r178792, blist_create(
Author: alc
Date: Tue Jun 13 17:49:49 2017
New Revision: 319905
URL: https://svnweb.freebsd.org/changeset/base/319905
Log:
Reduce the frequency of hint updates on allocation without incurring
additional allocation overhead. Previously, blst_meta_alloc() updated the
hint after every successf
On 06/14/2017 06:04, Hans Petter Selasky wrote:
> On 06/13/17 19:49, Alan Cox wrote:
>> +#definebitcount64(x)__bitcount64((uint64_t)(x))
>
> bitcount64() is already defined by sys/libkern.h - use that?
This snippet appears in code that is only used when compiling this
On 06/14/2017 10:52, Rodney W. Grimes wrote:
> [ Charset UTF-8 unsupported, converting... ]
>> On 06/14/2017 06:04, Hans Petter Selasky wrote:
>>> On 06/13/17 19:49, Alan Cox wrote:
>>>> +#definebitcount64(x)__bitcount64((uint64_t)(x))
>>> bitcount6
Author: alc
Date: Sat Jun 17 03:05:25 2017
New Revision: 320049
URL: https://svnweb.freebsd.org/changeset/base/320049
Log:
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.
Author: alc
Date: Sun Jun 18 18:23:39 2017
New Revision: 320077
URL: https://svnweb.freebsd.org/changeset/base/320077
Log:
Change blist_alloc()'s allocation policy from first-fit to next-fit so
that disk writes are more likely to be sequential. This change is
beneficial on both the solid st
Author: alc
Date: Wed Jun 21 03:55:45 2017
New Revision: 320181
URL: https://svnweb.freebsd.org/changeset/base/320181
Log:
Eliminate an unused macro.
MFC after:3 days
Modified:
head/sys/vm/swap_pager.c
Modified: head/sys/vm/swap_pager.c
==
Author: alc
Date: Sat Jun 24 17:10:33 2017
New Revision: 320319
URL: https://svnweb.freebsd.org/changeset/base/320319
Log:
Increase the pageout cluster size to 32 pages.
Decouple the pageout cluster size from the size of the hash table entry
used by the swap pager for mapping (object, pin
Author: alc
Date: Tue Jun 27 17:45:26 2017
New Revision: 320417
URL: https://svnweb.freebsd.org/changeset/base/320417
Log:
Address the remaining integer overflow issues with the "skip" parameters
and "next_skip" variables. The "skip" value in struct blist has long been
a 64-bit quantity but
Author: alc
Date: Fri Jun 30 15:49:36 2017
New Revision: 320498
URL: https://svnweb.freebsd.org/changeset/base/320498
Log:
Clear the MAP_WIREFUTURE flag on the vm map in exec_new_vmspace() when it
recycles the current vm space. Otherwise, an mlockall(MCL_FUTURE) could
still be in effect on
Author: alc
Date: Sat Jul 1 05:27:40 2017
New Revision: 320527
URL: https://svnweb.freebsd.org/changeset/base/320527
Log:
Change blst_leaf_alloc() to handle a cursor argument, and to improve
performance.
To find in the leaf bitmap all ranges of sufficient length, use a doubling
strateg
Author: alc
Date: Sat Jul 1 16:42:09 2017
New Revision: 320546
URL: https://svnweb.freebsd.org/changeset/base/320546
Log:
When "force" is specified to pmap_invalidate_cache_range(), the given
start address is not required to be page aligned. However, the loop
within pmap_invalidate_cache_r
Author: alc
Date: Sat Jul 1 23:39:49 2017
New Revision: 320560
URL: https://svnweb.freebsd.org/changeset/base/320560
Log:
Modify vm_map_growstack() to protect itself from the possibility of the
gap entry in the vm map being smaller than the sysctl-derived stack guard
size. Otherwise, the v
Author: alc
Date: Fri Jul 14 02:15:48 2017
New Revision: 320980
URL: https://svnweb.freebsd.org/changeset/base/320980
Log:
Generalize vm_page_ps_is_valid() to support testing other predicates on
the (super)page, renaming the function to vm_page_ps_test().
Reviewed by: kib, markj
MFC af
Author: alc
Date: Sat Jul 15 01:49:54 2017
New Revision: 321003
URL: https://svnweb.freebsd.org/changeset/base/321003
Log:
Extract the innermost loop of pmap_remove() out into its own function,
pmap_remove_ptes(). (This new function will also be used by an upcoming
change to pmap_enter() th
Author: alc
Date: Sat Jul 15 16:42:55 2017
New Revision: 321015
URL: https://svnweb.freebsd.org/changeset/base/321015
Log:
Style-only change: Consistently use the variable name "pdpg" throughout
this file. Previously, half of the pointers to a vm_page being used as
a page directory page wer
Author: alc
Date: Sat Oct 29 19:22:38 2016
New Revision: 308096
URL: https://svnweb.freebsd.org/changeset/base/308096
Log:
With one exception, "hardfault" is used like a "bool". Change that
exception and make it a "bool".
Reviewed by: kib
MFC after:7 days
Modified:
head/sys/vm/
Author: alc
Date: Sat Oct 29 21:01:49 2016
New Revision: 308098
URL: https://svnweb.freebsd.org/changeset/base/308098
Log:
The "lookup_is_valid" field is used as a "bool". Make it one.
Convert vm_fault_hold()'s Boolean variables that are only used
internally to "bool". Add a comment des
Author: alc
Date: Sun Oct 30 19:15:59 2016
New Revision: 308112
URL: https://svnweb.freebsd.org/changeset/base/308112
Log:
Merge and sort vm_fault_hold()'s "int" variable definitions.
Reviewed by: kib
MFC after:7 days
Modified:
head/sys/vm/vm_fault.c
Modified: head/sys/vm/vm_faul
Author: alc
Date: Tue Nov 1 17:11:10 2016
New Revision: 308174
URL: https://svnweb.freebsd.org/changeset/base/308174
Log:
Move and revise a comment about the relation between the object's paging-
in-progress count and the vnode. Prior to r188331, we always acquired
the vnode lock before in
Author: alc
Date: Thu Nov 3 16:44:55 2016
New Revision: 308261
URL: https://svnweb.freebsd.org/changeset/base/308261
Log:
In vm_fault()'s loop over the shadow chain, move a comment describing our
invariants to a better place. Also, add two comments concerning the
relationship between the m
Author: alc
Date: Wed Nov 9 18:48:37 2016
New Revision: 308474
URL: https://svnweb.freebsd.org/changeset/base/308474
Log:
Introduce a new page queue, PQ_LAUNDRY, for storing unreferenced, dirty
pages, specificially, dirty pages that have passed once through the inactive
queue. A new, dedic
Author: alc
Date: Tue Nov 15 18:22:50 2016
New Revision: 308691
URL: https://svnweb.freebsd.org/changeset/base/308691
Log:
Remove most of the code for implementing PG_CACHED pages. (This change does
not remove user-space visible fields from vm_cnt or all of the references to
cached pages fr
Author: alc
Date: Wed Nov 16 02:51:24 2016
New Revision: 308710
URL: https://svnweb.freebsd.org/changeset/base/308710
Log:
Update to reflect the demise of PG_CACHED pages.
Reviewed by: kib, markj
Sponsored by: Dell EMC Isilon
Differential Revision:https://reviews.freebsd.org/D8
On 11/16/2016 10:59, Ruslan Bukin wrote:
> On Wed, Nov 16, 2016 at 06:53:43PM +0200, Konstantin Belousov wrote:
>> On Wed, Nov 16, 2016 at 01:37:18PM +, Ruslan Bukin wrote:
>>> I have a panic with this on RISC-V. Any ideas ?
>> How did you checked that the revision you replied to, makes the pro
On 11/16/2016 11:52, Ruslan Bukin wrote:
> On Wed, Nov 16, 2016 at 04:59:39PM +, Ruslan Bukin wrote:
>> On Wed, Nov 16, 2016 at 06:53:43PM +0200, Konstantin Belousov wrote:
>>> On Wed, Nov 16, 2016 at 01:37:18PM +, Ruslan Bukin wrote:
I have a panic with this on RISC-V. Any ideas ?
>>>
On 11/18/2016 04:22, Ruslan Bukin wrote:
> On Thu, Nov 17, 2016 at 10:51:40AM -0600, Alan Cox wrote:
>> On 11/16/2016 11:52, Ruslan Bukin wrote:
>>> On Wed, Nov 16, 2016 at 04:59:39PM +, Ruslan Bukin wrote:
>>>> On Wed, Nov 16, 2016 at 06:53:43PM +0200, Konstanti
Author: alc
Date: Tue Nov 22 18:13:46 2016
New Revision: 309017
URL: https://svnweb.freebsd.org/changeset/base/309017
Log:
Remove PG_CACHED-related fields from struct vmmeter, because they are no
longer used. More precisely, they are always zero because the code that
decremented and increme
Author: alc
Date: Sun Nov 27 01:42:53 2016
New Revision: 309203
URL: https://svnweb.freebsd.org/changeset/base/309203
Log:
Recursion on the free page queue mutex occurred when UMA needed to allocate
a new page of radix trie nodes to complete a vm_radix_insert() operation
that was requested b
Author: alc
Date: Sun Nov 27 01:44:31 2016
New Revision: 309204
URL: https://svnweb.freebsd.org/changeset/base/309204
Log:
The function vm_page_cache() no longer exists. Remove its man page.
Deleted:
head/share/man/man9/vm_page_cache.9
Modified:
head/ObsoleteFiles.inc
head/share/man/man9
Author: alc
Date: Thu Dec 1 17:26:37 2016
New Revision: 309365
URL: https://svnweb.freebsd.org/changeset/base/309365
Log:
During vm_page_cache()'s call to vm_radix_insert(), if vm_page_alloc() was
called to allocate a new page of radix trie nodes, there could be a call to
vm_radix_remove()
Author: alc
Date: Fri Dec 2 16:29:30 2016
New Revision: 309416
URL: https://svnweb.freebsd.org/changeset/base/309416
Log:
Eliminate a stale comment; vm_radix_prealloc() was replaced in r254141.
MFC after:3 days
Modified:
head/sys/vm/vm_radix.c
Modified: head/sys/vm/vm_radix.c
=
Author: alc
Date: Thu Dec 8 04:29:29 2016
New Revision: 309703
URL: https://svnweb.freebsd.org/changeset/base/309703
Log:
Previously, vm_radix_remove() would panic if the radix trie didn't
contain a vm_page_t at the specified index. However, with this
change, vm_radix_remove() no longer pa
On 12/08/2016 07:01, Slawa Olhovchenkov wrote:
> On Thu, Dec 08, 2016 at 04:29:29AM +0000, Alan Cox wrote:
>
>> Author: alc
>> Date: Thu Dec 8 04:29:29 2016
>> New Revision: 309703
>> URL: https://svnweb.freebsd.org/changeset/base/309703
>>
>> Log:
>
Author: alc
Date: Sun Dec 11 19:24:41 2016
New Revision: 309855
URL: https://svnweb.freebsd.org/changeset/base/309855
Log:
When tmpfs and POSIX shm pagein a page for the sole purpose of performing
truncation, immediately queue the page for asynchronous laundering rather
than making the page
Author: alc
Date: Mon Dec 12 17:47:09 2016
New Revision: 309898
URL: https://svnweb.freebsd.org/changeset/base/309898
Log:
Eliminate every mention of PG_CACHED pages from the comments in the machine-
independent layer of the virtual memory system. Update some of the nearby
comments to elimi
Author: alc
Date: Fri Oct 4 03:55:53 2019
New Revision: 353096
URL: https://svnweb.freebsd.org/changeset/base/353096
Log:
The implementation of arm64_tlb_flushID_SE() was removed from cpufunc_asm.S
in r313347. Eliminate its declaration from this file.
MFC after:1 week
Modified:
h
Author: alc
Date: Mon Oct 7 03:37:28 2019
New Revision: 353162
URL: https://svnweb.freebsd.org/changeset/base/353162
Log:
Eliminate a redundant bzero(). The l0 page table page was already zeroed
by efi_1t1_page().
MFC after:1 week
Modified:
head/sys/arm64/arm64/efirt_machdep.c
M
Author: alc
Date: Mon Oct 7 04:22:03 2019
New Revision: 353163
URL: https://svnweb.freebsd.org/changeset/base/353163
Log:
Eliminate an unused declaration. The variable in question is only defined
and used on sparc64.
MFC after:1 week
Modified:
head/sys/arm64/include/vmparam.h
h
Author: alc
Date: Sun Nov 3 17:45:30 2019
New Revision: 354286
URL: https://svnweb.freebsd.org/changeset/base/354286
Log:
Utilize ASIDs to reduce both the direct and indirect costs of context
switching. The indirect costs being unnecessary TLB misses that are
incurred when ASIDs are not us
Author: alc
Date: Sun Nov 10 05:22:01 2019
New Revision: 354585
URL: https://svnweb.freebsd.org/changeset/base/354585
Log:
Eliminate a redundant pmap_load() from pmap_remove_pages().
There is no reason why the pmap_invalidate_all() in pmap_remove_pages()
must be performed before the final
Author: alc
Date: Sun Nov 17 17:38:53 2019
New Revision: 354792
URL: https://svnweb.freebsd.org/changeset/base/354792
Log:
Achieve two goals at once: (1) Avoid an unnecessary broadcast TLB
invalidation in pmap_remove_all(). (2) Prevent an "invalid ASID" assertion
failure in pmap_remove_all()
Author: alc
Date: Tue Nov 19 19:05:05 2019
New Revision: 354860
URL: https://svnweb.freebsd.org/changeset/base/354860
Log:
Achieve two goals at once: (1) Avoid an unnecessary broadcast TLB
invalidation in reclaim_pv_chunk(). (2) Prevent an "invalid ASID" assertion
failure in reclaim_pv_chunk
Author: alc
Date: Wed Nov 20 16:32:13 2019
New Revision: 354898
URL: https://svnweb.freebsd.org/changeset/base/354898
Log:
Until every possible root cause for an "invalid ASID" assertion failure is
resolved, assign every pmap a valid ASID when it is first initialized.
Modified:
head/sys/arm
Author: alc
Date: Wed Nov 27 20:33:49 2019
New Revision: 355145
URL: https://svnweb.freebsd.org/changeset/base/355145
Log:
There is no reason why we need to pin the underlying thread to its current
processor in pmap_invalidate_{all,page,range}(). These functions are using
an instruction tha
On 11/28/19 7:52 AM, Konstantin Belousov wrote:
On Thu, Nov 28, 2019 at 09:17:15AM +, Andrew Turner wrote:
On 28 Nov 2019, at 08:48, Michal Meloun wrote:
On 27.11.2019 21:33, Alan Cox wrote:
Author: alc
Date: Wed Nov 27 20:33:49 2019
New Revision: 355145
URL: https
Author: alc
Date: Sat Sep 21 19:51:57 2019
New Revision: 352584
URL: https://svnweb.freebsd.org/changeset/base/352584
Log:
In case a translation fault on the kernel address space occurs from
within a critical section, we must perform a lock-free check on the
faulting address.
Reported b
Author: alc
Date: Sat Sep 28 17:16:03 2019
New Revision: 352847
URL: https://svnweb.freebsd.org/changeset/base/352847
Log:
Eliminate redundant calls to critical_enter() and critical_exit() from
pmap_update_entry(). It suffices that interrupts are blocked.
Reviewed by: andrew, markj
MF
Author: alc
Date: Tue Oct 1 15:33:47 2019
New Revision: 352930
URL: https://svnweb.freebsd.org/changeset/base/352930
Log:
In short, pmap_enter_quick_locked("user space", ..., VM_PROT_READ) doesn't
work. More precisely, it doesn't set ATTR_AP(ATTR_AP_USER) in the page
table entry, so any at
Author: alc
Date: Mon Jun 3 05:15:36 2019
New Revision: 348525
URL: https://svnweb.freebsd.org/changeset/base/348525
Log:
Retire vm_reserv_extend_{contig,page}(). These functions were introduced
as part of a false start toward fine-grained reservation locking. In the
end, they were not ne
Author: alc
Date: Tue Jun 4 16:21:14 2019
New Revision: 348630
URL: https://svnweb.freebsd.org/changeset/base/348630
Log:
The changes to pmap_demote_pde_locked()'s control flow in r348476 resulted
in the loss of a KASSERT that guarded against the invalidation a wired
mapping. Restore this
Author: alc
Date: Sun Jun 9 03:36:10 2019
New Revision: 348828
URL: https://svnweb.freebsd.org/changeset/base/348828
Log:
Implement an alternative solution to the amd64 and i386 pmap problem that we
previously addressed in r348246.
This pmap problem also exists on arm64 and riscv. Howev
Author: alc
Date: Sun Jun 9 05:55:58 2019
New Revision: 348829
URL: https://svnweb.freebsd.org/changeset/base/348829
Log:
Correct a new KASSERT() in r348828.
X-MFC with: r348828
Modified:
head/sys/riscv/riscv/pmap.c
Modified: head/sys/riscv/riscv/pmap.c
==
Author: alc
Date: Wed Jun 12 20:38:49 2019
New Revision: 349003
URL: https://svnweb.freebsd.org/changeset/base/349003
Log:
Change pmap_demote_l2_locked() so that it removes the superpage mapping on a
demotion failure. Otherwise, some callers to pmap_demote_l2_locked(), such
as pmap_protect(
Author: alc
Date: Fri Jun 14 04:01:08 2019
New Revision: 349031
URL: https://svnweb.freebsd.org/changeset/base/349031
Log:
Change the arm64 pmap so that updates to the global count of wired pages are
not performed directly by the pmap. Instead, they are performed by
vm_page_free_pages_toq()
Author: alc
Date: Fri Jun 14 22:06:43 2019
New Revision: 349042
URL: https://svnweb.freebsd.org/changeset/base/349042
Log:
Batch the TLB invalidations that are performed by pmap_protect() rather
than performing them one at a time.
MFC after:10 days
Modified:
head/sys/arm64/arm64/pm
Author: alc
Date: Sat Jun 15 17:26:42 2019
New Revision: 349070
URL: https://svnweb.freebsd.org/changeset/base/349070
Log:
Previously, when pmap_remove_pages() destroyed a dirty superpage mapping,
it only called vm_page_dirty() on the first of the superpage's constituent
4KB pages. This rev
Author: alc
Date: Sun Jun 16 16:45:01 2019
New Revision: 349117
URL: https://svnweb.freebsd.org/changeset/base/349117
Log:
Three enhancements to arm64's pmap_protect():
Implement protection changes on superpage mappings. Previously, a superpage
mapping was unconditionally demoted by pmap
Author: alc
Date: Sun Jun 16 22:13:27 2019
New Revision: 349122
URL: https://svnweb.freebsd.org/changeset/base/349122
Log:
Three changes to arm64's pmap_unwire():
Implement wiring changes on superpage mappings. Previously, a superpage
mapping was unconditionally demoted by pmap_unwire(),
Author: alc
Date: Mon Jun 17 01:58:25 2019
New Revision: 349129
URL: https://svnweb.freebsd.org/changeset/base/349129
Log:
Eliminate a redundant call to pmap_invalidate_page() from
pmap_ts_referenced().
MFC after:14 days
Differential Revision:https://reviews.freebsd.org/D127
Author: alc
Date: Wed Jun 19 03:33:00 2019
New Revision: 349183
URL: https://svnweb.freebsd.org/changeset/base/349183
Log:
Correct an error in r349122. pmap_unwire() should update the pmap's wired
count, not its resident count.
X-MFC with: r349122
Modified:
head/sys/arm64/arm64/pmap
Author: alc
Date: Sat Jun 22 16:26:38 2019
New Revision: 349290
URL: https://svnweb.freebsd.org/changeset/base/349290
Log:
Introduce pmap_remove_l3_range() and use it in two places:
(1) pmap_remove(), where it eliminates redundant TLB invalidations by
pmap_remove() and pmap_remove_l3(), and
Author: alc
Date: Sun Jun 23 21:06:56 2019
New Revision: 349323
URL: https://svnweb.freebsd.org/changeset/base/349323
Log:
pmap_enter_quick_locked() never replaces a valid mapping, so it need not
perform a TLB invalidation. A barrier suffices. (See r343876.)
Add a comment to pmap_enter_
Author: alc
Date: Wed Jun 26 21:43:41 2019
New Revision: 349442
URL: https://svnweb.freebsd.org/changeset/base/349442
Log:
Revert one of the changes from r349323. Specifically, undo the change
that replaced a pmap_invalidate_page() with a dsb(ishst) in
pmap_enter_quick_locked(). Even thoug
Author: alc
Date: Fri Jun 28 22:40:34 2019
New Revision: 349526
URL: https://svnweb.freebsd.org/changeset/base/349526
Log:
When we protect PTEs (as opposed to PDEs), we only call vm_page_dirty()
when, in fact, we are write protecting the page and the PTE has PG_M set.
However, pmap_protect_p
1 - 100 of 927 matches
Mail list logo