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

Re: [Xen-devel] [PATCH] fix c/s 18720 & 18731


  • To: Jan Beulich <jbeulich@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
  • Date: Wed, 29 Oct 2008 11:55:20 +0000
  • Cc:
  • Delivery-date: Wed, 29 Oct 2008 04:56:54 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: Ack5vTeHdlP75qWwEd2PmgAX8io7RQ==
  • Thread-topic: [Xen-devel] [PATCH] fix c/s 18720 & 18731

Okay. This is simply because PGT_partial holds a type reference?

The patch can be much simplified because the tlbflush_timestamp is not
required (this domain will never run again) and because shadow mode has
already been torn down. I'll simplify and apply.

 -- Keir

On 29/10/08 11:30, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> Entirely removing the tail of free_page_type() wasn't correct - the
> type reference must still be dropped for partial pages.
> 
> Admittedly, I'm not sure the flush time stamp update is also needed
> here, but it seems safer to also copy it from free_page_type()'s former
> tail.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
> 
> Index: 2008-10-27/xen/arch/x86/domain.c
> ===================================================================
> --- 2008-10-27.orig/xen/arch/x86/domain.c 2008-10-28 15:30:37.000000000 +0100
> +++ 2008-10-27/xen/arch/x86/domain.c 2008-10-28 15:31:15.000000000 +0100
> @@ -42,6 +42,7 @@
>  #include <asm/mpspec.h>
>  #include <asm/ldt.h>
>  #include <asm/hypercall.h>
> +#include <asm/shadow.h>
>  #include <asm/hvm/hvm.h>
>  #include <asm/hvm/support.h>
>  #include <asm/debugreg.h>
> @@ -1687,6 +1688,16 @@ static int relinquish_memory(
>              {
>                  if ( free_page_type(page, x, 0) != 0 )
>                      BUG();
> +
> +                if ( !(shadow_mode_enabled(d) &&
> +                       (page->count_info & PGC_page_table)) )
> +                    page->tlbflush_timestamp = tlbflush_current_time();
> +
> +                if ( x & PGT_partial )
> +                {
> +                    wmb();
> +                    page->u.inuse.type_info--;
> +                }
>                  break;
>              }
>          }
> 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



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


 


Rackspace

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