cvs commit: src/sys/amd64/amd64 uma_machdep.c src/sys/arm/arm vm_machdep.c src/sys/ia64/ia64 uma_machdep.c src/sys/powerpc/powerpc uma_machdep.c src/sys/sparc64/sparc64 vm_machdep.c src/sys/sun4v/sun4v vm_machdep.c

Alan Cox alc at cs.rice.edu
Sat Oct 18 19:11:37 UTC 2008


John Baldwin wrote:
> On Saturday 15 September 2007 02:47:02 pm Alan Cox wrote:
>   
>> alc         2007-09-15 18:47:02 UTC
>>
>>   FreeBSD src repository
>>
>>   Modified files:
>>     sys/amd64/amd64      uma_machdep.c 
>>     sys/arm/arm          vm_machdep.c 
>>     sys/ia64/ia64        uma_machdep.c 
>>     sys/powerpc/powerpc  uma_machdep.c 
>>     sys/sparc64/sparc64  vm_machdep.c 
>>     sys/sun4v/sun4v      vm_machdep.c 
>>   Log:
>>   It has been observed on the mailing lists that the different categories
>>   of pages don't sum to anywhere near the total number of pages on amd64.
>>   This is for the most part because uma_small_alloc() pages have never been
>>   counted as wired pages, like their kmem_malloc() brethren.  They should
>>   be.  This changes fixes that.
>>   
>>   It is no longer necessary for the page queues lock to be held to free
>>   pages allocated by uma_small_alloc().  I removed the acquisition and
>>   release of the page queues lock from uma_small_free() on amd64 and ia64
>>   weeks ago.  This patch updates the other architectures that have
>>   uma_small_alloc() and uma_small_free().
>>   
>>   Approved by: re (kensmith)
>>     
>
> I'd like to merge this to 6.x.  However, I'm not sure if the same is true 
> about vm_page_free() not needing the vm_page_queues lock in 6.x, so figured 
> I'd ask you about that first.
>
>   


No, the page queue locking changes were never made to 6.x.  However, the 
accounting fix (paragraph #1 above) is separable from the other change.  
Therefore, you could apply the accounting fix to 6.x with no trouble.  
In fact, the amd64 and ia64 parts of this commit were purely to apply 
the accounting fix because I had already removed the acquisition and 
release of the page queues lock from uma_small_{alloc,free} on those 
machines in an earlier revision.  In effect, for 6.x you just need to 
replicate the amd64/ia64 version of this change across all six 
architectures.

Alan



More information about the cvs-all mailing list