Re: [PATCH v3 07/21] vmcore, procfs: introduce a flag to distinguish objects copied in 2nd kernel

Andrew Morton
2013-03-19T19:35:37Z

On Sat, 16 Mar 2013 13:01:26 +0900 HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com> wrote:

> The part of dump target memory is copied into the 2nd kernel if it
> doesn't satisfy mmap()'s page-size boundary requirement. To
> distinguish such copied object from usual old memory, a flag
> MEM_TYPE_CURRENT_KERNEL is introduced. If this flag is set, the object
> is considered being copied into buffer on the 2nd kernel.
>

I don't understand this description at all :( Perhaps we can have a
lengthier version which expands on the concepts a bit further?

> --- a/include/linux/proc_fs.h
> +++ b/include/linux/proc_fs.h
> @@ -97,11 +97,17 @@ struct kcore_list {
> int type;
> };
>
> +#define MEM_TYPE_CURRENT_KERNEL 0x1

A comment describing this would be useful.

> struct vmcore {
> struct list_head list;
> - unsigned long long paddr;
> + union {
> + unsigned long long paddr;
> + char *buf;
> + };

This change wasn't described in the changelog?

> unsigned long long size;
> loff_t offset;
> + unsigned int flag;

Presumably this is the place where we put MEM_TYPE_CURRENT_KERNEL?
That's unobvious from reading the code. Add the text "vmcore.flag
fields:" above the MEM_TYPE_CURRENT_KERNEL definition.

> };
>
> #ifdef CONFIG_PROC_FS