[PATCH] makedumpfile: memset() in cyclic bitmap initialization introduce segment fault

Lisa Mitchell lisa.mitchell at hp.com
Fri Dec 20 07:58:02 EST 2013


On Fri, 2013-12-20 at 14:13 +0000, Vivek Goyal wrote:
> On Fri, Dec 20, 2013 at 10:08:08AM +0900, HATAYAMA Daisuke wrote:
> 
> [..]
> > 
> > >cat /proc/iomem:
> > >00000000-00000fff : reserved
> > >00001000-0009ffff : System RAM
> > >000a0000-000bffff : PCI Bus 0000:00
> > >000f0000-000fffff : System ROM
> > >00100000-3d162017 : System RAM
> > >   01000000-015cab9b : Kernel code
> > >   015cab9c-019beb3f : Kernel data
> > >   01b4f000-01da9fff : Kernel bss
> > >   30000000-37ffffff : Crash kernel
> > >3d162018-3d171e57 : System RAM
> > >3d171e58-3d172017 : System RAM
> > >3d172018-3d17ae57 : System RAM
> > >3d17ae58-3dc10fff : System RAM
> > 
> > this part is consecutive but somehow is divided into 4 entries.
> > You called your environment as ``EFI virtual machine'', could you tell
> > me precisely what it mean? qemu/KVM or VMware guest system? I do want
> > to understand how this kind of memory map was created. I think this
> > kind of memory mapping is odd and I guess this is caused by the fact
> > that the system is a virtual environment.
> > 
> > And for Vivek, this case is a concrete example of multiple RAM entries
> > appearing in a single page I suspected in the mmap failure patch,
> > although these entries are consecutive in physical address and can be
> > represented by a single entry by merging them in a single entry. But
> > then it seems to me that there could be more odd case that multiple
> > RAM entries but not consecutive. I again think this should be addressed
> > in the patch for the mmap failure issue. How do you think?
> 
> Hi Hatayama,
> 
> This indeed looks very odd. See if a very small number of systems have it,
> the only thing we will do is allocate extra page in second kernel for
> a memory range. It will not make mmap() fail. So it is just a matter of
> optimization.
> 
> Given the fact I have not seen many systems with this anomaly, I am not
> too worried about it even if you don't this optimization in your patch
> series. We can always take care of it later if need be.
> 
> At the same time, if you feel strongly about it and want to fix it in
> same patch series, I don't mind.
> 
> Thanks
> Vivek

Did I get this same segmentation fault?   It happened a few times on a
3.10 based kernel on a large EFI based system , but then hasn't repeated
in further testing on this machine. This machine had no virtualization
active. Here is partial console log of dump process:  

=============================================================================

kdump: dump target is /dev/mapper/mpathc3
kdump: saving to /sysroot//var/crash/127.0.0.1-2013.11.11-09:58:20/
kdump: saving vmcore-dmesg.txt
kdump: saving vmcore-dmesg.txt complete
kdump: saving vmcore
[   46.017827] scsi 20:0:0:0: Direct-Access              Geek Squad
8192 PQ: 0 ANSI: 0 CCS
[   46.027849] scsi 20:0:0:0: alua: supports implicit and explicit TPGS
[   46.035641] scsi 20:0:0:0: alua: No target port descriptors found
[   46.042491] scsi 20:0:0:0: alua: not attached
[   46.048152] sd 20:0:0:0: [sdak] 15663104 512-byte logical blocks:
(8.01 GB/7.46 GiB)
[   46.057892] sd 20:0:0:0: [sdak] Write Protect is off
[   46.064516] sd 20:0:0:0: [sdak] No Caching mode page present
[   46.070877] sd 20:0:0:0: [sdak] Assuming drive cache: write through
[   46.081639] sd 20:0:0:0: [sdak] No Caching mode page present
[   46.088035] sd 20:0:0:0: [sdak] Assuming drive cache: write through
[   46.107070]  sdak: sdak1 sdak2 sdak3
[   46.114636] sd 20:0:0:0: [sdak] No Caching mode page present
[   46.121021] sd 20:0:0:0: [sdak] Assuming drive cache: write through
[   46.128060] sd 20:0:0:0: [sdak] Attached SCSI removable disk

Excluding unnecessary pages        : [  0 %] 
Excluding unnecessary 
sary pages        : [  0 %] 
Excluding unnecessary pages        : [  0
%] 
Excluding unnecessary pages        : [  8 %] 
Excluding unnecessary
pages        : [ 15 %] 
Excluding unnecessary pages        : [ 21 %] [
53.800116] usb 4-1.6: device descriptor read/64, error -110

Excluding unnecessary pages        : [ 28 %] 
Excluding unnecessary
pages        : [ 34 %] 
Excluding unnecessary pages        : [ 41 %]
Excluding unnecessary pages        : [100 %] [   59.174433] scsi
18:0:0:0: Enclosure         HP       P2000 G3 FC      T240 PQ: 0 ANSI: 5
[   59.183866] scsi 18:0:0:0: alua: supports implicit TPGS
[   59.190190] scsi 18:0:0:0: alua: port group 01 rel port 05
[   59.197694] scsi 18:0:0:0: alua: transition timeout set to 60 seconds

......

[   76.968265] makedumpfile[1291]: segfault at 7f5ac0c39010 ip
00000000004297fd sp 00007fff691683a0 error 4 in makedumpfile[400000
+46000]
//lib/dracut/hooks/pre-pivot/9999-kdump.sh: line 88:  1291 Segmentation
fault   [   76.996926] sd 18:0:1:51: [sdao] Synchronizing SCSI cache
   $CORE_COLLECT[   77.003416] sd 18:0:1:50: [sdan] Synchronizing SCSI
cache
OR /proc/vmcore [   77.010991] sd 18:0:0:51: [sdam] Synchronizing SCSI
cache
$_mp/$KDUMP_PATH[   77.018590] sd 18:0:0:50: [sdal] Synchronizing SCSI
cache
/$HOST_IP-$DATED[   77.026611] sd 14:0:1:71: [sdaj] Synchronizing SCSI
cache
IR/vmcore-incomp[   77.033849] sd 14:0:1:70: [sdai] Synchronizing SCSI
cache
lete
kdump: sav[   77.041467] sd 14:0:0:71: [sdah] Synchronizing SCSI cache
ing vmcore faile[   77.049146] sd 14:0:0:70: [sdag] Synchronizing SCSI
cached
Rebooting.


=======================================================================

I do not have a current /proc/iomem output to go with the above.
However this dump was nr_cpus=8 during crashkernel boot, with a 3.10
kernel with Daisuke's version 4 of Daisuke Hatayama's patch to allow
multi-cpu crashkernel boot. 

I have the efi memory map displayed as Linux booted, before this dump if
that helps

0.000000] efi:  ACPI=0x73ffe000  ACPI 2.0=0x73ffe014  SMBIOS=0x72ef8000 
[    0.000000] efi: mem00: type=3, attr=0xf,
range=[0x0000000000000000-0x0000000000001000) (0MB)
[    0.000000] efi: mem01: type=2, attr=0xf,
range=[0x0000000000001000-0x0000000000004000) (0MB)
[    0.000000] efi: mem02: type=7, attr=0xf,
range=[0x0000000000004000-0x000000000008e000) (0MB)
[    0.000000] efi: mem03: type=0, attr=0xf,
range=[0x000000000008e000-0x0000000000090000) (0MB)
[    0.000000] efi: mem04: type=7, attr=0xf,
range=[0x0000000000090000-0x00000000000a0000) (0MB)
[    0.000000] efi: mem05: type=7, attr=0xf,
range=[0x0000000000100000-0x0000000001000000) (15MB)
[    0.000000] efi: mem06: type=2, attr=0xf,
range=[0x0000000001000000-0x0000000002268000) (18MB)
[    0.000000] efi: mem07: type=7, attr=0xf,
range=[0x0000000002268000-0x0000000010000000) (221MB)
[    0.000000] efi: mem08: type=3, attr=0xf,
range=[0x0000000010000000-0x0000000010066000) (0MB)
[    0.000000] efi: mem09: type=7, attr=0xf,
range=[0x0000000010066000-0x0000000029dfb000) (413MB)
[    0.000000] efi: mem10: type=2, attr=0xf,
range=[0x0000000029dfb000-0x0000000039ba0000) (253MB)
[    0.000000] efi: mem11: type=4, attr=0xf,
range=[0x0000000039ba0000-0x000000003e179000) (69MB)
[    0.000000] efi: mem12: type=3, attr=0xf,
range=[0x000000003e179000-0x000000003e55c000) (3MB)
[    0.000000] efi: mem13: type=4, attr=0xf,
range=[0x000000003e55c000-0x000000003e567000) (0MB)
[    0.000000] efi: mem14: type=3, attr=0xf,
range=[0x000000003e567000-0x000000003e6e9000) (1MB)
[    0.000000] efi: mem15: type=4, attr=0xf,
range=[0x000000003e6e9000-0x000000003e6f4000) (0MB)
[    0.000000] efi: mem16: type=3, attr=0xf,
range=[0x000000003e6f4000-0x000000003e88f000) (1MB)
[    0.000000] efi: mem17: type=4, attr=0xf,
range=[0x000000003e88f000-0x000000003e8f4000) (0MB)
[    0.000000] efi: mem18: type=3, attr=0xf,
range=[0x000000003e8f4000-0x000000003e9cf000) (0MB)
[    0.000000] efi: mem19: type=4, attr=0xf,
range=[0x000000003e9cf000-0x000000003e9d0000) (0MB)
[    0.000000] efi: mem20: type=3, attr=0xf,
range=[0x000000003e9d0000-0x000000003ee9d000) (4MB)
[    0.000000] efi: mem21: type=4, attr=0xf,
range=[0x000000003ee9d000-0x000000003ef9b000) (0MB)
[    0.000000] efi: mem22: type=0, attr=0xf,
range=[0x000000003ef9b000-0x000000003efab000) (0MB)
[    0.000000] efi: mem23: type=4, attr=0xf,
range=[0x000000003efab000-0x000000006ba1b000) (714MB)
[    0.000000] efi: mem24: type=10, attr=0xf,
range=[0x000000006ba1b000-0x000000006ca1b000) (16MB)
[    0.000000] efi: mem25: type=4, attr=0xf,
range=[0x000000006ca1b000-0x00000000709ff000) (63MB)
[    0.000000] efi: mem26: type=7, attr=0xf,
range=[0x00000000709ff000-0x0000000070a10000) (0MB)
[    0.000000] efi: mem27: type=2, attr=0xf,
range=[0x0000000070a10000-0x0000000070c34000) (2MB)
[    0.000000] efi: mem28: type=7, attr=0xf,
range=[0x0000000070c34000-0x0000000070c35000) (0MB)
[    0.000000] efi: mem29: type=2, attr=0xf,
range=[0x0000000070c35000-0x0000000070dff000) (1MB)
[    0.000000] efi: mem30: type=7, attr=0xf,
range=[0x0000000070dff000-0x0000000070fa9000) (1MB)
[    0.000000] efi: mem31: type=1, attr=0xf,
range=[0x0000000070fa9000-0x00000000711ff000) (2MB)
[    0.000000] efi: mem32: type=7, attr=0xf,
range=[0x00000000711ff000-0x000000007120e000) (0MB)
[    0.000000] efi: mem33: type=3, attr=0xf,
range=[0x000000007120e000-0x00000000721ff000) (15MB)
[    0.000000] efi: mem34: type=6, attr=0x800000000000000f,
range=[0x00000000721ff000-0x00000000725ff000) (4MB)
[    0.000000] efi: mem35: type=5, attr=0x800000000000000f,
range=[0x00000000725ff000-0x0000000072dff000) (8MB)
[    0.000000] efi: mem36: type=0, attr=0xf,
range=[0x0000000072dff000-0x0000000072eff000) (1MB)
[    0.000000] efi: mem37: type=10, attr=0xf,
range=[0x0000000072eff000-0x0000000073eff000) (16MB)
[    0.000000] efi: mem38: type=9, attr=0xf,
range=[0x0000000073eff000-0x0000000073fff000) (1MB)
[    0.000000] efi: mem39: type=4, attr=0xf,
range=[0x0000000073fff000-0x000000007c000000) (128MB)
[    0.000000] efi: mem40: type=7, attr=0xf,
range=[0x0000000100000000-0x0000001080000000) (63488MB)
[    0.000000] efi: mem41: type=7, attr=0xf,
range=[0x0000020000000000-0x0000021000000000) (65536MB)
[    0.000000] efi: mem42: type=7, attr=0xf,
range=[0x0000038000000000-0x0000039000000000) (65536MB)
[    0.000000] efi: mem43: type=7, attr=0xf,
range=[0x0000050000000000-0x0000051000000000) (65536MB)
[    0.000000] efi: mem44: type=7, attr=0xf,
range=[0x0000068000000000-0x0000069000000000) (65536MB)
[    0.000000] efi: mem45: type=7, attr=0xf,
range=[0x0000080000000000-0x0000081000000000) (65536MB)
[    0.000000] efi: mem46: type=7, attr=0xf,
range=[0x0000098000000000-0x0000099000000000) (65536MB)
[    0.000000] efi: mem47: type=7, attr=0xf,
range=[0x00000b0000000000-0x00000b1000000000) (65536MB)
[    0.000000] efi: mem48: type=7, attr=0xf,
range=[0x00000c8000000000-0x00000c9000000000) (65536MB)
[    0.000000] efi: mem49: type=7, attr=0xf,
range=[0x00000e0000000000-0x00000e1000000000) (65536MB)
[    0.000000] efi: mem50: type=7, attr=0xf,
range=[0x00000f8000000000-0x00000f9000000000) (65536MB)
[    0.000000] efi: mem51: type=7, attr=0xf,
range=[0x0000110000000000-0x0000111000000000) (65536MB)
[    0.000000] efi: mem52: type=7, attr=0xf,
range=[0x0000128000000000-0x0000129000000000) (65536MB)
[    0.000000] efi: mem53: type=7, attr=0xf,
range=[0x0000140000000000-0x0000141000000000) (65536MB)
[    0.000000] efi: mem54: type=7, attr=0xf,
range=[0x0000158000000000-0x0000159000000000) (65536MB)
[    0.000000] efi: mem55: type=7, attr=0xf,
range=[0x0000170000000000-0x0000171000000000) (65536MB)
[    0.000000] efi: mem56: type=11, attr=0x8000000000000001,
range=[0x0000000080000000-0x0000000090000000) (256MB)
[    0.000000] efi: mem57: type=11, attr=0x8000000000000001,
range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[    0.000000] efi: mem58: type=11, attr=0x8000000000000001,
range=[0x00000000ff000000-0x00000000ff200000) (2MB)
[    0.000000] efi: mem59: type=11, attr=0x8000000000000001,
range=[0x00003fdfe0000000-0x00003fdff4000000) (320MB)
[    0.000000] efi: mem60: type=11, attr=0x8000000000000001,
range=[0x00003fe060000000-0x00003fe074000000) (320MB)
[    0.000000] efi: mem61: type=11, attr=0x8000000000000001,
range=[0x00003fe0e0000000-0x00003fe0f4000000) (320MB)
[    0.000000] efi: mem62: type=11, attr=0x8000000000000001,
range=[0x00003fe160000000-0x00003fe174000000) (320MB)
[    0.000000] efi: mem63: type=11, attr=0x8000000000000001,
range=[0x00003fe1e0000000-0x00003fe1f4000000) (320MB)
[    0.000000] efi: mem64: type=11, attr=0x8000000000000001,
range=[0x00003fe260000000-0x00003fe274000000) (320MB)
[    0.000000] efi: mem65: type=11, attr=0x8000000000000001,
range=[0x00003fe2e0000000-0x00003fe2f4000000) (320MB)
[    0.000000] efi: mem66: type=11, attr=0x8000000000000001,
range=[0x00003fe360000000-0x00003fe374000000) (320MB)
[    0.000000] efi: mem67: type=11, attr=0x8000000000000001,
range=[0x00003fe3e0000000-0x00003fe3f4000000) (320MB)
[    0.000000] efi: mem68: type=11, attr=0x8000000000000001,
range=[0x00003fe460000000-0x00003fe474000000) (320MB)
[    0.000000] efi: mem69: type=11, attr=0x8000000000000001,
range=[0x00003fe4e0000000-0x00003fe4f4000000) (320MB)
[    0.000000] efi: mem70: type=11, attr=0x8000000000000001,
range=[0x00003fe560000000-0x00003fe574000000) (320MB)
[    0.000000] efi: mem71: type=11, attr=0x8000000000000001,
range=[0x00003fe5e0000000-0x00003fe5f4000000) (320MB)
[    0.000000] efi: mem72: type=11, attr=0x8000000000000001,
range=[0x00003fe660000000-0x00003fe674000000) (320MB)
[    0.000000] efi: mem73: type=11, attr=0x8000000000000001,
range=[0x00003fe6e0000000-0x00003fe6f4000000) (320MB)
[    0.000000] efi: mem74: type=11, attr=0x8000000000000001,
range=[0x00003fe760000000-0x00003fe774000000) (320MB)
[    0.000000] efi: mem75: type=11, attr=0x8000000000000001,
range=[0x00003fe7e0000000-0x00003fe7f4000000) (320MB)

> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec





More information about the kexec mailing list