Re: [PATCH 04/13] vmcore: introduce types for objects copied in 2ndkernel

From: Vivek Goyal
Date: Fri Feb 15 2013 - 10:28:43 EST


On Thu, Feb 14, 2013 at 07:12:05PM +0900, HATAYAMA Daisuke wrote:
> Some parts of old memory need to be copied in buffers on 2nd kernel to
> be remapped to user-space. To distinguish objects in the buffer on 2nd
> kernel and the ones on old memory, enum vmcore_type is introduced: the
> object in the buffer on 2nd kernel has VMCORE_2ND_KERNEL type, and the
> one on old memory has VMCORE_OLD_MEMORY type.
>
> Signed-off-by: HATAYAMA Daisuke <d.hatayama@xxxxxxxxxxxxxx>
> ---
>
> include/linux/proc_fs.h | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
> index 32676b3..4b153ed 100644
> --- a/include/linux/proc_fs.h
> +++ b/include/linux/proc_fs.h
> @@ -97,11 +97,20 @@ struct kcore_list {
> int type;
> };
>
> +enum vmcore_type {
> + VMCORE_OLD_MEMORY,
> + VMCORE_2ND_KERNEL,

This VMCORE_2ND_KERNEL tag looks bad.

How about introducing a "unsigned int flag" element in "struct vmcore"
and set the flag MEM_TYPE_OLDMEM for any contents which come from oldmem.

If MEM_TYPE_OLDMEM is not set, it is assumed that contents are to be
fetched from current kernel using pointer vmcore->buf.

BTW, which elements you need to copy from first kernel?

> +};
> +
> struct vmcore {
> struct list_head list;
> - unsigned long long paddr;
> + union {
> + unsigned long long paddr;
> + char *buf;
> + };
> unsigned long long size;
> loff_t offset;
> + enum vmcore_type type;
> };
>

Thanks
Vivek

> #ifdef CONFIG_PROC_FS
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/