Received: with ECARTIS (v1.0.0; list xfs); Fri, 22 Aug 2008 14:11:42 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m7MLBc6v007191 for ; Fri, 22 Aug 2008 14:11:39 -0700 X-ASG-Debug-ID: 1219439579-4f2401d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from py-out-1112.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A14E51203D7F for ; Fri, 22 Aug 2008 14:13:00 -0700 (PDT) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.177]) by cuda.sgi.com with ESMTP id eQXKZzPf9Jebqvzu for ; Fri, 22 Aug 2008 14:13:00 -0700 (PDT) Received: by py-out-1112.google.com with SMTP id f31so433803pyh.4 for ; Fri, 22 Aug 2008 14:12:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:mime-version:content-type:content-transfer-encoding :content-disposition; bh=vNdVB30ok3LJ/2yEnbiNA95kFpbyIrJ45A5Skpfjj3Q=; b=bw7AmOZd34Y9rNqs8JnURgCkkBvhqQA5nFznDj/YwvnX1KDaPy1XOnEjSo5o5m/U7f 2waiUP2LJOp0K/yDKuobBozob/J1m6G/FzgfiuzGMwgOhSU+eIlEWq/0wsuh31KsJRqF cucYP3zS63SVkNn9QOJvY3V7djXL9XEU669UU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type :content-transfer-encoding:content-disposition; b=KSImIORA/uTVHDdhCD4fikn8ATWAS88Klwo0rIB0zrJe9LYrlbrlp0g/+ewCz9mrZR 56KwboZ6chAvszHnoNHjXk1pMSthT2a0RJ1mebrjHjVKQbm9va/eCsXmNSjs1vAC7TUp HOfrM+hXB7FzSErGyHA5r5zkQRRRydNdCGAQU= Received: by 10.65.54.9 with SMTP id g9mr1870886qbk.55.1219439579364; Fri, 22 Aug 2008 14:12:59 -0700 (PDT) Received: by 10.65.159.4 with HTTP; Fri, 22 Aug 2008 14:12:59 -0700 (PDT) Message-ID: <6278d2220808221412x28f4ac5dl508884c8030b364a@mail.gmail.com> Date: Fri, 22 Aug 2008 22:12:59 +0100 From: "Daniel J Blueman" To: "Linux Kernel" , xfs@oss.sgi.com X-ASG-Orig-Subj: [2.6.27-rc4] XFS i_lock vs i_iolock... Subject: [2.6.27-rc4] XFS i_lock vs i_iolock... Cc: "Christoph Lameter" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Barracuda-Connect: py-out-1112.google.com[64.233.166.177] X-Barracuda-Start-Time: 1219439580 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.3424 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV 0.91.2/8074/Fri Aug 22 10:40:18 2008 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 17681 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: daniel.blueman@gmail.com Precedence: bulk X-list: xfs On 2.6.27-rc4 with various debug options enabled, lockdep claims lock ordering issues with XFS [1] - easiest reproducer is just running xfs_fsr. Mount options I was using were 'nobarrier,noatime,nodiratime'. Thanks, Daniel --- [1] ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.27-rc4-224c #1 ------------------------------------------------------- xfs_fsr/5763 is trying to acquire lock: (&(&ip->i_lock)->mr_lock/2){--..}, at: [] xfs_ilock+0x8c/0xb0 but task is already holding lock: (&(&ip->i_iolock)->mr_lock/3){--..}, at: [] xfs_ilock+0xa5/0xb0 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&(&ip->i_iolock)->mr_lock/3){--..}: [] __lock_acquire+0xdb1/0x1150 [] lock_acquire+0x91/0xc0 [] down_write_nested+0x57/0x90 [] xfs_ilock+0xa5/0xb0 [] xfs_lock_two_inodes+0x106/0x120 [] xfs_swap_extents+0x70/0x5b0 [] xfs_swapext+0x148/0x150 [] xfs_ioctl+0x6a5/0x810 [] xfs_file_ioctl_invis+0x3d/0x80 [] vfs_ioctl+0x36/0xb0 [] do_vfs_ioctl+0x28b/0x2f0 [] sys_ioctl+0x4f/0x80 [] system_call_fastpath+0x16/0x1b [] 0xffffffffffffffff -> #0 (&(&ip->i_lock)->mr_lock/2){--..}: [] __lock_acquire+0xe95/0x1150 [] lock_acquire+0x91/0xc0 [] down_write_nested+0x57/0x90 [] xfs_ilock+0x8c/0xb0 [] xfs_lock_two_inodes+0x70/0x120 [] xfs_swap_extents+0x293/0x5b0 [] xfs_swapext+0x148/0x150 [] xfs_ioctl+0x6a5/0x810 [] xfs_file_ioctl_invis+0x3d/0x80 [] vfs_ioctl+0x36/0xb0 [] do_vfs_ioctl+0x28b/0x2f0 [] sys_ioctl+0x4f/0x80 [] system_call_fastpath+0x16/0x1b [] 0xffffffffffffffff other info that might help us debug this: 2 locks held by xfs_fsr/5763: #0: (&(&ip->i_iolock)->mr_lock/2){--..}, at: [] xfs_ilock+0xa5/0xb0 #1: (&(&ip->i_iolock)->mr_lock/3){--..}, at: [] xfs_ilock+0xa5/0xb0 stack backtrace: Pid: 5763, comm: xfs_fsr Not tainted 2.6.27-rc4-224c #1 Call Trace: [] print_circular_bug_tail+0x9f/0xe0 [] __lock_acquire+0xe95/0x1150 [] lock_acquire+0x91/0xc0 [] ? xfs_ilock+0x8c/0xb0 [] down_write_nested+0x57/0x90 [] ? xfs_ilock+0x8c/0xb0 [] xfs_ilock+0x8c/0xb0 [] xfs_lock_two_inodes+0x70/0x120 [] xfs_swap_extents+0x293/0x5b0 [] xfs_swapext+0x148/0x150 [] xfs_ioctl+0x6a5/0x810 [] ? native_sched_clock+0x70/0xa0 [] ? mnt_drop_write+0x62/0x140 [] xfs_file_ioctl_invis+0x3d/0x80 [] vfs_ioctl+0x36/0xb0 [] do_vfs_ioctl+0x28b/0x2f0 [] ? trace_hardirqs_on_thunk+0x3a/0x3f [] sys_ioctl+0x4f/0x80 [] system_call_fastpath+0x16/0x1b -- Daniel J Blueman