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

Re: [Xen-devel] [PATCH] don't blindly use xmalloc() for allocating struct domain instances


  • To: Jan Beulich <jbeulich@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
  • Date: Tue, 27 Jan 2009 11:30:14 +0000
  • Cc:
  • Delivery-date: Tue, 27 Jan 2009 03:30:39 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcmAcp8PYWuHMTsWck2RCUujpvMUig==
  • Thread-topic: [Xen-devel] [PATCH] don't blindly use xmalloc() for allocating struct domain instances

The xmalloc overhead is tiny. This is only worth it if we're actually going
to pickle the domptr in page_info again. Which actually we might well do,
but then we can do something like this as part of that patch.

 -- Keir

On 27/01/2009 11:23, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> At least on x86 these structures are greater than a page anyway, and
> hence using xmalloc is wasteful here.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
> 
> --- 2009-01-27.orig/xen/common/domain.c 2009-01-08 10:30:05.000000000 +0100
> +++ 2009-01-27/xen/common/domain.c 2009-01-27 11:47:22.000000000 +0100
> @@ -104,12 +104,17 @@ int current_domain_id(void)
>  
>  static struct domain *alloc_domain_struct(void)
>  {
> -    return xmalloc(struct domain);
> +    if (sizeof(struct domain) < PAGE_SIZE)
> +        return xmalloc(struct domain);
> +    return alloc_xenheap_pages(get_order_from_bytes(sizeof(struct domain)));
>  }
>  
>  static void free_domain_struct(struct domain *d)
>  {
> -    xfree(d);
> +    if (sizeof(*d) < PAGE_SIZE)
> +        xfree(d);
> +    else
> +        free_xenheap_pages(d, get_order_from_bytes(sizeof(*d)));
>  }
>  
>  static void __domain_finalise_shutdown(struct domain *d)
> 
> 
> 
> 
> _______________________________________________
> 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®.