[CRIU] [PATCH 2/5] vdso: dump -- Don't dump contents of vvar zone

Pavel Emelyanov xemul at parallels.com
Tue Jun 10 08:37:41 PDT 2014


On 06/06/2014 06:07 PM, Cyrill Gorcunov wrote:
> vvar zone is mapped by a kernel and must not ever
> been dumped into image, the data present there is
> valid on running kernel only.
> 
> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
> ---
>  cr-dump.c |  5 +++++
>  mem.c     | 15 +++++++++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/cr-dump.c b/cr-dump.c
> index ca2f94e04c22..86dedce8982a 100644
> --- a/cr-dump.c
> +++ b/cr-dump.c
> @@ -94,6 +94,11 @@ bool privately_dump_vma(struct vma_area *vma)
>  	if (vma->e->status & VMA_AREA_SYSVIPC)
>  		return false;
>  
> +#ifdef CONFIG_VDSO

Is this ifdef required?

> +	/* No dumps for vDSO VVAR data */
> +	if (vma->e->status & VMA_AREA_VVAR)
> +		return false;
> +#endif
>  	if (vma_area_is(vma, VMA_ANON_SHARED))
>  		return false;
>  
> diff --git a/mem.c b/mem.c
> index 570de571af0b..6df11aba340e 100644
> --- a/mem.c
> +++ b/mem.c
> @@ -67,9 +67,24 @@ unsigned int dump_pages_args_size(struct vm_area_list *vmas)
>  
>  static inline bool should_dump_page(VmaEntry *vmae, u64 pme)
>  {
> +#ifdef CONFIG_VDSO

Is this ifdef required?

> +	/*
> +	 * vDSO area must be always dumped because on restore
> +	 * we might need to generate a proxy.
> +	 */
>  	if (vma_entry_is(vmae, VMA_AREA_VDSO))
>  		return true;
>  	/*
> +	 * In turn VVAR area is special and referenced from
> +	 * vDSO area by IP addressing (at least on x86) thus
> +	 * never ever dump its content but always use one provided
> +	 * by the kernel on restore, ie runtime VVAR area must
> +	 * be remapped into proper place..
> +	 */
> +	if (vma_entry_is(vmae, VMA_AREA_VVAR))
> +		return false;
> +#endif
> +	/*
>  	 * Optimisation for private mapping pages, that haven't
>  	 * yet being COW-ed
>  	 */
> 




More information about the CRIU mailing list