[PATCH v4] Improve the performance of --num-threads -d 31

Minfei Huang mhuang at redhat.com
Thu Mar 31 23:27:14 PDT 2016


On 03/31/16 at 05:09pm, "Zhou, Wenjian/周文剑" wrote:
> Hello Minfei,
> 
> Thanks for your results.
> And I have some questions.
> 
> On 03/31/2016 04:38 PM, Minfei Huang wrote:
> >Hi, Zhou.
> >
> >I have tested the increasing patch on 4T memory machine.
> >
> >makedumpfile fails to dump vmcore, if there are about 384M memory in 2nd
> >kernel which is reserved by crashkernel=auto. But once the reserved
> >memory is enlarged up to 10G, makedumpfile can dump vmcore successfully.
> >
> 
> Will it fail with patch v3? or just v4?

Both v3 and v4 can work well, once reserved memory is enlarged manually.

> I don't think it is a problem.
> If 128 cpus are enabled in second kernel, there won't be much memory left if total memory is 384M.

Enable 128 CPUs with 1GB reserved memory.
kdump:/# /sysroot/bin/free -m
              total        used        free      shared  buff/cache   available
Mem:            976          97         732           6         146         774

Enable 1 CPU with 1GB reserved memory.
kdump:/# /sysroot/bin/free -m
              total        used        free      shared  buff/cache   available
Mem:            991          32         873           6          85         909

Extra enabled 127 CPUs will consume 65MB. So I think it is acceptable
in kdump kernel.

The major memory is consumed by makedumpfile from the test result.
crashkernel=auto doesn't work any more, if option --num-threads is
set. Even more, there is no warning to let user enlarge the reserved
memory.

> 
> And I think it will also work if the reserved memory is set to 1G.

Yes, makedumpfile can work well under 1GB reserved memory.

> 
> >The cache should be dropped before testing, otherwise makedumpfile will
> >fail to dump vmcore.
> >echo 3 > /proc/sys/vm/drop_caches
> >Maybe there is something cleanup we can do to avoid this.
> >
> >Following is the result with different parameter for option
> >--num-threads.
> >
> >makedumpfile -l --num-threads 128 --message-level 1 -d 31 /proc/vmcore a.128
> >real    5m34.116s
> >user    103m42.531s
> >sys 86m12.586s
[ snip ]
> >makedumpfile -l --num-threads 0 --message-level 1 -d 31 /proc/vmcore a.0
> >real    3m46.531s
> >user    3m29.371s
> >sys 0m16.909s
> >
> >makedumpfile.back -l --message-level 1 -d 31 /proc/vmcore a
> >real    3m55.712s
> >user    3m39.254s
> >sys 0m16.287s
> >
> >Once the reserved memory is enlarged, makedumpfile works well with or
> >without this increaseing patch.
> >
> >But there is an another issue I found during testing. makedumpfile may
> >hang in about 24%. And with option --num-threads 64, this issue is also
> >occured.
> >
> 
> Will it occur with patch v3?
> If it not occurs, then neither of the previous two increasing patches will work?
> 
> And did you test it with or without the increasing patch?

without this increasing patch, v4 works well.

> 
> >makedumpfile -l --num-threads 128 --message-level 1 -d 31 /proc/vmcore a.128
> >Excluding unnecessary pages        : [100.0 %] |
> >Excluding unnecessary pages        : [100.0 %] /
> >Excluding unnecessary pages        : [100.0 %] -
> >Copying data                       : [ 11.2 %] |
> >Copying data                       : [ 12.4 %] -
> >Excluding unnecessary pages        : [100.0 %] \
> >Excluding unnecessary pages        : [100.0 %] |
> >Copying data                       : [ 23.6 %] -
> >Copying data                       : [ 24.4 %] /
> >
> 
> Could you help me find which line of the code is running at when it hanging?
> makedumpfile may be in a loop and can't go out by some bugs.

This issue happens very occasionally. I can update it once meet it.

Thanks
Minfei



More information about the kexec mailing list