public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Ben Myers <bpm@sgi.com>
To: Brian Foster <bfoster@redhat.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH v3 0/8] speculative preallocation inode tracking
Date: Wed, 26 Sep 2012 10:51:57 -0500	[thread overview]
Message-ID: <20120926155157.GS25175@sgi.com> (raw)
In-Reply-To: <50632302.2070406@redhat.com>

Hey Brian,

On Wed, Sep 26, 2012 at 11:45:06AM -0400, Brian Foster wrote:
> On 09/26/2012 11:19 AM, Ben Myers wrote:
> > On Fri, Sep 14, 2012 at 08:19:47AM -0400, Brian Foster wrote:
> >> This is v3 of the speculative preallocation inode tracking patchset. This
> >> functionality tracks inodes with post-EOF speculative preallocation for the
> >> purpose of background and on-demand trimming.
> >>
> >> Background scanning occurs on a longish interval (5 minutes by default) and in
> >> a best-effort mode (i.e., inodes are skipped due to lock contention or dirty
> >> cache). The intent is to clear up post-EOF blocks on inodes that might have
> >> allocations hanging around due to open-write-close sequences (NFS).
> >>
> >> On demand scanning is provided via a new ioctl and supports various parameters
> >> such as scan mode, filtering by quota id and minimum file size. A pending use
> >> case for on demand scanning is for accurate quota accounting via the gluster
> >> scale out filesystem (i.e., to free up preallocated space when near a usage
> >> limit).
> > 
> > [33084.794491] XFS (sda2): Ending clean mount
> > [33170.400045] XFS: Assertion failed: !atomic_read(&VFS_I(ip)->i_count) || xfs_isilocked(ip, XFS_IOLOCK_EXCL), file: /root/xfs/fs/xfs/xfs_inode.c, line: 1128
> > [33170.41422[    0.000000] Initializing cgroup subsys cpuset
> > [    0.000000] Initializing cgroup subsys cpu
> > [    0.000000] Linux version 3.6.0-rc1-1.2-desktop+ (root@nfs7) (gcc version 4.6.2 (SUSE Linux) ) #26 SMP PREEMPT Fri Sep 21 18:26:16 CDT 2012
> > [    0.000000] e820: BIOS-provided physical RAM map:
> > [    0.000000] BIOS-e820: [mem 0x0000000000000100-0x000000000009fbff] usable
> > 
> > crash> bt
> > PID: 1289   TASK: f38d71d0  CPU: 1   COMMAND: "kworker/1:2"
> >  #0 [f17c9b88] crash_kexec at c0295045
> >  #1 [f17c9be0] oops_end at c06ab2f2
> >  #2 [f17c9bf8] die at c020539a
> >  #3 [f17c9c10] do_trap at c06aadc1
> >  #4 [f17c9c28] do_invalid_op at c0202eb1
> >  #5 [f17c9cc4] error_code (via invalid_op) at c06aab7c
> >     EAX: 0000008e  EBX: ec3d9400  ECX: 0000071e  EDX: 00000046  EBP: f17c9d18 
> >     DS:  007b      ESI: ec3d9400  ES:  007b      EDI: ef973d00  GS:  2e30
> >     CS:  0060      EIP: f9d1dbb6  ERR: ffffffff  EFLAGS: 00010292 
> >  #6 [f17c9cf8] assfail at f9d1dbb6 [xfs]
> >  #7 [f17c9d1c] xfs_itruncate_extents at f9d6335f [xfs]
> >  #8 [f17c9d98] xfs_free_eofblocks at f9d237d9 [xfs]
> >  #9 [f17c9df8] xfs_inode_free_eofblocks at f9d221b4 [xfs]
> > #10 [f17c9e14] xfs_inode_ag_walk at f9d20ab9 [xfs]
> > #11 [f17c9ee4] xfs_inode_ag_iterator_tag at f9d20d6b [xfs]
> > #12 [f17c9f18] xfs_inodes_free_eofblocks at f9d21c95 [xfs]
> > #13 [f17c9f34] xfs_eofblocks_worker at f9d21cc3 [xfs]
> > #14 [f17c9f40] process_one_work at c0251ea5
> > #15 [f17c9f84] worker_thread at c0252504
> > #16 [f17c9fbc] kthread at c025672b
> > #17 [f17c9fe8] kernel_thread_helper at c06b06f4
> > 
> > It seems that test 133 was running at the time of the crash in two cases.  This
> > is a neat patch set but we need to resolve this before pulling it in.
> > 
> 
> Indeed. It looks like I botched the need_iolock parameter to
> xfs_free_eofblocks() when I migrated to rely on EAGAIN rather than a
> blocking lock. Thanks for the report.
> 
> I'm surprised I didn't reproduce this. I will try and do so before I
> submit an updated set so I can verify a fix. Was this a repeated 133
> test or full xfstests run? Thanks again.

NP.  This is what I was running:

while true
do
./check -g auto
done

-Ben

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

      reply	other threads:[~2012-09-26 15:50 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-14 12:19 [PATCH v3 0/8] speculative preallocation inode tracking Brian Foster
2012-09-14 12:19 ` [PATCH v3 1/8] xfs: add EOFBLOCKS inode tagging/untagging Brian Foster
2012-09-14 12:19 ` [PATCH v3 2/8] xfs: support a tag-based inode_ag_iterator Brian Foster
2012-09-14 12:19 ` [PATCH v3 3/8] xfs: create helper to check whether to free eofblocks on inode Brian Foster
2012-09-14 12:19 ` [PATCH v3 4/8] xfs: export xfs_free_eofblocks() and return EAGAIN on trylock failure Brian Foster
2012-09-14 12:19 ` [PATCH v3 5/8] xfs: create function to scan and clear EOFBLOCKS inodes Brian Foster
2012-09-14 12:19 ` [PATCH v3 6/8] xfs: add XFS_IOC_FREE_EOFBLOCKS ioctl Brian Foster
2012-09-14 12:19 ` [PATCH v3 7/8] xfs: add enhanced filtering to EOFBLOCKS scan Brian Foster
2012-09-14 12:19 ` [PATCH v3 8/8] xfs: add background scanning to clear EOFBLOCKS inodes Brian Foster
2012-09-26 15:19 ` [PATCH v3 0/8] speculative preallocation inode tracking Ben Myers
2012-09-26 15:39   ` Ben Myers
2012-09-26 15:45   ` Brian Foster
2012-09-26 15:51     ` Ben Myers [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=20120926155157.GS25175@sgi.com \
    --to=bpm@sgi.com \
    --cc=bfoster@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox