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

Re: [Xen-devel] Load increase after memory upgrade (part2)



It's a 64 Bit kernel...

-----Ursprüngliche Nachricht-----
Von: Jan Beulich [mailto:JBeulich@xxxxxxxx] 
Gesendet: Donnerstag, 14. Juni 2012 09:08
An: Konrad Rzeszutek Wilk
Cc: Konrad Rzeszutek Wilk; Sander Eikelenboom; xen-devel; Carsten Schiers
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)

>>> On 13.06.12 at 18:55, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> wrote:
> @@ -1576,7 +1578,11 @@ static void *__vmalloc_area_node(struct vm_struct 
> *area, gfp_t gfp_mask,
>       struct page **pages;
>       unsigned int nr_pages, array_size, i;
>       gfp_t nested_gfp = (gfp_mask & GFP_RECLAIM_MASK) | __GFP_ZERO;
> -
> +     gfp_t dma_mask = gfp_mask & (__GFP_DMA | __GFP_DMA32);
> +     if (xen_pv_domain()) {
> +             if (dma_mask == (__GFP_DMA | __GFP_DMA32))

As said in an earlier reply - without having any place that would ever set both 
flags at once, this whole conditional is meaningless.
In our code - which I suppose is where you cloned this from - we set 
GFP_VMALLOC32 to such a value for 32-bit kernels (which otherwise would merely 
use GFP_KERNEL, and hence not trigger the code calling 
xen_limit_pages_to_max_mfn()). I don't recall though whether Carsten's problem 
was on a 32- or 64-bit kernel.

Jan

> +                     gfp_mask &= ~(__GFP_DMA | __GFP_DMA32);
> +     }
>       nr_pages = (area->size - PAGE_SIZE) >> PAGE_SHIFT;
>       array_size = (nr_pages * sizeof(struct page *));
>  



-----
E-Mail ist virenfrei.
Von AVG überprüft - www.avg.de
Version: 2012.0.2180 / Virendatenbank: 2433/5069 - Ausgabedatum: 14.06.2012 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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