openzfs / zfs

OpenZFS on Linux and FreeBSD
https://openzfs.github.io/openzfs-docs
Other
10.56k stars 1.74k forks source link

Kernel Oops on 32-bit ARM #4048

Closed gordan-bobic closed 8 years ago

gordan-bobic commented 8 years ago

[ 5259.711586] Unable to handle kernel NULL pointer dereference at virtual address 00000048 [ 5259.711600] pgd = c0004000 [ 5259.711609] [00000048] pgd=00000000 [ 5259.711624] Internal error: Oops: 17 [#1] SMP ARM [ 5259.711632] Modules linked in: xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw iptable_filter ip_tables x_tables cmac ecb snd_soc_snow snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd soundcore uvcvideo videobuf2_vmalloc videobuf2_memops btmrvl_sdio mwifiex_sdio btmrvl videobuf2_core mwifiex v4l2_common videodev bluetooth cfg80211 media s5p_sss zfs(PO) zunicode(PO) zavl(PO) zcommon(PO) znvpair(PO) spl(O) zlib_deflate ipv6 [ 5259.711891] CPU: 3 PID: 484 Comm: kswapd0 Tainted: P O 4.3.0-1.el7.armv5tel #1 [ 5259.711898] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 5259.711905] task: e063e900 ti: e04c8000 task.ti: e04c8000 [ 5259.712227] PC is at arc_kmem_reap_now+0x64/0xec [zfs] [ 5259.712243] LR is at __wake_up_bit+0x20/0x54 [ 5259.712252] pc : [] lr : [] psr: 00000113 sp : e04c9d90 ip : e04c9d50 fp : 0000008a [ 5259.712263] r10: 00002001 r9 : bf302b08 r8 : bf2e2b08 [ 5259.712271] r7 : e04d0d00 r6 : e04d0d00 r5 : 00000000 r4 : 00007000 [ 5259.712279] r3 : e04d0b00 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 5259.712289] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 5259.712297] Control: 10c5387d Table: 259b006a DAC: 00000051 [ 5259.712306] Process kswapd0 (pid: 484, stack limit = 0xe04c8210) [ 5259.712315] Stack: (0xe04c9d90 to 0xe04ca000) [ 5259.712324] 9d80: ffffffff 00008007 00000000 e04c9df8 [ 5259.712335] 9da0: bf26ea80 00000000 c066240c bf11afbc 00000000 bf1edad0 00008007 00000080 [ 5259.712344] 9dc0: 00000000 c00add48 e04c9e1c e04c9e18 00000000 00000080 00000056 00000000 [ 5259.712354] 9de0: 00000000 00000000 0000015c 000000d0 00000000 0001024c 000000d0 00000080 [ 5259.712363] 9e00: 00000000 00000000 c0697500 c0697500 e04c9f04 0000002f c0697810 00000000 [ 5259.712373] 9e20: 00000004 00000000 00000001 c00afcc0 00000000 c004fbcc 00000000 00000000 [ 5259.712384] 9e40: dc7e1400 0001024c 00000000 e04c9f00 00000000 00000008 00000000 e04c8000 [ 5259.712394] 9e60: 000008c1 00000001 00000000 00000000 00000000 00000000 00000481 00000000 [ 5259.712405] 9e80: 00000000 0000003f 00000041 00000481 e04c9e90 e04c9e90 e04c9e98 e04c9e98 [ 5259.712414] 9ea0: e04c9ea0 e04c9ea0 e063e900 c06970c0 00000001 00000000 c0697500 00000000 [ 5259.712424] 9ec0: 0000044a c06977bc e063e900 c00b0938 c000a608 ffffffff 00000000 000004a0 [ 5259.712433] 9ee0: 00000000 00000001 c0662418 c0662414 00000001 00000000 e04c8000 00000001 [ 5259.712442] 9f00: 00000641 000008c1 000000d0 00000000 00000000 00000000 00000009 00000007 [ 5259.712452] 9f20: 00000057 0000002f c00b031c e060e700 00000000 c06970c0 c00b031c 00000000 [ 5259.712461] 9f40: 00000000 00000000 00000000 c003c280 0420804c 00000000 c066b930 c06970c0 [ 5259.712471] 9f60: 00000000 00000000 dead4ead ffffffff ffffffff e04c9f74 e04c9f74 00000000 [ 5259.712481] 9f80: 00000000 dead4ead ffffffff ffffffff e04c9f90 e04c9f90 e04c9fac e060e700 [ 5259.712490] 9fa0: c003c1a4 00000000 00000000 c000edf8 00000000 00000000 00000000 00000000 [ 5259.712499] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 5259.712508] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 5259.712706] [](arc_kmem_reap_now [zfs]) from [](arc_shrinker_func_scan_objects+0xb8/0x1ac [zfs]) [ 5259.712787] [](arc_shrinker_func_scan_objects [zfs]) from [ 5259.712803] from [ 5259.712814] from [ 5259.712830] from [ 5259.712846] from [ 5259.712860] Code: e7945008 e1550003 0a000002 e1a00005 (e5951048) [ 5259.712919] ---[ end trace 58e3248830d2802c ]--- [ 5259.759073] Unable to handle kernel NULL pointer dereference at virtual address 00000048 [ 5259.759090] pgd = dcfd0000 [ 5259.759099] [00000048] pgd=00000000 [ 5259.759115] Internal error: Oops: 5 [#2] SMP ARM [ 5259.759123] Modules linked in: xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw iptable_filter ip_tables x_tables cmac ecb snd_soc_snow snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd soundcore uvcvideo videobuf2_vmalloc videobuf2_memops btmrvl_sdio mwifiex_sdio btmrvl videobuf2_core mwifiex v4l2_common videodev bluetooth cfg80211 media s5p_sss zfs(PO) zunicode(PO) zavl(PO) zcommon(PO) znvpair(PO) spl(O) zlib_deflate ipv6 [ 5259.759391] CPU: 0 PID: 4239 Comm: systemd-journal Tainted: P D O 4.3.0-1.el7.armv5tel #1 [ 5259.759400] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 5259.759409] task: e0553c00 ti: dcfa0000 task.ti: dcfa0000 [ 5259.759772] PC is at arc_kmem_reap_now+0x64/0xec [zfs] [ 5259.759784] LR is at wake_up_bit+0x20/0x54 [ 5259.759794] pc : [] lr : [] psr: 00000113 sp : dcfa1c08 ip : dcfa1bc8 fp : 00000098 [ 5259.759803] r10: 00001fe0 r9 : bf302b08 r8 : bf2e2b08 [ 5259.759812] r7 : e04d0d00 r6 : e04d0d00 r5 : 00000000 r4 : 00007000 [ 5259.759820] r3 : e04d0b00 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 5259.759830] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 5259.759838] Control: 10c5387d Table: 3cfd006a DAC: 00000051 [ 5259.759846] Process systemd-journal (pid: 4239, stack limit = 0xdcfa0210) [ 5259.759854] Stack: (0xdcfa1c08 to 0xdcfa2000) [ 5259.759864] 1c00: ffffffff 00007f82 00000000 dcfa1c70 bf26ea80 00000000 [ 5259.759874] 1c20: c066240c bf11afbc 00000000 bf1edad0 00007f82 00000080 00000000 c00add48 [ 5259.759884] 1c40: dcfa1c94 dcfa1c90 00000000 00000080 0000001e 00000000 00000000 00000000 [ 5259.759893] 1c60: 0000007c 000200da 00000000 0001020d 000200da 00000080 00000000 00000000 [ 5259.759903] 1c80: c0697500 c0697500 dcfa1d74 00000036 c0697810 00000000 00000004 00000000 [ 5259.759912] 1ca0: 00000020 c00afcc0 000002cb 00000000 00000000 00000000 00000000 0001020d [ 5259.759921] 1cc0: 00000000 dcfa1df8 00000000 00000017 00000000 dcfa0000 00000020 00000001 [ 5259.759931] 1ce0: 00000000 00000000 00000000 00000000 e135202c 00000000 00000000 0000001f [ 5259.759941] 1d00: 00000020 e135202c dcfa1d08 dcfa1d08 dcfa1d10 dcfa1d10 dcfa1d18 dcfa1d18 [ 5259.759951] 1d20: de1dc100 c0697500 c0697d84 c0662420 0000001b 00000000 00000002 00000001 [ 5259.759961] 1d40: 00000000 c00b0254 000002dc c00a721c 000000c0 000200da c0697d80 0000000c [ 5259.759971] 1d60: c0697d94 00000000 00000001 00000002 60000113 00000020 000200da 00000000 [ 5259.759980] 1d80: 00000000 00000000 0000000a 00000007 0000001f 00000036 00000000 000200da [ 5259.759989] 1da0: dcfa0000 000000c0 00000000 00000000 00000001 00000000 00000000 c00a7918 [ 5259.759999] 1dc0: 00000000 dcfa1df4 dcfa1df3 dcfa1dc8 00000000 00000040 00000000 00000050 [ 5259.760008] 1de0: 000000c0 00000000 00000010 00000002 006d3480 00000000 00001572 c042b8ec [ 5259.760017] 1e00: 00000000 c00bd98c c0697d80 00000000 c0697500 00000001 00000002 00000002 [ 5259.760027] 1e20: c9dfd000 c514faa8 b0efb000 00000000 c9dfd3ec dcfd0000 00000000 e0e35f80 [ 5259.760037] 1e40: c9dfd000 c00c0ebc 00000001 c0665140 20000193 c042b8ec 80000193 c042b8ec [ 5259.760046] 1e60: 00000587 00000055 000000fb 000003ec dcfd2c38 14da126c 00000000 e0553c48 [ 5259.760056] 1e80: dd77f0c0 001b46e9 00000000 c004819c 00000001 e0f10900 0000232d dcfa1fb0 [ 5259.760066] 1ea0: b0efb000 00000055 e0553c00 e0e35f80 00000817 e0e35fc4 c514faa8 c001a184 [ 5259.760077] 1ec0: a09b3275 000004c8 00f1ef33 00000000 e134f190 00000000 b0efa000 00000000 [ 5259.760087] 1ee0: 00000800 00000000 de1dc100 00000817 b0efb000 c066cde4 dcfa1fb0 10c5387d [ 5259.760097] 1f00: 00000000 beffcda0 b6efd928 c00092b8 dc490a00 c042b8fc e0553c00 c003fe2c [ 5259.760108] 1f20: c000a608 ffffffff 00000000 c003cf48 dba5a018 e0553c00 e134f140 de1dc100 [ 5259.760118] 1f40: e0e35f80 e076d500 c0668e84 c0665140 dcfa1f8c c0427914 c0662568 00000000 [ 5259.760126] 1f60: e0c10000 00000001 00000000 dcfa0000 dcfa1fb0 00000000 10c5387d 00000000 [ 5259.760136] 1f80: dcfa0000 beffcda0 dcfa1f9c c0427b98 dcfa1fa0 dcfa0000 b6efd928 b6d6fb88 [ 5259.760144] 1fa0: 20000010 ffffffff 10c5387d c00132fc b0745008 00000000 0088b000 b0efb000 [ 5259.760153] 1fc0: 7f5b4d70 ffffffff 7f5b4d70 b6fc6eb8 7f5b4cb8 00000000 beffcda0 b6efd928 [ 5259.760162] 1fe0: 00000000 beffcd18 b6ef43e0 b6d6fb88 20000010 ffffffff 00000000 00000000 [ 5259.760351] [](arc_kmem_reap_now [zfs]) from [](arc_shrinker_func_scan_objects+0xb8/0x1ac [zfs]) [ 5259.760428] [](arc_shrinker_func_scan_objects [zfs]) from [ 5259.760443] from [ 5259.760456] from [ 5259.760474] from [](alloc_pages_nodemask+0x28c/0x74c) [ 5259.760493] from [ 5259.760512] from [ 5259.760526] from [ 5259.760537] from [ 5259.760545] Exception stack(0xdcfa1fb0 to 0xdcfa1ff8) [ 5259.760553] 1fa0: b0745008 00000000 0088b000 b0efb000 [ 5259.760563] 1fc0: 7f5b4d70 ffffffff 7f5b4d70 b6fc6eb8 7f5b4cb8 00000000 beffcda0 b6efd928 [ 5259.760571] 1fe0: 00000000 beffcd18 b6ef43e0 b6d6fb88 20000010 ffffffff [ 5259.760582] Code: e7945008 e1550003 0a000002 e1a00005 (e5951048) [ 5259.760621] ---[ end trace 58e3248830d2802d ]--- [ 5259.853561] systemd-journald[14179]: File /run/log/journal/4e24bd32ade844409612a9d6bbc40e5d/system.journal corrupted or uncleanly shut down, renaming and replacing. [ 5259.996657] systemd-journald[14179]: Received request to flush runtime journal from PID 1 [ 5344.599944] Unable to handle kernel NULL pointer dereference at virtual address 00000048 [ 5344.599956] pgd = c5e90000 [ 5344.599963] [00000048] pgd=3cec9831, pte=00000000, ppte=00000000 [ 5344.599983] Internal error: Oops: 17 [#3] SMP ARM [ 5344.599990] Modules linked in: xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw iptable_filter ip_tables x_tables cmac ecb snd_soc_snow snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd soundcore uvcvideo videobuf2_vmalloc videobuf2_memops btmrvl_sdio mwifiex_sdio btmrvl videobuf2_core mwifiex v4l2_common videodev bluetooth cfg80211 media s5p_sss zfs(PO) zunicode(PO) zavl(PO) zcommon(PO) znvpair(PO) spl(O) zlib_deflate ipv6 [ 5344.600201] CPU: 1 PID: 14203 Comm: as Tainted: P D O 4.3.0-1.el7.armv5tel #1 [ 5344.600208] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 5344.600216] task: d0e91400 ti: c5e54000 task.ti: c5e54000 [ 5344.600526] PC is at arc_kmem_reap_now+0x64/0xec [zfs] [ 5344.600537] LR is at wake_up_bit+0x20/0x54 [ 5344.600545] pc : [] lr : [] psr: 00000113 sp : c5e55c08 ip : c5e55bc8 fp : 0000008a [ 5344.600553] r10: 00001fe9 r9 : bf302b08 r8 : bf2e2b08 [ 5344.600560] r7 : e04d0d00 r6 : e04d0d00 r5 : 00000000 r4 : 00007000 [ 5344.600566] r3 : e04d0b00 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 5344.600575] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 5344.600583] Control: 10c5387d Table: 25e9006a DAC: 00000051 [ 5344.600590] Process as (pid: 14203, stack limit = 0xc5e54210) [ 5344.600597] Stack: (0xc5e55c08 to 0xc5e56000) [ 5344.600607] 5c00: ffffffff 00007fa5 00000000 c5e55c70 bf26ea80 00000000 [ 5344.600616] 5c20: c066240c bf11afbc 00000000 bf1edad0 00007fa5 00000080 00000000 c00add48 [ 5344.600627] 5c40: c5e55c94 c5e55c90 00000000 00000080 0000001a 00000000 00000000 00000000 [ 5344.600639] 5c60: 0000006c 000200da 00000000 00010142 000200da 00000080 00000000 00000000 [ 5344.600650] 5c80: c0697500 c0697500 c5e55d74 00000005 c0697810 00000000 00000004 00000000 [ 5344.600661] 5ca0: 00000010 c00afcc0 004bc3a0 00000000 00000000 00000000 004bc3a0 00010142 [ 5344.600671] 5cc0: 00000000 c5e55df8 00000000 00000002 00000000 c5e54000 00000020 00000001 [ 5344.600682] 5ce0: 00000000 00000000 00000000 00000000 e135e02c 00000000 00000000 0000000f [ 5344.600694] 5d00: 00000010 e135e02c c5e55d08 c5e55d08 c5e55d10 c5e55d10 c5e55d18 c5e55d18 [ 5344.600706] 5d20: e135b190 c0697500 c0697d84 c0662420 0000000e 00000000 00000002 00000001 [ 5344.600717] 5d40: 00000000 c00b0254 000002dc c00a721c 000000c0 000200da c0697d80 0000000c [ 5344.600727] 5d60: c0697d94 00000000 00000001 00000002 60000113 00000020 000200da 00000000 [ 5344.600736] 5d80: 00000000 00000000 0000000b 00000007 0000001b 00000005 e135b140 000200da [ 5344.600744] 5da0: c5e54000 000000c0 00000000 00000000 00000001 00000000 00000000 c00a7918 [ 5344.600753] 5dc0: 00000000 c5e55df4 c5e55df3 c5e55dc8 00000000 00000040 00000000 00000050 [ 5344.600763] 5de0: 000000c0 00000000 00000010 00000002 006d3480 00000000 00001558 c042b8ec [ 5344.600771] 5e00: 00000000 c00bd98c c0697d80 00000000 c0697500 00000001 00000002 00000002 [ 5344.600780] 5e20: c549f000 c6206948 007f4000 00000000 c549f7d0 c5e90000 00000000 e0e36840 [ 5344.600789] 5e40: c549f000 c00c0ebc c5e55e80 e0559800 e0e1b210 c006b67c 565723dc 3a501850 [ 5344.600798] 5e60: 00000003 00000055 000001f4 000007d0 c5e90018 c00f3388 dafe67d0 d9603600 [ 5344.600806] 5e80: e0e1b210 00001000 00000000 00000000 dafe67d0 c00f4b28 565723dc c5e55fb0 [ 5344.600815] 5ea0: 007f4474 00000055 d0e91400 e0e36840 00000817 e0e36884 c6206948 c001a184 [ 5344.600823] 5ec0: 00000001 00000007 c0437e80 c5e55f0c 00000000 00000000 007f348c 00000000 [ 5344.600832] 5ee0: 00000800 00000000 0009a5e4 00000817 007f4474 c066cde4 c5e55fb0 10c5387d [ 5344.600841] 5f00: 00002710 007f4470 b6e654fc c00092b8 00000000 00000000 c5e55f0c 00000001 [ 5344.600849] 5f20: d0bce500 00000000 00000000 00000000 00000000 d0bce500 00001000 d0bce508 [ 5344.600857] 5f40: 00000001 dafe67d0 00000000 00000000 0009a5e4 c00de270 00000000 00000000 [ 5344.600866] 5f60: 00001000 00000000 00000000 d0bce500 d0bce500 00001000 0009a5e4 c00de9ac [ 5344.600875] 5f80: 00000000 00000000 00001000 00000000 ffffffff ffffffff 00000003 b6d8ff10 [ 5344.600883] 5fa0: 60000010 ffffffff 10c5387d c00132fc 00000fe9 00000fe9 00000000 00001b91 [ 5344.600893] 5fc0: 00000001 007f3490 b6e654cc 007f3488 007838e8 00002710 007f4470 b6e654fc [ 5344.600901] 5fe0: 00000062 bec8f038 b6d91f0c b6d8ff10 60000010 ffffffff 00000000 00000000 [ 5344.601070] [](arc_kmem_reap_now [zfs]) from [](arc_shrinker_func_scan_objects+0xb8/0x1ac [zfs]) [ 5344.601144] [](arc_shrinker_func_scan_objects [zfs]) from [ 5344.601157] from [ 5344.601167] from [ 5344.601184] from [](alloc_pages_nodemask+0x28c/0x74c) [ 5344.601200] from [ 5344.601218] from [ 5344.601230] from [ 5344.601241] from [ 5344.601247] Exception stack(0xc5e55fb0 to 0xc5e55ff8) [ 5344.601256] 5fa0: 00000fe9 00000fe9 00000000 00001b91 [ 5344.601264] 5fc0: 00000001 007f3490 b6e654cc 007f3488 007838e8 00002710 007f4470 b6e654fc [ 5344.601272] 5fe0: 00000062 bec8f038 b6d91f0c b6d8ff10 60000010 ffffffff [ 5344.601282] Code: e7945008 e1550003 0a000002 e1a00005 (e5951048) [ 5344.601293] ---[ end trace 58e3248830d2802e ]--- [ 6350.895147] Unable to handle kernel NULL pointer dereference at virtual address 00000048 [ 6350.895158] pgd = c8cec000 [ 6350.895165] [00000048] pgd=29a84831, pte=00000000, ppte=00000000 [ 6350.895183] Internal error: Oops: 17 [#4] SMP ARM [ 6350.895190] Modules linked in: xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw iptable_filter ip_tables x_tables cmac ecb snd_soc_snow snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd soundcore uvcvideo videobuf2_vmalloc videobuf2_memops btmrvl_sdio mwifiex_sdio btmrvl videobuf2_core mwifiex v4l2_common videodev bluetooth cfg80211 media s5p_sss zfs(PO) zunicode(PO) zavl(PO) zcommon(PO) znvpair(PO) spl(O) zlib_deflate ipv6 [ 6350.895370] CPU: 3 PID: 8548 Comm: bash Tainted: P D O 4.3.0-1.el7.armv5tel #1 [ 6350.895377] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 6350.895384] task: e063a300 ti: c8810000 task.ti: c8810000 [ 6350.895672] PC is at arc_kmem_reap_now+0x64/0xec [zfs] [ 6350.895682] LR is at wake_up_bit+0x20/0x54 [ 6350.895690] pc : [] lr : [] psr: 00000013 sp : c8811e00 ip : c8811dc0 fp : 0000fe4a [ 6350.895697] r10: 00001fce r9 : bf302b08 r8 : bf2e2b08 [ 6350.895704] r7 : e04d0d00 r6 : e04d0d00 r5 : 00000000 r4 : 00007000 [ 6350.895710] r3 : e04d0b00 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 6350.895717] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 6350.895724] Control: 10c5387d Table: 28cec06a DAC: 00000051 [ 6350.895730] Process bash (pid: 8548, stack limit = 0xc8810210) [ 6350.895737] Stack: (0xc8811e00 to 0xc8812000) [ 6350.895745] 1e00: ffffffff 00007f39 00000000 c8811e68 bf26ea80 00016b5d c066240c bf11afbc [ 6350.895754] 1e20: 00000000 bf1edad0 00007f39 00000080 00016b5d c00add48 e2aa4d80 e294eec0 [ 6350.895761] 1e40: 00000000 00000080 0000fe30 00000000 e0144400 00000000 00000fa0 000000d0 [ 6350.895769] 1e60: 00000000 000003e8 000000d0 00000080 00000000 00000000 e0144044 00000000 [ 6350.895777] 1e80: c066e63c 00000001 b6f0f000 c8811f80 00000002 00000002 00000000 c00adee8 [ 6350.895785] 1ea0: c06da5a8 c0121acc c8811f80 00000001 e0c1a000 c012db00 c8811f80 b6f0f000 [ 6350.895793] 1ec0: 00000002 00000002 c012db1c b6f0f000 d680ba00 c8811f80 00000002 b6f0f000 [ 6350.895801] 1ee0: 00000000 c012db2c 00000001 b6f0f000 00000002 c00ddc38 c8811fb0 10c5387d [ 6350.895808] 1f00: 00000000 00000000 bebc8a2c c000936c 00000000 c8811f18 00000000 0000000a [ 6350.895816] 1f20: bebc8a2c c00f5e8c 00000001 d680ba00 c8811f80 00000002 00000000 c00585a8 [ 6350.895824] 1f40: d680ba00 b6f0f000 c8811f80 00000002 00000002 c00de33c d680ba00 b6f0f000 [ 6350.895832] 1f60: 00000002 00000000 00000000 d680ba00 d680ba00 00000002 b6f0f000 c00dea28 [ 6350.895839] 1f80: 00000002 00000000 00000002 00000002 b6f0f000 b6e74b38 00000004 c000ef04 [ 6350.895847] 1fa0: c8810000 c000ed40 00000002 b6f0f000 00000001 b6f0f000 00000002 00000000 [ 6350.895855] 1fc0: 00000002 b6f0f000 b6e74b38 00000004 00000002 00000002 b6f0f000 00000000 [ 6350.895863] 1fe0: 00000000 bebc894c b6d96068 b6df6b8c 60000010 00000001 00021036 01e0fa8d [ 6350.895992] [](arc_kmem_reap_now [zfs]) from [](arc_shrinker_func_scan_objects+0xb8/0x1ac [zfs]) [ 6350.896059] [](arc_shrinker_func_scan_objects [zfs]) from [ 6350.896071] from [ 6350.896082] from [ 6350.896092] from [ 6350.896101] from [ 6350.896112] from [](vfs_write+0x28/0xd0) [ 6350.896121] from [ 6350.896130] from [ 6350.896144] from [ 6350.896153] Code: e7945008 e1550003 0a000002 e1a00005 (e5951048) [ 6350.896162] ---[ end trace 58e3248830d2802f ]--- [ 6372.937607] Unable to handle kernel NULL pointer dereference at virtual address 00000048 [ 6372.937619] pgd = db564000 [ 6372.937626] [00000048] pgd=3c57a831, pte=00000000, *ppte=00000000 [ 6372.937646] Internal error: Oops: 17 [#5] SMP ARM [ 6372.937653] Modules linked in: xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw iptable_filter ip_tables x_tables cmac ecb snd_soc_snow snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd soundcore uvcvideo videobuf2_vmalloc videobuf2_memops btmrvl_sdio mwifiex_sdio btmrvl videobuf2_core mwifiex v4l2_common videodev bluetooth cfg80211 media s5p_sss zfs(PO) zunicode(PO) zavl(PO) zcommon(PO) znvpair(PO) spl(O) zlib_deflate ipv6 [ 6372.937866] CPU: 0 PID: 14927 Comm: bash Tainted: P D O 4.3.0-1.el7.armv5tel #1 [ 6372.937873] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 6372.937880] task: de099e00 ti: c6db0000 task.ti: c6db0000 [ 6372.938195] PC is at arc_kmem_reap_now+0x64/0xec [zfs] [ 6372.938205] LR is at wake_up_bit+0x20/0x54 [ 6372.938212] pc : [] lr : [] psr: 00000013 sp : c6db1e00 ip : c6db1dc0 fp : 000118a0 [ 6372.938219] r10: 00002314 r9 : bf302b08 r8 : bf2e2b08 [ 6372.938226] r7 : e04d0d00 r6 : e04d0d00 r5 : 00000000 r4 : 00007000 [ 6372.938232] r3 : e04d0b00 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 6372.938239] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 6372.938245] Control: 10c5387d Table: 3b56406a DAC: 00000051 [ 6372.938252] Process bash (pid: 14927, stack limit = 0xc6db0210) [ 6372.938258] Stack: (0xc6db1e00 to 0xc6db2000) [ 6372.938267] 1e00: ffffffff 00008c50 00000000 c6db1e68 bf26ea80 000000ec c066240c bf11afbc [ 6372.938275] 1e20: 00000000 bf1edad0 00008c50 00000080 000000ec c00add48 e2aa4d80 e294eec0 [ 6372.938283] 1e40: 00000000 00000080 00011858 00000000 e0144400 00000000 00000fa0 000000d0 [ 6372.938291] 1e60: 00000000 000003e8 000000d0 00000080 00000000 00000000 e0144044 00000000 [ 6372.938299] 1e80: c066e63c 00000001 b6ff7000 c6db1f80 00000002 00000002 00000000 c00adee8 [ 6372.938307] 1ea0: c06da5a8 c0121acc c6db1f80 00000001 e0c1a000 c012db00 c6db1f80 b6ff7000 [ 6372.938315] 1ec0: 00000002 00000002 c012db1c b6ff7000 d0457800 c6db1f80 00000002 b6ff7000 [ 6372.938322] 1ee0: 00000000 c012db2c 00000001 b6ff7000 00000002 c00ddc38 c4abaf60 00000301 [ 6372.938330] 1f00: 00000000 000001bc 00000000 00000000 00000000 c6db1f18 00000000 0000000a [ 6372.938338] 1f20: be81aa2c c00f5e8c 00000001 d0457800 c6db1f80 00000002 00000000 c00585a8 [ 6372.938346] 1f40: d0457800 b6ff7000 c6db1f80 00000002 00000002 c00de33c d0457800 b6ff7000 [ 6372.938353] 1f60: 00000002 00000000 00000000 d0457800 d0457800 00000002 b6ff7000 c00dea28 [ 6372.938361] 1f80: 00000002 00000000 00000002 00000002 b6ff7000 b6f5bb38 00000004 c000ef04 [ 6372.938369] 1fa0: c6db0000 c000ed40 00000002 b6ff7000 00000001 b6ff7000 00000002 00000000 [ 6372.938376] 1fc0: 00000002 b6ff7000 b6f5bb38 00000004 00000002 00000002 b6ff7000 00000000 [ 6372.938384] 1fe0: 00000000 be81a94c b6e7d068 b6eddb8c 60000010 00000001 00021236 01e15ef3 [ 6372.938507] [](arc_kmem_reap_now [zfs]) from [](arc_shrinker_func_scan_objects+0xb8/0x1ac [zfs]) [ 6372.938575] [](arc_shrinker_func_scan_objects [zfs]) from [ 6372.938586] from [ 6372.938597] from [ 6372.938608] from [ 6372.938617] from [ 6372.938628] from [](vfs_write+0x28/0xd0) [ 6372.938637] from [ 6372.938646] from [ 6372.938659] from [ 6372.938669] Code: e7945008 e1550003 0a000002 e1a00005 (e5951048) [ 6372.942198] ---[ end trace 58e3248830d28030 ]---

This is several Oopses that happened in quick succession. The machine is still running and remains responsive, but echo 3 > /proc/sys/vm/drop_caches now causes another Oops to happen every time it is run.

The ZFS/SPL is 0.6.5.3 with the patch for spl issue #2505 applied.

tuxoko commented 8 years ago

This should be fixed in master https://github.com/zfsonlinux/zfs/commit/d0c614ecf9eb0b5f5c5d75316c2faeff63e03c4e

gordan-bobic commented 8 years ago

I can confirm that commit https://github.com/zfsonlinux/zfs/commit/d0c614ecf9eb0b5f5c5d75316c2faeff63e03c4e doesn't fix this. I applied the patch, rebuild zfs modules, rebooted, and I still just got the following:

[ 3267.702370] Unable to handle kernel NULL pointer dereference at virtual address 00000048 [ 3267.702383] pgd = db848000 [ 3267.702390] [00000048] pgd=3e5c9831, pte=00000000, *ppte=00000000 [ 3267.702409] Internal error: Oops: 17 [#2] SMP ARM [ 3267.702417] Modules linked in: xt_tcpudp ipt_REJECT nf_reject_ipv4 xt_conntrack ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw iptable_filter ip_tables x_tables cmac ecb snd_soc_snow ext4 mbcache jbd2 snd_soc_i2s snd_soc_idma snd_soc_s3c_dma snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd soundcore uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev mwifiex_sdio media mwifiex cfg80211 btmrvl_sdio btmrvl bluetooth s5p_sss zfs(PO) zunicode(PO) zavl(PO) zcommon(PO) znvpair(PO) spl(O) zlib_deflate [ 3267.702597] CPU: 3 PID: 29034 Comm: cc1plus Tainted: P D O 4.3.0-3.el7.armv5tel #1 [ 3267.702604] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 3267.702611] task: ca415a00 ti: ca74e000 task.ti: ca74e000 [ 3267.702918] PC is at arc_kmem_reap_now+0x64/0xec [zfs] [ 3267.702927] LR is at wake_up_bit+0x20/0x54 [ 3267.702936] pc : [] lr : [] psr: 00000013 sp : ca74fc80 ip : ca74fc40 fp : 000000a1 [ 3267.702943] r10: 00002bf8 r9 : bf299b08 r8 : bf279b08 [ 3267.702950] r7 : e00dac00 r6 : e00dac00 r5 : 00000000 r4 : 00007000 [ 3267.702956] r3 : e00dab00 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 3267.702964] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 3267.702971] Control: 10c5387d Table: 3b84806a DAC: 00000051 [ 3267.702979] Process cc1plus (pid: 29034, stack limit = 0xca74e210) [ 3267.702986] Stack: (0xca74fc80 to 0xca750000) [ 3267.702994] fc80: ffffffff 0000afe0 00000000 ca74fce8 bf205a80 00000000 c060640c bf0b1fbc [ 3267.703003] fca0: 00000000 bf184ad8 0000afe0 00000080 00000000 c00add48 ca74fd0c ca74fd08 [ 3267.703011] fcc0: 00000000 00000080 00000065 00000000 00000000 00000000 000000c8 000200d2 [ 3267.703020] fce0: 00000000 0000ade1 000200d2 00000080 00000000 00000000 c063b300 c063b300 [ 3267.703028] fd00: ca74fdec 00000006 c063b610 00000000 00000004 00000000 00000011 c00afcc0 [ 3267.703036] fd20: 000008f9 dce55300 00000000 00000000 00000000 0000ade1 00000000 ca74fe70 [ 3267.703044] fd40: 00000000 00000006 00000000 ca74e000 00000020 00000001 00000000 00000000 [ 3267.703052] fd60: 00000000 00000000 f5257d14 00000000 00000000 00000019 00000011 f5257d14 [ 3267.703060] fd80: ca74fd80 ca74fd80 ca74fd88 ca74fd88 ca74fd90 ca74fd90 dcab5c00 c063b300 [ 3267.703069] fda0: c063bb84 c0606420 00000020 00000000 00000001 00000001 00000000 c00b0254 [ 3267.703077] fdc0: 000002dc c00a721c 00000040 000200d2 c063bb80 0000000c c063bb94 00000000 [ 3267.703086] fde0: 00000001 e1373140 ca415a48 00000020 000200d2 00000000 00000000 00000000 [ 3267.703094] fe00: 0000000a 00000007 00000032 00000006 ca415a00 000200d2 ca74e000 00000040 [ 3267.703102] fe20: 00000000 00000000 00000001 00000000 00000000 c00a7918 00000000 ca74fe6c [ 3267.703110] fe40: ca74fe6b c0609140 ca74fe84 00000040 00000000 00000050 00000040 00000000 [ 3267.703118] fe60: 00000010 00000000 0089f900 00000000 00000824 c00f3388 d089f900 00000006 [ 3267.703126] fe80: c063bb80 00000000 c063b300 00000001 00000000 00000001 d64bc700 00000000 [ 3267.703134] fea0: d64bc700 00000000 c609d300 ca74ff0c 00000009 ca62e4d8 ca74e000 c00e4778 [ 3267.703142] fec0: ca833782 e17e52c0 000000d8 ca62e400 e1373190 00000000 00000000 c609d300 [ 3267.703150] fee0: ca74ff80 00001000 b6fbb000 00000000 00a2e771 c00ddcb4 00001000 10c5387d [ 3267.703158] ff00: 00bfdfec b6fbb000 00001000 00000001 00000000 00001000 ca74ff04 00000001 [ 3267.703166] ff20: c609d300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 3267.703174] ff40: c609d300 b6fbb000 ca74ff80 00001000 00001000 c00de33c c609d300 b6fbb000 [ 3267.703182] ff60: 00001000 00000000 00000000 c609d300 c609d300 00001000 b6fbb000 c00dea28 [ 3267.703190] ff80: 00000000 00000000 00001000 00001000 b6fbb000 b6deab38 00000004 c000ef04 [ 3267.703198] ffa0: ca74e000 c000ed40 00001000 b6fbb000 00000001 b6fbb000 00001000 00000000 [ 3267.703206] ffc0: 00001000 b6fbb000 b6deab38 00000004 00001000 00001000 b6fbb000 00a2e771 [ 3267.703214] ffe0: 00000000 bec71e54 b6d0c068 b6d6cb8c 60000010 00000001 00020236 01e02e2e [ 3267.703350] [](arc_kmem_reap_now [zfs]) from [](arc_shrinker_func_scan_objects+0xb8/0x1ac [zfs]) [ 3267.703421] [](arc_shrinker_func_scan_objects [zfs]) from [ 3267.703432] from [ 3267.703442] from [ 3267.703456] from [](alloc_pages_nodemask+0x28c/0x74c) [ 3267.703471] from [ 3267.703482] from [ 3267.703490] from [ 3267.703500] from [ 3267.703513] from [ 3267.703523] Code: e7945008 e1550003 0a000002 e1a00005 (e5951048) [ 3267.703534] ---[ end trace dc546e8d1acc9b3e ]---

tuxoko commented 8 years ago

@gordan-bobic You need to check if the loaded module is indeed the new built module. If zfs module is loaded during initrd. You need to also rebuild the initrd with new zfs.ko

gordan-bobic commented 8 years ago

I did, it is, and I did, in that order.

tuxoko commented 8 years ago

@gordan-bobic That doesn't seems right. PC is at arc_kmem_reap_now+0x64/0xec [zfs] This line is the same before and after, which should not happen if the patch is built and loaded correctly.

Can you objdump the function arc_kmem_reap_now before and after the patch.

gordan-bobic commented 8 years ago

Hmm, I just checked the new and old zfs.ko and they are exactly the same size, which is odd. I wonder if _ILP32 is not getting defined...

i just re-patched the source, and rebuilt and reinstalled dkms packages, and rebuild the kernel modules. zfs.ko is still the same size.

behlendorf commented 8 years ago

Or the zio_buf_cache array global isn't being NULL initialized which is causing the NULL check to fail. Dropping a printk in there for debugging would make things clear.

tuxoko commented 8 years ago

zio_buf_cache is global so it must be NULL. The oops also show it's NULL. The problem is @gordan-bobic not building the binary properly with dkms.

I'm not sure what's the proper way to patch a dkms'ed source. What I always do is to purge the zfs stuffs in /var/lib/dkms, patch the source in /usr/src/zfs-0.x.y, and do dkms add. Otherwise, dkms might use the stale source in /var/lib/dkms

gordan-bobic commented 8 years ago

There is only one set of sources, as least as set up by DKMS on EL7: in /usr/src/zfs-0.6.5.3. /var/lib/dkms/zfs-0.6.5.3/source is a symlink to /usr/src/zfs-0.6.5.3.

I am not sure what else could be going on. I'll try rebuilding the modules without dkms and see if that produces different results.

tuxoko commented 8 years ago

@gordan-bobic On my ubuntu, there's a build besides source which contains a copy of the source.

gordan-bobic commented 8 years ago

On EL7 that is not the case. I have just verified that the only copy of arc.c on the machine is in fact patched. I have purged all traces of previous build directories and modules for the current kernel and am rebuilding the modules. Will report back shortly, but since the last build was made with the same sources, I expect the same result. If that is the case, it really would imply that _ILP32 is not defined on armv5tel/GCC 4.8.x.

Edit: Yes, the above kernel error is still reproducible using: echo 3 > /proc/sys/vm/drop_caches

And since there is only one copy of arc.c on the entire system and it is patched, there is nowhere else that the zfs.ko could have been built from.

Edit 2: And just for cross-check, I removed the #ifdef / #endif lines, so that the fix is built in unconditionally, and that makes the problem go away.

Based on that, it really does look like _ILP32 being defined cannot be counted on to work reliably. Which also has implications on the other instances of it's use (9 in zfs and 4 in spl, as of 0.6.5.3).

GCC version is 4.8.3, armv5tel platform.

behlendorf commented 8 years ago

@gordan-bobic you're absolutely right, it was entirely possible for _ILP32 and _LP64 not to be defined on some arm, powerpc, and sparc builds. Things were correct on x86 and x86_64 bit systems which is why it worked for @tuxoko.

I've opened #4082 with a fix but as you're well aware the test coverage on non-x86 systems leaves something we to desired. There is an ARMv7 builder in the mix but that's it.

On a related note I just recently followed up on your zfs-discuss post from June 2015 asking what could be done to improve the test coverage of the buildbot. Bottom line it's now much easier for us to do that. If you can offer up a machine with internet access I'd like to pursue adding it as builder. It should be straight forward.

tuxoko commented 8 years ago

@behlendorf But if _ILP32 is not defined, why would there be NULL in zio_buf_cache? https://github.com/behlendorf/zfs/blob/master/module/zfs/zio.c#L120

@gordan-bobic Can you dump gcc macros with this command? gcc -dM -E - < /dev/null.

behlendorf commented 8 years ago

@tuxoko on 32-bit systems kmem_cache_create() will return NULL when requesting caches with very large objects.

gordan-bobic commented 8 years ago

@tuxoko: $ gcc -dM -E - < /dev/null

define DBL_MIN_EXP (-1021)

define HQ_FBIT 15

define UINT_LEAST16_MAX 65535

define **ARM_SIZEOF_WCHAR_T 32

define __ATOMIC_ACQUIRE 2

define __SFRACT_IBIT** 0

define FLT_MIN 1.1754943508222875e-38F

define UFRACT_MAX 0XFFFFP-16UR

define UINT_LEAST8_TYPE unsigned char

define DQ_FBIT 63

define **INTMAX_C(c) c ## LL

define __ULFRACT_FBIT** 32

define SACCUM_EPSILON 0x1P-7HK

define CHAR_BIT 8

define USQ_IBIT 0

define UINT8_MAX 255

define ACCUM_FBIT 15

define WINT_MAX 4294967295U

define USFRACT_FBIT 8

define ORDER_LITTLE_ENDIAN 1234

define SIZE_MAX 4294967295U

define **ARM_ARCH_ISA_ARM 1

define __WCHAR_MAX** 4294967295U

define LACCUM_IBIT 32

define DBL_DENORM_MIN ((double)4.9406564584124654e-324L)

define **GCC_ATOMIC_CHAR_LOCK_FREE 1

define __FLT_EVAL_METHOD** 0

define unix 1

define LLACCUM_MAX 0X7FFFFFFFFFFFFFFFP-31LLK

define **GCC_ATOMIC_CHAR32_T_LOCK_FREE 1

define __FRACT_FBIT** 15

define UINT_FAST64_MAX 18446744073709551615ULL

define SIG_ATOMIC_TYPE int

define UACCUM_FBIT 16

define DBL_MIN_10_EXP (-307)

define FINITE_MATH_ONLY 0

define ARMEL 1

define LFRACT_IBIT 0

define GNUC_PATCHLEVEL 3

define LFRACT_MAX 0X7FFFFFFFP-31LR

define UINT_FAST8_MAX 255

define DEC64_MAX_EXP 385

define **INT8_C(c) c

define __UINT_LEAST64_MAX** 18446744073709551615ULL

define SA_FBIT 15

define SHRT_MAX 32767

define LDBL_MAX 1.7976931348623157e+308L

define FRACT_MAX 0X7FFFP-15R

define UFRACT_FBIT 16

define **ARM_FP 12

define __UFRACT_MIN** 0.0UR

define UINT_LEAST8_MAX 255

define **GCC_ATOMIC_BOOL_LOCK_FREE 1

define __UINTMAX_TYPE** long long unsigned int

define LLFRACT_EPSILON 0x1P-63LLR

define **linux 1

define __DEC32_EPSILON** 1E-6DF

define CHAR_UNSIGNED 1

define UINT32_MAX 4294967295U

define ULFRACT_MAX 0XFFFFFFFFP-32ULR

define TA_IBIT 64

define LDBL_MAX_EXP 1024

define WINT_MIN 0U

define linux 1

define ULLFRACT_MIN 0.0ULLR

define SCHAR_MAX 127

define WCHAR_MIN 0U

define **INT64_C(c) c ## LL

define __DBL_DIG** 15

define **ARM_NEON_FP 4

define __GCC_ATOMIC_POINTER_LOCK_FREE 1

define __LLACCUM_MIN** (-0X1P31LLK-0X1P31LLK)

define SIZEOF_INT 4

define SIZEOF_POINTER 4

define USACCUM_IBIT 8

define USER_LABEL_PREFIX

define STDC_HOSTED 1

define LDBL_HAS_INFINITY 1

define LFRACT_MIN (-0.5LR-0.5LR)

define HA_IBIT 8

define TQ_IBIT 0

define FLT_EPSILON 1.1920928955078125e-7F

define APCS_32 1

define USFRACT_IBIT 0

define LDBL_MIN 2.2250738585072014e-308L

define FRACT_MIN (-0.5R-0.5R)

define DEC32_MAX 9.999999E96DF

define DA_IBIT 32

define **ARM_SIZEOF_MINIMAL_ENUM 4

define __INT32_MAX** 2147483647

define UQQ_FBIT 8

define SIZEOF_LONG 4

define UACCUM_MAX 0XFFFFFFFFP-16UK

define STDC_IEC_559 1

define STDC_ISO_10646 201103L

define **UINT16_C(c) c

define __DECIMAL_DIG** 17

define LFRACT_EPSILON 0x1P-31LR

define ULFRACT_MIN 0.0ULR

define gnu_linux 1

define LDBL_HAS_QUIET_NAN 1

define ULACCUM_IBIT 32

define UACCUM_EPSILON 0x1P-16UK

define GNUC 4

define ULLACCUM_MAX 0XFFFFFFFFFFFFFFFFP-32ULLK

define HQ_IBIT 0

define FLT_HAS_DENORM 1

define SIZEOF_LONG_DOUBLE 8

define ARM_ARCH_5T 1

define BIGGEST_ALIGNMENT 8

define DQ_IBIT 0

define DBL_MAX ((double)1.7976931348623157e+308L)

define ULFRACT_IBIT 0

define INT_FAST32_MAX 2147483647

define DBL_HAS_INFINITY 1

define ACCUM_IBIT 16

define DEC32_MIN_EXP (-94)

define THUMB_INTERWORK 1

define LACCUM_MAX 0X7FFFFFFFFFFFFFFFP-31LK

define INT_FAST16_TYPE int

define LDBL_HAS_DENORM 1

define DEC128_MAX 9.999999999999999999999999999999999E6144DL

define INT_LEAST32_MAX 2147483647

define **ARM_PCS 1

define __DEC32_MIN** 1E-95DF

define ACCUM_MAX 0X7FFFFFFFP-15K

define DBL_MAX_EXP 1024

define USACCUM_EPSILON 0x1P-8UHK

define DEC128_EPSILON 1E-33DL

define SFRACT_MAX 0X7FP-7HR

define FRACT_IBIT 0

define PTRDIFF_MAX 2147483647

define UACCUM_MIN 0.0UK

define STDC_NO_THREADS 1

define UACCUM_IBIT 16

define LONG_LONG_MAX 9223372036854775807LL

define SIZEOF_SIZE_T 4

define ULACCUM_MAX 0XFFFFFFFFFFFFFFFFP-32ULK

define SIZEOF_WINT_T 4

define SA_IBIT 16

define ULLACCUM_MIN 0.0ULLK

define **GXX_ABI_VERSION 1002

define __UTA_FBIT** 64

define SOFTFP 1

define FLT_MIN_EXP (-125)

define USFRACT_MAX 0XFFP-8UHR

define UFRACT_IBIT 0

define INT_FAST64_TYPE long long int

define DBL_MIN ((double)2.2250738585072014e-308L)

define LACCUM_MIN (-0X1P31LK-0X1P31LK)

define ULLACCUM_FBIT 32

define **GXX_TYPEINFO_EQUALITY_INLINE 0

define __ULLFRACT_EPSILON** 0x1P-64ULLR

define DEC128_MIN 1E-6143DL

define REGISTER_PREFIX

define UINT16_MAX 65535

define DBL_HAS_DENORM 1

define ACCUM_MIN (-0X1P15K-0X1P15K)

define SQ_IBIT 0

define UINT8_TYPE unsigned char

define UHA_FBIT 8

define NO_INLINE 1

define SFRACT_MIN (-0.5HR-0.5HR)

define UTQ_FBIT 128

define FLT_MANT_DIG 24

define VERSION "4.8.3 20140911 (Red Hat 4.8.3-9)"

define **UINT64_C(c) c ## ULL

define __ULLFRACT_FBIT** 64

define FRACT_EPSILON 0x1P-15R

define ULACCUM_MIN 0.0ULK

define _STDC_PREDEF_H 1

define __UDA_FBIT__ 32

define LLACCUM_EPSILON 0x1P-31LLK

define **GCC_ATOMIC_INT_LOCK_FREE 1

define __FLOAT_WORD_ORDER ORDER_LITTLE_ENDIAN**

define USFRACT_MIN 0.0UHR

define UQQ_IBIT 0

define STDC_IEC_559_COMPLEX 1

define **INT32_C(c) c

define __DEC64_EPSILON** 1E-15DD

define ORDER_PDP_ENDIAN 3412

define DEC128_MIN_EXP (-6142)

define UHQ_FBIT 16

define LLACCUM_FBIT 31

define INT_FAST32_TYPE int

define UINT_LEAST16_TYPE short unsigned int

define unix 1

define INT16_MAX 32767

define SIZE_TYPE unsigned int

define UINT64_MAX 18446744073709551615ULL

define UDQ_FBIT 64

define INT8_TYPE signed char

define ELF 1

define ULFRACT_EPSILON 0x1P-32ULR

define LLFRACT_FBIT 63

define FLT_RADIX 2

define INT_LEAST16_TYPE short int

define LDBL_EPSILON 2.2204460492503131e-16L

define **UINTMAX_C(c) c ## ULL

define __GNUC_RH_RELEASE** 9

define SACCUM_MAX 0X7FFFP-7HK

define SIG_ATOMIC_MAX 2147483647

define **GCC_ATOMIC_WCHAR_T_LOCK_FREE 1

define __VFP_FP** 1

define SIZEOF_PTRDIFF_T 4

define LACCUM_EPSILON 0x1P-31LK

define DEC32_SUBNORMAL_MIN 0.000001E-95DF

define INT_FAST16_MAX 2147483647

define UINT_FAST32_MAX 4294967295U

define UINT_LEAST64_TYPE long long unsigned int

define USACCUM_MAX 0XFFFFP-8UHK

define SFRACT_EPSILON 0x1P-7HR

define FLT_HAS_QUIET_NAN 1

define FLT_MAX_10_EXP 38

define LONG_MAX 2147483647L

define DEC128_SUBNORMAL_MIN 0.000000000000000000000000000000001E-6143DL

define FLT_HAS_INFINITY 1

define **unix 1

define __USA_FBIT** 16

define UINT_FAST16_TYPE unsigned int

define DEC64_MAX 9.999999999999999E384DD

define CHAR16_TYPE short unsigned int

define **PRAGMA_REDEFINE_EXTNAME 1

define __INT_LEAST16_MAX** 32767

define DEC64_MANT_DIG 16

define INT64_MAX 9223372036854775807LL

define UINT_LEAST32_MAX 4294967295U

define SACCUM_FBIT 7

define **GCC_ATOMIC_LONG_LOCK_FREE 1

define __INT_LEAST64_TYPE** long long int

define **ARM_FEATURE_CLZ 1

define __INT16_TYPE** short int

define INT_LEAST8_TYPE signed char

define SQ_FBIT 31

define DEC32_MAX_EXP 97

define **ARM_ARCH_ISA_THUMB 1

define __INT_FAST8_MAX** 127

define **ARM_ARCH 5

define __INTPTR_MAX** 2147483647

define QQ_FBIT 7

define linux 1

define UTA_IBIT 64

define LDBL_MANT_DIG 53

define SFRACT_FBIT 7

define SACCUM_MIN (-0X1P7HK-0X1P7HK)

define DBL_HAS_QUIET_NAN 1

define SIG_ATOMIC_MIN (-SIG_ATOMIC_MAX - 1)

define INTPTR_TYPE int

define UINT16_TYPE short unsigned int

define WCHAR_TYPE unsigned int

define SIZEOF_FLOAT 4

define USQ_FBIT 32

define UINTPTR_MAX 4294967295U

define DEC64_MIN_EXP (-382)

define ULLACCUM_IBIT 32

define INT_FAST64_MAX 9223372036854775807LL

define **GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1

define __FLT_DIG** 6

define UINT_FAST64_TYPE long long unsigned int

define INT_MAX 2147483647

define LACCUM_FBIT 31

define USACCUM_MIN 0.0UHK

define UHA_IBIT 8

define INT64_TYPE long long int

define FLT_MAX_EXP 128

define UTQ_IBIT 0

define DBL_MANT_DIG 53

define INT_LEAST64_MAX 9223372036854775807LL

define **GCC_ATOMIC_CHAR16_T_LOCK_FREE 1

define __DEC64_MIN** 1E-383DD

define WINT_TYPE unsigned int

define UINT_LEAST32_TYPE unsigned int

define SIZEOF_SHORT 2

define ULLFRACT_IBIT 0

define LDBL_MIN_EXP (-1021)

define arm 1

define UDA_IBIT 32

define INT_LEAST8_MAX 127

define LFRACT_FBIT 31

define LDBL_MAX_10_EXP 308

define **ATOMIC_RELAXED 0

define __DBL_EPSILON** ((double)2.2204460492503131e-16L)

define **UINT8_C(c) c

define __INT_LEAST32_TYPE** int

define SIZEOF_WCHAR_T 4

define UINT64_TYPE long long unsigned int

define LLFRACT_MAX 0X7FFFFFFFFFFFFFFFP-63LLR

define TQ_FBIT 127

define INT_FAST8_TYPE signed char

define ULLACCUM_EPSILON 0x1P-32ULLK

define UHQ_IBIT 0

define LLACCUM_IBIT 32

define DBL_DECIMAL_DIG 17

define DEC_EVAL_METHOD 2

define TA_FBIT 63

define UDQ_IBIT 0

define ORDER_BIG_ENDIAN 4321

define ACCUM_EPSILON 0x1P-15K

define **UINT32_C(c) c ## U

define __INTMAX_MAX** 9223372036854775807LL

define BYTE_ORDER ORDER_LITTLE_ENDIAN

define FLT_DENORM_MIN 1.4012984643248171e-45F

define LLFRACT_IBIT 0

define INT8_MAX 127

define UINT_FAST32_TYPE unsigned int

define CHAR32_TYPE unsigned int

define FLT_MAX 3.4028234663852886e+38F

define USACCUM_FBIT 8

define INT32_TYPE int

define SIZEOF_DOUBLE 8

define FLT_MIN_10_EXP (-37)

define UFRACT_EPSILON 0x1P-16UR

define INTMAX_TYPE long long int

define DEC128_MAX_EXP 6145

define **ATOMIC_CONSUME 1

define __GNUC_MINOR** 8

define UINTMAX_MAX 18446744073709551615ULL

define DEC32_MANT_DIG 7

define HA_FBIT 7

define DBL_MAX_10_EXP 308

define LDBL_DENORM_MIN 4.9406564584124654e-324L

define **INT16_C(c) c

define __STDC** 1

define PTRDIFF_TYPE int

define LLFRACT_MIN (-0.5LLR-0.5LLR)

define **ATOMIC_SEQ_CST 5

define __DA_FBIT** 31

define UINT32_TYPE unsigned int

define UINTPTR_TYPE unsigned int

define USA_IBIT 16

define DEC64_SUBNORMAL_MIN 0.000000000000001E-383DD

define ARM_EABI 1

define DEC128_MANT_DIG 34

define LDBL_MIN_10_EXP (-307)

define SIZEOF_LONG_LONG 8

define ULACCUM_EPSILON 0x1P-32ULK

define SACCUM_IBIT 8

define **GCC_ATOMIC_LLONG_LOCK_FREE 1

define __LDBL_DIG** 15

define FLT_DECIMAL_DIG 9

define UINT_FAST16_MAX 4294967295U

define GNUC_GNU_INLINE 1

define **GCC_ATOMIC_SHORT_LOCK_FREE 1

define __ULLFRACT_MAX** 0XFFFFFFFFFFFFFFFFP-64ULLR

define UINT_FAST8_TYPE unsigned char

define USFRACT_EPSILON 0x1P-8UHR

define ULACCUM_FBIT 32

define QQ_IBIT 0

define __ATOMIC_ACQ_REL 4

define __ATOMIC_RELEASE 3

@behlendorf: Thanks, I missed that post on the list. I will try to put a RedSleeve 7 machine up for the buildbot and reply on the above thread.

tuxoko commented 8 years ago

Yeah, it seems gcc only defines _LP64 but never define _ILP32.

gordan-bobic commented 8 years ago

Right. So to conclude, this issue IS fixed by the following commit set: https://github.com/zfsonlinux/zfs/commit/d0c614ecf9eb0b5f5c5d75316c2faeff63e03c4e https://github.com/behlendorf/spl/commit/625a42172f2f625457409e4b2144e466a6377984 https://github.com/behlendorf/zfs/commit/1288d09188f108bc76c66704a93852855bdb5d4d

Given that all of the 32-bit specific code based on _ILP32 is in fact going to be ignored, I'm amazed ZoL works quite well on armv5tel as it is. I am not regularly hitting any other bugs.

What release are these likely to make it into (0.6.5.4?), and is there any indication on when that release is expected to land (days/weeks/months)?

behlendorf commented 8 years ago

@gordan-bobic great news. Yes, I'm a little surprised things have worked so well too. Although, many of the checks in the code (and there aren't too many) actually check for _LP64 being defined and assume _ILP32 when it's not.

I'll get the remaining fixes in to master shortly, and we're planning for an 0.6.5.4 within weeks. Not months.