|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/
On 02/05/2011 13:00, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:
>> (2) Change the xmalloc lock to spin_lock_irqsave(). This would also have to
>> be transitively applied to at least the heap_lock in page_alloc.c. One issue
>> with this (and indeed with calling alloc_heap_pages at all with IRQs
>> disabled) is that alloc_heap_pages does actually assume IRQs are enabled
>> (for example, it calls flush_tlb_mask()) -- actually I think this limitation
>> probably predates the tsc rendezvous changes, and could be a source of
>> latent bugs in earlier Xen releases.
>
> (2b) Make only the xmalloc() lock disable IRQs, and don't allow it to
> go into the page allocator when IRQs were disabled on entry. Have
> a reserve page available on each pCPU (requires that in a single
> hypercall there can't be allocations adding up to more than PAGE_SIZE),
> and when consumed, re-fill this page e.g. from a softirq or tasklet.
You'd have to release/acquire the xmalloc lock across the ->get_mem call.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|