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
|