All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Michael Semon <mlsemon35@gmail.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 00/10] xfs: introduce the free inode btree
Date: Fri, 18 Oct 2013 13:03:06 -0400	[thread overview]
Message-ID: <526169CA.2020404@redhat.com> (raw)
In-Reply-To: <526168BA.2000002@redhat.com>

[ 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 \b002
>> 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 \b 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 \b 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@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

      parent reply	other threads:[~2013-10-18 17:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-09 18:06 [PATCH 00/10] xfs: introduce the free inode btree Brian Foster
2013-10-09 18:06 ` [PATCH 01/10] xfs: refactor xfs_ialloc_btree.c to support multiple inobt numbers Brian Foster
2013-10-09 18:06 ` [PATCH 02/10] xfs: reserve v5 superblock read-only compat. feature bit for finobt Brian Foster
2013-10-09 18:06 ` [PATCH 03/10] xfs: support the XFS_BTNUM_FINOBT free inode btree type Brian Foster
2013-10-09 18:06 ` [PATCH 04/10] xfs: update inode allocation/free transaction reservations for finobt Brian Foster
2013-10-09 18:06 ` [PATCH 05/10] xfs: insert newly allocated inode chunks into the finobt Brian Foster
2013-10-09 18:06 ` [PATCH 06/10] xfs: use and update the finobt on inode allocation Brian Foster
2013-10-09 18:06 ` [PATCH 07/10] xfs: refactor xfs_difree() inobt bits into xfs_difree_inobt() helper Brian Foster
2013-10-09 18:06 ` [PATCH 08/10] xfs: update the finobt on inode free Brian Foster
2013-10-09 18:06 ` [PATCH 09/10] xfs: add finobt support to growfs Brian Foster
2013-10-09 18:06 ` [PATCH 10/10] xfs: enable the finobt feature on v5 superblocks Brian Foster
     [not found] ` <5261633E.8050504@gmail.com>
     [not found]   ` <526168BA.2000002@redhat.com>
2013-10-18 17:03     ` Brian Foster [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=526169CA.2020404@redhat.com \
    --to=bfoster@redhat.com \
    --cc=mlsemon35@gmail.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.