[PATCH v3 00/21] kdump, vmcore: support mmap() on /proc/vmcore
Andrew Morton
akpm at linux-foundation.org
Tue Mar 19 15:30:05 EDT 2013
On Sat, 16 Mar 2013 13:00:47 +0900 HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:
> Currently, read to /proc/vmcore is done by read_oldmem() that uses
> ioremap/iounmap per a single page. For example, if memory is 1GB,
> ioremap/iounmap is called (1GB / 4KB)-times, that is, 262144
> times. This causes big performance degradation.
>
> In particular, the current main user of this mmap() is makedumpfile,
> which not only reads memory from /proc/vmcore but also does other
> processing like filtering, compression and IO work. Update of page
> table and the following TLB flush makes such processing much slow;
> though I have yet to make patch for makedumpfile and yet to confirm
> how it's improved.
>
> To address the issue, this patch implements mmap() on /proc/vmcore to
> improve read performance. My simple benchmark shows the improvement
> from 200 [MiB/sec] to over 50.0 [GiB/sec].
There are quite a lot of userspace-visible vmcore changes here. Is it
all fully back-compatible? Will all known userspace continue to work
OK on newer kernels?
More information about the kexec
mailing list