lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <m1eid4gi0g.fsf@fess.ebiederm.org>
Date:	Wed, 08 Sep 2010 12:19:43 -0700
From:	ebiederm@...ssion.com (Eric W. Biederman)
To:	Cliff Wickman <cpw@....com>
Cc:	kexec@...ts.infradead.org, mingo@...e.hu,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86: copy_oldmem_page using cached addressing

Cliff Wickman <cpw@....com> writes:

> From: Cliff Wickman <cpw@....com>
>
> The copy of /proc/vmcore to a user buffer proceeds much faster
> if the kernel addresses memory as cached.
>
> With this patch we have seen an increase in transfer rate from less than
> 15MB/s to 80-460MB/s, depending on size of the transfer.  This makes
> a big difference in time needed to save a system dump.
>
> (Does anyone know of a reason why copy_oldmem_page() would need
>  to use uncached addresses?)
>
> Diffed against 2.6.36-rc3

I believe this code simply predates being able to specify the
caching attributes at ioremap time.  Being cached in this case
actually looks more correct, as that is the default for RAM
and we are talking about RAM.

Ultimately either there is another cpu running wild with these pages
mapped with some random set of attributes, and we cannot get the
permissions right or we have captured all of the cpus and this is the
only mapping so it doesn't matter.

Acked-by: "Eric W. Biederman" <ebiederm@...ssion.com>

>
> Signed-off-by: Cliff Wickman <cpw@....com>
> ---
>  arch/x86/kernel/crash_dump_64.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linus.current/arch/x86/kernel/crash_dump_64.c
> ===================================================================
> --- linus.current.orig/arch/x86/kernel/crash_dump_64.c
> +++ linus.current/arch/x86/kernel/crash_dump_64.c
> @@ -34,7 +34,7 @@ ssize_t copy_oldmem_page(unsigned long p
>  	if (!csize)
>  		return 0;
>  
> -	vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE);
> +	vaddr = ioremap_cache(pfn << PAGE_SHIFT, PAGE_SIZE);
>  	if (!vaddr)
>  		return -ENOMEM;
>  
>
> _______________________________________________
> kexec mailing list
> kexec@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ