>>> On 09.06.17 at 22:07, wrote:
> On 06/09/2017 10:50 AM, Jan Beulich wrote:
> On 19.05.17 at 17:50, wrote:
>>> +unsigned int first_dirty;
>> On x86 this change is fine at present, albeit not optimal. Its ARM
>> equivalent, however, grows struct page_info in the 32-bit case,
>
>
On 06/09/2017 10:50 AM, Jan Beulich wrote:
On 19.05.17 at 17:50, wrote:
>> --- a/xen/common/page_alloc.c
>> +++ b/xen/common/page_alloc.c
>> @@ -383,6 +383,8 @@ typedef struct page_list_head
>> heap_by_zone_and_order_t[NR_ZONES][MAX_ORDER+1];
>> static heap_by_zone_and_order_t *_heap[MAX_NU
>>> On 19.05.17 at 17:50, wrote:
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -383,6 +383,8 @@ typedef struct page_list_head
> heap_by_zone_and_order_t[NR_ZONES][MAX_ORDER+1];
> static heap_by_zone_and_order_t *_heap[MAX_NUMNODES];
> #define heap(node, zone, order) ((*_h
. so that it's easy to find pages that need to be scrubbed (those pages are
now marked with _PGC_need_scrub bit).
We keep track of the first unscrubbed page in a page buddy using first_dirty
field. For now it can have two values, 0 (whole buddy needs scrubbing) or
INVALID_DIRTY_IDX (the buddy does