On 07/31/2017 11:16 AM, Jan Beulich wrote:
Boris Ostrovsky 07/23/17 4:07 AM >>>
>> On 06/27/2017 02:00 PM, Jan Beulich wrote:
>> Boris Ostrovsky 06/22/17 8:55 PM >>>
@@ -862,10 +879,19 @@ static struct page_info *alloc_heap_pages(
if ( d != NULL )
d->last_a
>>> Boris Ostrovsky 07/23/17 4:07 AM >>>
>On 06/27/2017 02:00 PM, Jan Beulich wrote:
> Boris Ostrovsky 06/22/17 8:55 PM >>>
>>> @@ -862,10 +879,19 @@ static struct page_info *alloc_heap_pages(
>>> if ( d != NULL )
>>> d->last_alloc_node = node;
>>>
>>> +need_scrub = !!f
On 06/27/2017 02:00 PM, Jan Beulich wrote:
Boris Ostrovsky 06/22/17 8:55 PM >>>
@@ -862,10 +879,19 @@ static struct page_info *alloc_heap_pages(
if ( d != NULL )
d->last_alloc_node = node;
+need_scrub = !!first_dirty_pg && !(memflags & MEMF_no_scrub);
No need for !! h
>>> Boris Ostrovsky 06/22/17 8:55 PM >>>
> @@ -862,10 +879,19 @@ static struct page_info *alloc_heap_pages(
> if ( d != NULL )
> d->last_alloc_node = node;
>
> +need_scrub = !!first_dirty_pg && !(memflags & MEMF_no_scrub);
No need for !! here. But I wonder whether that part of
When allocating pages in alloc_heap_pages() first look for clean pages. If none
is found then retry, take pages marked as unscrubbed and scrub them.
Note that we shouldn't find unscrubbed pages in alloc_heap_pages() yet. However,
this will become possible when we stop scrubbing from free_heap_page