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

Re: [Xen-devel] [PATCH v6 1/8] mm: Place unscrubbed pages at the end of pagelist

Hi Boris,

I would have appreciated to be CCed as maintainer of the ARM bits... Please use scripts/get_maintainers.pl in the future.

On 04/08/17 18:05, Boris Ostrovsky wrote:
. so that it's easy to find pages that need to be scrubbed (those pages are

Pointless .

diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
index ef84b72..d26b232 100644
--- a/xen/include/asm-arm/mm.h
+++ b/xen/include/asm-arm/mm.h
@@ -44,7 +44,16 @@ struct page_info
         /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
         struct {
             /* Do TLBs need flushing for safety before next page use? */
-            bool_t need_tlbflush;
+            unsigned long need_tlbflush:1;

You've turned need_tlbflush from bool to unsigned long : 1. But some of the users use true/false or may rely on the boolean property. So it sounds like to me you want to use bool bitfields here (and in the x86 part).

+            /*
+             * Index of the first *possibly* unscrubbed page in the buddy.
+             * One more than maximum possible order to accommodate
+             * INVALID_DIRTY_IDX.
+             */
+#define INVALID_DIRTY_IDX ((1UL << (MAX_ORDER + 1)) - 1)
+            unsigned long first_dirty:MAX_ORDER + 1;

We need to make sure that this union will not be bigger than unsigned long. Otherwise this will limit lower down the maximum amount of memory we support.
So this likely means a BUILD_BUG_ON(....).


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.