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

Re: [Xen-ia64-devel] [PATCH] [RFC] domU destroy & page ref counter [2/2]




The below hunk should be 
+    while(unlikely(y = cmpxchg((u64*)&page->count_info, x, nx) != x) );
                                                                   ^^
(unlikely's closing paren)
I didn't check how different the compile result was, though.


 /* count_info and ownership are checked atomically. */
 static inline int get_page(struct page_info *page,
                            struct domain *domain)
 {
-#ifdef VALIDATE_VT
     u64 x, nx, y = *((u64*)&page->count_info);
     u32 _domain = pickle_domptr(domain);
 
@@ -172,14 +177,13 @@ static inline int get_page(struct page_i
            return 0;
        }
     }
-    while(unlikely(y = cmpxchg(&page->count_info, x, nx)) != x);
-#endif
+    while(unlikely(y = cmpxchg((u64*)&page->count_info, x, nx)) != x);
     return 1;
 }




On Thu, Mar 02, 2006 at 09:03:28PM +0900, Masaki Kanno wrote:
> Hi all,
> 
> We show below a summary of this patch. Please review this patch,
> and give us comment.
> 
> SUMMARY:
> diff -r b4f1084177cc xen/arch/ia64/xen/xenmisc.c
>       @@ -147,12 +147,17 @@ void init_percpu_info(void)
>       /****   only declare free_page_type() because 
>               put_page_type() is used ****/
>       /****   only declare alloc_page_type() because 
>               get_page_type() is used ****/
> 
>       @@ -415,3 +420,203 @@ void sync_split_caches(void)
>       /****   MEMLOG: porting from x86 becase 
>               get_page_type() is used ****/
>       /****   cleanup_writable_pagetable: only declare 
>               because get_page_type() is used ****/
>       /****   put_page_type: port from x86 as-is ****/
>       /****   get_page_type: port from x86 as-is ****/
> 
> diff -r b4f1084177cc xen/include/asm-ia64/mm.h
>       @@ -41,32 +41,33 @@ struct page
>       /****   struct page: moving the following place 
>               for avoiding non-alignment falut 
>               (the same as x86) ****/
>       /****   struct page: packed for alignment of 
>               cout_info and _domain (the same as x86) ****/
> 
>       @@ -94,8 +95,15 @@ struct page
>       /****   struct page: port from x86 as-is ****/
> 
>       @@ -138,7 +146,6 @@ extern unsigned long gmfn_to_mfn_foreign
>       /****   put_page(): delete #ifdef VALIDATE_VT ****/
> 
>       @@ -149,14 +156,12 @@ static inline void put_page(struct page_
>       /****   get_page(): delete #ifdef VALIDATE_VT ****/
> 
>       @@ -172,14 +177,13 @@ static inline int get_page(struct page_i
>       /****   get_page(): adding cast u64 due to use 
>               8byte cmpxchg ****/
> 
> Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>
> Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
> 
> Best regards,
>  Kan, and Fujitsu team
> 


> _______________________________________________
> Xen-ia64-devel mailing list
> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-ia64-devel

-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

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