[ cc list ] On 10/18/2013 12:58 PM, Brian Foster wrote: > On 10/18/2013 12:35 PM, Michael Semon wrote: >> On 10/9/2013 2:06 PM, Brian Foster wrote: >>> Hi all, >>> >>> Here is the first release of free inode btree support for the kernel. It >>> is based on the RFC previously made available here: >>> >>> http://oss.sgi.com/archives/xfs/2013-09/msg00076.html >>> >>> The free inode btree adds a new inode btree to XFS with the intent to >>> track only inode chunks with at least one free inode. Patches 1-3 add >>> the necessary support for the new XFS_BTNUM_FINOBT type and introduce a >>> read-only v5 superblock flag. Patch 4 updates the transaction >>> reservations for inode allocation operations to account for the finobt. >>> Patches 5-9 add support to manage the finobt on inode chunk allocation, >>> inode allocation, inode free (and chunk deletion) and growfs. The 10th >>> and final patch adds the feature bit to the associated mask. Thoughts, >>> reviews and flames appreciated. >>> >>> Brian >> >> OK, I'm giving this a go on x86, and xfstests generic/* seems to be OK. >> lockdep is happy so far. The merge was straightforward but not >> automatic by any means. However, there was a crash on xfs/030, and >> I'm sending a simple crash log because I'm on vacation, and my test >> setup is not up to snuff (no serial, one drive dying, bad Internet >> connection, etc.). >> > > Hi Michael, > > Interesting notion of vacation you have there. ;) > > Yes, I'm aware of this issue. This is due to the current lack of > xfs_repair support for finobt. xfs_repair scans the existing inode btree > into memory and actually regenerates and writes out a new inode btree > afterwards. This doesn't yet happen for the finobt, so xfs_repair > effectively zeroes out (corrupts) the finobt root/level fields in the > agi and leads to this explosion. In short, you'll want to run xfstests > with "-x repair" until that support is added. > > Now that I think of it, this should probably manifest as an fs shutdown > or something more graceful than a panic. I'll look into that. Thanks for > testing! > > Brian > >> The merge against xfsprogs went fairly smoothly. >> >> Both merges were over the top of some of Dave's recent work, and maybe >> that's why they weren't automatic. >> >> Thanks! >> >> Michael >> >> [`crash` session follows] >> >> Script started on Thu 17 Oct 2013 07:21:41 PM EDT >> root:/usr/src/dumps# crash vmlinux current-crash >> >> crash 7.0.2 >> Copyright (C) 2002-2013 Red Hat, Inc. >> Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation >> Copyright (C) 1999-2006 Hewlett-Packard Co >> Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited >> Copyright (C) 2006, 2007 VA Linux Systems Japan K.K. >> Copyright (C) 2005, 2011 NEC Corporation >> Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc. >> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc. >> This program is free software, covered by the GNU General Public License, >> and you are welcome to change it and/or distribute copies of it under >> certain conditions. Enter "help copying" to see the conditions. >> This program has absolutely no warranty. Enter "help warranty" for >> details. >> >> GNU gdb (GDB) 7.6 >> Copyright (C) 2013 Free Software Foundation, Inc. >> License GPLv3+: GNU GPL version 3 or later >> <http://gnu.org/licenses/gpl.html> >> This is free software: you are free to change and redistribute it. >> There is NO WARRANTY, to the extent permitted by law. Type "show copying" >> and "show warranty" for details. >> This GDB was configured as "i686-pc-linux-gnu"... >> >> please wait... (gathering kmem slab cache data) >> WARNING: cannot determine how modules are linked >> WARNING: no kernel module access >> >> please wait... (gathering task table data) >> please wait... (determining panic task) >> KERNEL: vmlinux >> DUMPFILE: current-crash >> CPUS: 1 >> DATE: Thu Oct 17 18:53:48 2013 >> UPTIME: 02:40:00 >> LOAD AVERAGE: 1.50, 18.11, 24.54 >> TASKS: 77 >> NODENAME: plbearer >> RELEASE: 3.12.0-rc4+ >> VERSION: #7 Thu Oct 17 15:30:41 EDT 2013 >> MACHINE: i686 (1794 Mhz) >> MEMORY: 510.6 MB >> PANIC: "Oops: 0000 [#1] DEBUG_PAGEALLOC" (check log for details) >> PID: 9475 >> COMMAND: "dd" >> TASK: de0b9430 [THREAD_INFO: d350c000] >> CPU: 0 >> STATE: TASK_RUNNING (PANIC) >> >> crash> ps >> PID PPID CPU TASK ST %MEM VSZ RSS COMM >> 0 0 0 c174f620 RU 0.0 0 0 [swapper] >> 1 0 0 c0058000 IN 0.0 2116 76 init >> 2 0 0 c0059430 IN 0.0 0 0 [kthreadd] >> 3 2 0 c005a860 IN 0.0 0 0 [ksoftirqd/0] >> 5 2 0 c005d0c0 IN 0.0 0 0 [kworker/0:0H] >> 7 2 0 c0118000 IN 0.0 0 0 [watchdog/0] >> 8 2 0 c0119430 IN 0.0 0 0 [khelper] >> 9 2 0 c011a860 IN 0.0 0 0 [kdevtmpfs] >> 10 2 0 c011bc90 IN 0.0 0 0 [writeback] >> 11 2 0 c011d0c0 IN 0.0 0 0 [bioset] >> 12 2 0 c011e4f0 IN 0.0 0 0 [kblockd] >> 13 2 0 c01b8000 IN 0.0 0 0 [ata_sff] >> 14 2 0 c01b9430 IN 0.0 0 0 [khubd] >> 17 2 0 c01bd0c0 IN 0.0 0 0 [rt-test-0] >> 18 2 0 c01be4f0 IN 0.0 0 0 [rt-test-1] >> 19 2 0 c01bbc90 IN 0.0 0 0 [rt-test-2] >> 20 2 0 c0298000 IN 0.0 0 0 [rt-test-3] >> 21 2 0 c0299430 IN 0.0 0 0 [rt-test-4] >> 22 2 0 c029a860 IN 0.0 0 0 [rt-test-5] >> 23 2 0 c029bc90 IN 0.0 0 0 [rt-test-6] >> 24 2 0 c029d0c0 IN 0.0 0 0 [rt-test-7] >> 25 2 0 c029e4f0 IN 0.0 0 0 [khungtaskd] >> 26 2 0 c02b8000 IN 0.0 0 0 [kswapd0] >> 27 2 0 c02b9430 IN 0.0 0 0 [fsnotify_mark] >> 28 2 0 c02ba860 IN 0.0 0 0 [cifsiod] >> 29 2 0 c02bbc90 IN 0.0 0 0 [jfsIO] >> 30 2 0 c02bd0c0 IN 0.0 0 0 [jfsCommit] >> 31 2 0 c02be4f0 IN 0.0 0 0 [jfsSync] >> 32 2 0 de998000 IN 0.0 0 0 [xfsalloc] >> 33 2 0 de999430 IN 0.0 0 0 [xfs_mru_cache] >> 34 2 0 de99a860 IN 0.0 0 0 [xfslogd] >> 35 2 0 de99bc90 IN 0.0 0 0 [bioset] >> 36 2 0 de99d0c0 IN 0.0 0 0 [crypto] >> 52 2 0 de9d1430 IN 0.0 0 0 [scsi_eh_0] >> 53 2 0 de9d0000 IN 0.0 0 0 [scsi_eh_1] >> 56 2 0 de9d50c0 IN 0.0 0 0 [kpsmoused] >> 60 2 0 dead9430 IN 0.0 0 0 [kworker/0:1H] >> 61 2 0 deada860 IN 0.0 0 0 [kmemleak] >> 62 2 0 deadbc90 IN 0.0 0 0 [deferwq] >> 121 1 0 debd2860 IN 0.0 2168 260 syslogd >> 126 1 0 debd64f0 IN 0.0 2112 232 klogd >> 233 1 0 debd3c90 IN 0.1 5024 480 ntpd >> 238 1 0 debd50c0 IN 0.0 2128 52 acpid >> 240 1 0 deadd0c0 IN 0.0 2456 4 gpm >> 242 1 0 debd0000 IN 0.0 2348 172 crond >> 244 1 0 de550000 IN 0.0 2340 4 atd >> 250 1 0 de552860 IN 0.0 3828 4 bash >> 251 1 0 de553c90 IN 0.0 3828 4 bash >> 252 1 0 de5550c0 IN 0.0 3832 4 bash >> 253 1 0 de5564f0 IN 0.0 3828 4 bash >> 254 1 0 deade4f0 IN 0.0 2352 4 agetty >> 3574 2 0 c235bc90 IN 0.0 0 0 [kworker/u2:1] >> 8980 2 0 d7e62860 IN 0.0 0 0 [xfs-data/sda4] >> 8981 2 0 d7e60000 IN 0.0 0 0 [xfs-conv/sda4] >> 8982 2 0 d7e664f0 IN 0.0 0 0 [xfs-cil/sda4] >> 8983 2 0 d7e61430 IN 0.0 0 0 [xfsaild/sda4] >> 9003 26905 0 d7cae4f0 IN 0.3 3512 1744 030 >> 9223 9003 0 d7e63c90 IN 0.2 3532 1256 030 >> 9224 9003 0 d7e650c0 IN 0.1 2224 596 sed >> 9465 2 0 d08250c0 IN 0.0 0 0 [xfs-data/sda5] >> 9466 2 0 d0822860 IN 0.0 0 0 [xfs-conv/sda5] >> 9467 2 0 d08264f0 IN 0.0 0 0 [xfs-cil/sda5] >> 9468 2 0 d0823c90 IN 0.0 0 0 [xfsaild/sda5] >> 9469 9223 0 d7cad0c0 IN 0.2 3540 1176 030 >> 9470 9223 0 d7cabc90 IN 0.2 3532 1060 030 >> 9471 9470 0 d7caa860 IN 0.1 2184 456 fgrep >>> 9475 9469 0 de0b9430 RU 0.1 2008 384 dd >> 11362 2 0 de2b0000 IN 0.0 0 0 [kworker/0:2] >> 11364 2 0 de0bd0c0 IN 0.0 0 0 [kworker/0:3] >> 16034 2 0 d0821430 IN 0.0 0 0 [kworker/0:8] >> 16748 2 0 d7ca9430 IN 0.0 0 0 [kworker/0:14] >> 17966 2 0 c235d0c0 IN 0.0 0 0 [kworker/u2:2] >> 20267 251 0 de2b64f0 IN 0.1 2684 444 watch >> 26881 1 0 de0be4f0 IN 0.0 3824 4 bash >> 26905 26881 0 de0bbc90 IN 0.2 4072 1196 check >> 29183 250 0 de0b8000 IN 0.0 2384 40 cat >> 29240 2 0 de2b3c90 IN 0.0 0 0 [kworker/u2:0] >> crash> log -t # trimmed >> XFS (sda5): Using inode cluster size of 16384 bytes >> XFS (sda5): Mounting Filesystem >> XFS (sda5): Ending clean mount >> BUG: unable to handle kernel NULL pointer dereference at 00000006 >> IP: [<c11e098f>] xfs_btree_lookup+0x1b4/0x42a >> *pde = 00000000 >> Oops: 0000 [#1] DEBUG_PAGEALLOC >> CPU: 0 PID: 9475 Comm: dd Not tainted 3.12.0-rc4+ #7 >> Hardware name: Dell Computer Corporation Dimension 2350/07W080, BIOS A01 >> 12/17/2 002 >> task: de0b9430 ti: d350c000 task.ti: d350c000 >> EIP: 0060:[<c11e098f>] EFLAGS: 00010286 CPU: 0 >> EIP is at xfs_btree_lookup+0x1b4/0x42a >> EAX: 00000000 EBX: deb11390 ECX: 00000000 EDX: c0187a80 >> ESI: 00000060 EDI: ffffffff EBP: d350dc10 ESP: d350dbd0 >> DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 >> CR0: 8005003b CR2: 00000006 CR3: 0ec44000 CR4: 000007d0 >> Stack: >> 00000060 c41c5a00 c0028200 00000001 d350dc54 ffffffff 00000001 00000000 >> 00000000 00000000 d350dc10 c11fb45e de67ee00 deb11390 00000060 00000000 >> d350dc88 c11f921d 00000000 00000004 00000001 00000246 c120c778 de26d800 >> Call Trace: >> [<c11fb45e>] ? xfs_inobt_init_cursor+0x2c/0x91 >> [<c11f921d>] xfs_dialloc_ag+0x223/0x7fb >> [<c120c778>] ? xfs_perag_get+0xb8/0x21c >> [<c11fa087>] ? xfs_ialloc_read_agi+0x3a/0x95 >> [<c11fa0bf>] ? xfs_ialloc_read_agi+0x72/0x95 >> [<c11facd7>] ? xfs_dialloc+0x229/0x272 >> [<c11faafd>] xfs_dialloc+0x4f/0x272 >> [<c11fc8a9>] xfs_ialloc+0x4d/0x6f1 >> [<c11fb83b>] ? xfs_ilock+0x100/0x1f1 >> [<c11fcfc0>] xfs_dir_ialloc+0x73/0x245 >> [<c11fb83b>] ? xfs_ilock+0x100/0x1f1 >> [<c11fd3bf>] ? xfs_create+0x1b1/0x73e >> [<c11fd591>] xfs_create+0x383/0x73e >> [<c11b3091>] xfs_vn_mknod+0xb0/0x175 >> [<c11b3156>] ? xfs_vn_mknod+0x175/0x175 >> [<c11b3170>] xfs_vn_create+0x1a/0x1c >> [<c10e92f6>] vfs_create+0x69/0xc8 >> [<c10e9a7d>] do_last.isra.48+0x728/0xd54 >> [<c10e7c0f>] ? link_path_walk+0x54/0x6da >> [<c10ea151>] path_openat+0xa8/0x53c >> [<c1059fc5>] ? local_clock+0x3d/0x58 >> [<c10ea616>] do_filp_open+0x31/0x72 >> [<c10dd812>] do_sys_open+0x116/0x1de >> [<c156d9f2>] ? sysenter_exit+0xf/0x1d >> [<c10dd8fc>] SyS_open+0x22/0x24 >> [<c156d9bf>] sysenter_do_call+0x12/0x36 >> Code: fa 1f 89 d0 2b 45 d8 1b 55 dc 89 d0 c1 e8 1f 74 0c 83 7d cc 01 0f >> 94 c0 3c 01 83 d7 ff 89 7b 4c 85 ff 0f 84 84 01 00 00 8b 45 e0 <0f> b7 >> 40 06 86 e0 0f b7 c0 39 f8 0f 8c 70 01 00 00 8b 45 d8 8b >> EIP: [<c11e098f>] xfs_btree_lookup+0x1b4/0x42a SS:ESP 0068:d350dbd0 >> CR2: 0000000000000006 >> crash> bt >> PID: 9475 TASK: de0b9430 CPU: 0 COMMAND: "dd" >> #0 [d350da64] crash_kexec at c1080ca0 >> #1 [d350daa8] __bad_area_nosemaphore at c15614f3 >> #2 [d350dae8] bad_area at c15616df >> #3 [d350db00] __do_page_fault at c10248bf >> #4 [d350db88] do_page_fault at c1024b74 >> #5 [d350db90] error_code (via page_fault) at c156d6b8 >> EAX: 00000000 EBX: deb11390 ECX: 00000000 EDX: c0187a80 EBP: >> d350dc10 >> DS: 007b ESI: 00000060 ES: 007b EDI: ffffffff GS: 00e0 >> CS: 0060 EIP: c11e098f ERR: ffffffff EFLAGS: 00010286 >> #6 [d350dbc4] xfs_btree_lookup at c11e098f >> #7 [d350dbfc] xfs_inobt_init_cursor at c11fb459 >> #8 [d350dc14] xfs_dialloc_ag at c11f9218 >> #9 [d350dc8c] xfs_dialloc at c11faaf8 >> #10 [d350dccc] xfs_ialloc at c11fc8a4 >> #11 [d350dd0c] xfs_dir_ialloc at c11fcfbb >> #12 [d350dd5c] xfs_create at c11fd58c >> #13 [d350ddd8] xfs_vn_mknod at c11b308c >> #14 [d350de10] xfs_vn_create at c11b316b >> #15 [d350de1c] vfs_create at c10e92f4 >> #16 [d350de48] do_last at c10e9a78 >> #17 [d350dea4] path_openat at c10ea14c >> #18 [d350def0] do_filp_open at c10ea611 >> #19 [d350df64] do_sys_open at c10dd80d >> #20 [d350dfa4] sys_open at c10dd8f7 >> #21 [d350dfb0] ia32_sysenter_target at c156d9b8 >> EAX: 00000005 EBX: bfd0befd ECX: 00008241 EDX: 000001b6 >> DS: 007b ESI: 00000000 ES: 007b EDI: b778a000 >> SS: 007b ESP: bfd0a670 EBP: bfd0a7d8 GS: 0033 >> CS: 0073 EIP: b77b9424 ERR: 00000005 EFLAGS: 00000286 >> crash> quit >> root:/usr/src/dumps# >> Script done on Thu 17 Oct 2013 07:23:23 PM EDT >> > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs