On Thu, 2006-11-30 at 17:58 +0900, SUZUKI Kazuhiro wrote:
> From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
> > ia64_sal_get_state_info() can be called in interrupt context
> > so that GFP_KERNEL shouldn't be used.
> > irq_safe argument of ia64_log_get() should be checked?
Good find Isaku, sorry I missed it on the first pass.
> diff -r 7e7846ea4ab3 linux-2.6-xen-sparse/include/asm-ia64/sal.h
> --- a/linux-2.6-xen-sparse/include/asm-ia64/sal.h Mon Nov 27 10:10:57
> 2006 -0700
> +++ b/linux-2.6-xen-sparse/include/asm-ia64/sal.h Thu Nov 30 10:52:00
> 2006 +0900
> @@ -703,7 +703,7 @@ ia64_sal_get_state_info (u64 sal_info_ty
>
> if (xencomm_create(sal_info,
> ia64_sal_get_state_info_size(sal_info_type),
> - &desc, GFP_KERNEL))
> + &desc, GFP_ATOMIC))
This is kind of a bandage, we should really try to avoid allocating
memory in interrupt context. Could we create a xencomm_desc pointer off
the IA64_LOG_* infrastructure to have pre-allocated, pre-xencomm'd
buffers for the SAL logs? Note that the existing pre-allocated log
buffers are allocated from bootmem, so either we'd need a xencomm
interface for bootmem, or the buffers would need to be allocated later.
Is this possible? Thanks,
Alex
--
Alex Williamson HP Open Source & Linux Org.
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|