[PATCH 04/13] vmcore: introduce types for objects copied in 2nd kernel
Vivek Goyal
vgoyal at redhat.com
Fri Feb 15 10:28:28 EST 2013
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 at jp.fujitsu.com>
> ---
>
> 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
More information about the kexec
mailing list