Re: [13/17] Virtual compound page freeing in interrupt context

2007-09-28 Thread Christoph Lameter
On Fri, 28 Sep 2007, KAMEZAWA Hiroyuki wrote: On Tue, 25 Sep 2007 16:42:17 -0700 Christoph Lameter [EMAIL PROTECTED] wrote: +static noinline void vcompound_free(void *addr) +{ + if (in_interrupt()) { Should be (in_interrupt() || irqs_disabled()) ? Maybe only irqs_disabled()? - To

Re: [13/17] Virtual compound page freeing in interrupt context

2007-09-28 Thread KAMEZAWA Hiroyuki
On Fri, 28 Sep 2007 10:35:44 -0700 (PDT) Christoph Lameter [EMAIL PROTECTED] wrote: On Fri, 28 Sep 2007, KAMEZAWA Hiroyuki wrote: On Tue, 25 Sep 2007 16:42:17 -0700 Christoph Lameter [EMAIL PROTECTED] wrote: +static noinline void vcompound_free(void *addr) +{ + if

Re: [13/17] Virtual compound page freeing in interrupt context

2007-09-27 Thread KAMEZAWA Hiroyuki
On Tue, 25 Sep 2007 16:42:17 -0700 Christoph Lameter [EMAIL PROTECTED] wrote: +static noinline void vcompound_free(void *addr) +{ + if (in_interrupt()) { Should be (in_interrupt() || irqs_disabled()) ? Regards, -Kame - To unsubscribe from this list: send the line unsubscribe

[13/17] Virtual compound page freeing in interrupt context

2007-09-25 Thread Christoph Lameter
If we are in an interrupt context then simply defer the free via a workqueue. Removing a virtual mappping *must* be done with interrupts enabled since tlb_xx functions are called that rely on interrupts for processor to processor communications. Signed-off-by: Christoph Lameter [EMAIL PROTECTED]

Re: [13/17] Virtual compound page freeing in interrupt context

2007-09-20 Thread Nick Piggin
On Wednesday 19 September 2007 13:36, Christoph Lameter wrote: If we are in an interrupt context then simply defer the free via a workqueue. In an interrupt context it is not possible to use vmalloc_addr() to determine the vmalloc address. So add a variant that does that too. Removing a

Re: [13/17] Virtual compound page freeing in interrupt context

2007-09-20 Thread Christoph Lameter
On Wed, 19 Sep 2007, Nick Piggin wrote: Removing a virtual mappping *must* be done with interrupts enabled since tlb_xx functions are called that rely on interrupts for processor to processor communications. These things will clash drastically with my lazy TLB flushing and scalability

[13/17] Virtual compound page freeing in interrupt context

2007-09-18 Thread Christoph Lameter
If we are in an interrupt context then simply defer the free via a workqueue. In an interrupt context it is not possible to use vmalloc_addr() to determine the vmalloc address. So add a variant that does that too. Removing a virtual mappping *must* be done with interrupts enabled since tlb_xx