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?