From: Vlastimil Babka <vbabka@suse.cz>
To: Hugh Dickins <hughd@google.com>, Sasha Levin <sasha.levin@oracle.com>
Cc: akpm@linux-foundation.org, davej@redhat.com, koct9i@gmail.com,
lczerner@redhat.com, stable@vger.kernel.org,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: + shmem-fix-faulting-into-a-hole-while-its-punched-take-2.patch added to -mm tree
Date: Wed, 09 Jul 2014 11:50:11 +0200 [thread overview]
Message-ID: <53BD1053.5020401@suse.cz> (raw)
In-Reply-To: <alpine.LSU.2.11.1407082309040.7374@eggly.anvils>
On 07/09/2014 08:35 AM, Hugh Dickins wrote:
> On Wed, 9 Jul 2014, Sasha Levin wrote:
>> On 07/02/2014 03:25 PM, akpm@linux-foundation.org wrote:
>>> From: Hugh Dickins <hughd@google.com>
>>> Subject: shmem: fix faulting into a hole while it's punched, take 2
>>
>> I suspect there's something off with this patch, as the shmem_fallocate
>> hangs are back... Pretty much same as before:
>
> Thank you for reporting, but that is depressing news.
>
> I don't see what's wrong with this (take 2) patch,
> and I don't see that it's been garbled in any way in next-20140708.
>
>>
>> [ 363.600969] INFO: task trinity-c327:9203 blocked for more than 120 seconds.
>> [ 363.605359] Not tainted 3.16.0-rc4-next-20140708-sasha-00022-g94c7290-dirty #772
>> [ 363.609730] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
>> [ 363.615861] trinity-c327 D 000000000000000b 13496 9203 8559 0x10000004
>> [ 363.620284] ffff8800b857bce8 0000000000000002 ffffffff9dc11b10 0000000000000001
>> [ 363.624468] ffff880104860000 ffff8800b857bfd8 00000000001d7740 00000000001d7740
>> [ 363.629118] ffff880104863000 ffff880104860000 ffff8800b857bcd8 ffff8801eaed8868
>> [ 363.633879] Call Trace:
>> [ 363.635442] [<ffffffff9a4dc535>] schedule+0x65/0x70
>> [ 363.638638] [<ffffffff9a4dc948>] schedule_preempt_disabled+0x18/0x30
>> [ 363.642833] [<ffffffff9a4df0a5>] mutex_lock_nested+0x2e5/0x550
>> [ 363.646599] [<ffffffff972a4d7c>] ? shmem_fallocate+0x6c/0x350
>> [ 363.651319] [<ffffffff9719b721>] ? get_parent_ip+0x11/0x50
>> [ 363.654683] [<ffffffff972a4d7c>] ? shmem_fallocate+0x6c/0x350
>> [ 363.658264] [<ffffffff972a4d7c>] shmem_fallocate+0x6c/0x350
>
> So it's trying to acquire i_mutex at shmem_fallocate+0x6c...
>
>> [ 363.662010] [<ffffffff971bd96e>] ? put_lock_stats.isra.12+0xe/0x30
>> [ 363.665866] [<ffffffff9730c043>] do_fallocate+0x153/0x1d0
>> [ 363.669381] [<ffffffff972b472f>] SyS_madvise+0x33f/0x970
>> [ 363.672906] [<ffffffff9a4e3f13>] tracesys+0xe1/0xe6
>> [ 363.682900] 2 locks held by trinity-c327/9203:
>> [ 363.684928] #0: (sb_writers#12){.+.+.+}, at: [<ffffffff9730c02d>] do_fallocate+0x13d/0x1d0
>> [ 363.715102] #1: (&sb->s_type->i_mutex_key#16){+.+.+.}, at: [<ffffffff972a4d7c>] shmem_fallocate+0x6c/0x350
>
> ...but it already holds i_mutex, acquired at shmem_fallocate+0x6c.
> Am I reading that correctly?
I wonder, why wouldn't lockdep fire here if it was a double lock? I
assume lockdep is enabled. It seems to me that the lock #1 is being
printed because it's being acquired, not because it already is acquired.
__mutex_lock_common() calls mutex_acquire_nest() *before* it actually
tries to acquire the mutex. So the output is just confusing.
So it would again help to see stacks of other tasks, to see who holds
the i_mutex and where it's stuck...
Vlastimil
> In my source for next-20140708, the only return from shmem_fallocate()
> which omits to mutex_unlock(&inode->i_mutex) is the "return -EOPNOTSUPP"
> at the top, just before the mutex_lock(&inode->i_mutex). And inode
> doesn't get reassigned in the middle.
>
> Does 3.16.0-rc4-next-20140708-sasha-00022-g94c7290-dirty look different?
>
> Hugh
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Vlastimil Babka <vbabka@suse.cz>
To: Hugh Dickins <hughd@google.com>, Sasha Levin <sasha.levin@oracle.com>
Cc: akpm@linux-foundation.org, davej@redhat.com, koct9i@gmail.com,
lczerner@redhat.com, stable@vger.kernel.org,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: + shmem-fix-faulting-into-a-hole-while-its-punched-take-2.patch added to -mm tree
Date: Wed, 09 Jul 2014 11:50:11 +0200 [thread overview]
Message-ID: <53BD1053.5020401@suse.cz> (raw)
In-Reply-To: <alpine.LSU.2.11.1407082309040.7374@eggly.anvils>
On 07/09/2014 08:35 AM, Hugh Dickins wrote:
> On Wed, 9 Jul 2014, Sasha Levin wrote:
>> On 07/02/2014 03:25 PM, akpm@linux-foundation.org wrote:
>>> From: Hugh Dickins <hughd@google.com>
>>> Subject: shmem: fix faulting into a hole while it's punched, take 2
>>
>> I suspect there's something off with this patch, as the shmem_fallocate
>> hangs are back... Pretty much same as before:
>
> Thank you for reporting, but that is depressing news.
>
> I don't see what's wrong with this (take 2) patch,
> and I don't see that it's been garbled in any way in next-20140708.
>
>>
>> [ 363.600969] INFO: task trinity-c327:9203 blocked for more than 120 seconds.
>> [ 363.605359] Not tainted 3.16.0-rc4-next-20140708-sasha-00022-g94c7290-dirty #772
>> [ 363.609730] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
>> [ 363.615861] trinity-c327 D 000000000000000b 13496 9203 8559 0x10000004
>> [ 363.620284] ffff8800b857bce8 0000000000000002 ffffffff9dc11b10 0000000000000001
>> [ 363.624468] ffff880104860000 ffff8800b857bfd8 00000000001d7740 00000000001d7740
>> [ 363.629118] ffff880104863000 ffff880104860000 ffff8800b857bcd8 ffff8801eaed8868
>> [ 363.633879] Call Trace:
>> [ 363.635442] [<ffffffff9a4dc535>] schedule+0x65/0x70
>> [ 363.638638] [<ffffffff9a4dc948>] schedule_preempt_disabled+0x18/0x30
>> [ 363.642833] [<ffffffff9a4df0a5>] mutex_lock_nested+0x2e5/0x550
>> [ 363.646599] [<ffffffff972a4d7c>] ? shmem_fallocate+0x6c/0x350
>> [ 363.651319] [<ffffffff9719b721>] ? get_parent_ip+0x11/0x50
>> [ 363.654683] [<ffffffff972a4d7c>] ? shmem_fallocate+0x6c/0x350
>> [ 363.658264] [<ffffffff972a4d7c>] shmem_fallocate+0x6c/0x350
>
> So it's trying to acquire i_mutex at shmem_fallocate+0x6c...
>
>> [ 363.662010] [<ffffffff971bd96e>] ? put_lock_stats.isra.12+0xe/0x30
>> [ 363.665866] [<ffffffff9730c043>] do_fallocate+0x153/0x1d0
>> [ 363.669381] [<ffffffff972b472f>] SyS_madvise+0x33f/0x970
>> [ 363.672906] [<ffffffff9a4e3f13>] tracesys+0xe1/0xe6
>> [ 363.682900] 2 locks held by trinity-c327/9203:
>> [ 363.684928] #0: (sb_writers#12){.+.+.+}, at: [<ffffffff9730c02d>] do_fallocate+0x13d/0x1d0
>> [ 363.715102] #1: (&sb->s_type->i_mutex_key#16){+.+.+.}, at: [<ffffffff972a4d7c>] shmem_fallocate+0x6c/0x350
>
> ...but it already holds i_mutex, acquired at shmem_fallocate+0x6c.
> Am I reading that correctly?
I wonder, why wouldn't lockdep fire here if it was a double lock? I
assume lockdep is enabled. It seems to me that the lock #1 is being
printed because it's being acquired, not because it already is acquired.
__mutex_lock_common() calls mutex_acquire_nest() *before* it actually
tries to acquire the mutex. So the output is just confusing.
So it would again help to see stacks of other tasks, to see who holds
the i_mutex and where it's stuck...
Vlastimil
> In my source for next-20140708, the only return from shmem_fallocate()
> which omits to mutex_unlock(&inode->i_mutex) is the "return -EOPNOTSUPP"
> at the top, just before the mutex_lock(&inode->i_mutex). And inode
> doesn't get reassigned in the middle.
>
> Does 3.16.0-rc4-next-20140708-sasha-00022-g94c7290-dirty look different?
>
> Hugh
>
next prev parent reply other threads:[~2014-07-09 9:50 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-02 19:25 + shmem-fix-faulting-into-a-hole-while-its-punched-take-2.patch added to -mm tree akpm
2014-07-09 4:03 ` Sasha Levin
2014-07-09 4:03 ` Sasha Levin
2014-07-09 6:35 ` Hugh Dickins
2014-07-09 6:35 ` Hugh Dickins
2014-07-09 9:50 ` Vlastimil Babka [this message]
2014-07-09 9:50 ` Vlastimil Babka
2014-07-09 12:47 ` Sasha Levin
2014-07-09 12:47 ` Sasha Levin
2014-07-09 16:03 ` Sasha Levin
2014-07-09 16:35 ` Vlastimil Babka
2014-07-09 16:35 ` Vlastimil Babka
2014-07-09 17:05 ` Hugh Dickins
2014-07-09 17:05 ` Hugh Dickins
2014-07-10 1:04 ` Hugh Dickins
2014-07-10 1:04 ` Hugh Dickins
2014-07-10 7:37 ` Hugh Dickins
2014-07-10 7:37 ` Hugh Dickins
2014-07-10 12:46 ` Sasha Levin
2014-07-10 12:46 ` Sasha Levin
2014-07-10 17:21 ` Sasha Levin
2014-07-10 17:21 ` Sasha Levin
2014-07-10 17:55 ` Hugh Dickins
2014-07-10 17:55 ` Hugh Dickins
2014-07-10 18:14 ` Sasha Levin
2014-07-10 18:52 ` Hugh Dickins
2014-07-10 18:52 ` Hugh Dickins
2014-07-10 19:02 ` Sasha Levin
2014-07-10 19:02 ` Sasha Levin
2014-07-10 19:06 ` Hugh Dickins
2014-07-10 19:06 ` Hugh Dickins
2014-07-10 19:09 ` Sasha Levin
2014-07-10 19:09 ` Sasha Levin
2014-07-10 19:56 ` Hugh Dickins
2014-07-10 19:56 ` Hugh Dickins
2014-07-11 8:25 ` Peter Zijlstra
2014-07-11 8:25 ` Peter Zijlstra
2014-07-11 8:33 ` Vlastimil Babka
2014-07-11 8:33 ` Vlastimil Babka
2014-07-11 8:38 ` Peter Zijlstra
2014-07-11 8:38 ` Peter Zijlstra
2014-07-11 8:51 ` Vlastimil Babka
2014-07-11 8:51 ` Vlastimil Babka
2014-07-11 12:22 ` Sasha Levin
2014-07-11 12:22 ` Sasha Levin
2014-07-11 14:55 ` Hugh Dickins
2014-07-11 14:55 ` Hugh Dickins
2014-07-11 15:59 ` Peter Zijlstra
2014-07-11 15:59 ` Peter Zijlstra
2014-07-13 21:43 ` Sasha Levin
2014-07-13 21:43 ` Sasha Levin
2014-07-14 10:10 ` Peter Zijlstra
2014-07-10 20:06 ` Hugh Dickins
2014-07-10 20:06 ` Hugh Dickins
2014-07-11 6:59 ` Hugh Dickins
2014-07-11 6:59 ` Hugh Dickins
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=53BD1053.5020401@suse.cz \
--to=vbabka@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=davej@redhat.com \
--cc=hughd@google.com \
--cc=koct9i@gmail.com \
--cc=lczerner@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=sasha.levin@oracle.com \
--cc=stable@vger.kernel.org \
/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.