Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: [matt-nb5-mips64] src/sys/uvm



On Jan 22, 2010, at 12:28 AM, enami tsugutomo wrote:

>> Module Name: src
>> Committed By:        matt
>> Date:                Fri Jan 22 05:17:32 UTC 2010
>> 
>> Modified Files:
>>      src/sys/uvm [matt-nb5-mips64]: uvm_pglist.c
>> 
>> Log Message:
>> Rework the algorithm to allocate contiguous pages to be much much faster.
>> (read the comments if you want to know how it's done).
>> 
>> 
>> To generate a diff of this commit:
>> cvs rdiff -u -r1.42 -r1.42.16.1 src/sys/uvm/uvm_pglist.c
> 
>>               /*
>>                * Test both the ending and starting pages to see if they are
>>                * both free.  If the ending and starting pages are same page,
>>                * we only test one of them.  If the pages aren't free, there
>>                * is no reason to continue this iteration so advance to the
>>                * next address and try again.
>>                */
>>               if (VM_PAGE_IS_FREE(&pgs[end - 1]) == 0
>>                   || end - 1 == tryidx + skip
>>                   || VM_PAGE_IS_FREE(&pgs[tryidx + skip]) == 0) {
>>                       try += roundup(num, align);
>>                       skip = 0;
>>                       continue;
>>               }
> 
> I guess this part can be improved and/or fixed as below.

I initially did something like that but realized it didn't really buy me 
anything since the compiler will actually do something like that anyways.


Home | Main Index | Thread Index | Old Index