Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752284AbbHPNrW (ORCPT ); Sun, 16 Aug 2015 09:47:22 -0400 Received: from ipmail06.adl6.internode.on.net ([150.101.137.145]:14367 "EHLO ipmail06.adl6.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751361AbbHPNrU (ORCPT ); Sun, 16 Aug 2015 09:47:20 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2CRAQAMk9BV/yoDAg4NUMddglYCgXkBAQEBAQGFLwEBBAEBASQRQAEQCxgJFg8JAwIBAgFFBgEMAQcCwEOWNgEBAQEBAQEBAQEBAQEBAQEBARqLUoUJB4QsAQSNUYdMm0yLR4Qzgy0BAQE Message-ID: <55D0945A.2040505@internode.on.net> Date: Sun, 16 Aug 2015 23:17:06 +0930 From: Arthur Marsh User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 Newsgroups: gmane.linux.kernel,gmane.linux.file-systems To: Oleg Nesterov , Al Viro CC: Dave Chinner , Dave Hansen , Jan Kara , "Paul E. McKenney" , Peter Zijlstra , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 0/8] change sb_writers to use percpu_rw_semaphore References: <20150814171935.GA15042@redhat.com> In-Reply-To: <20150814171935.GA15042@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 8187 Lines: 160 Oleg Nesterov wrote on 15/08/15 02:49: > On 08/13, Jan Kara wrote: >> >> Regarding the routing, ideally Al Viro should take these as a VFS >> maintainer. > > Al, could you take these patches? > > Only cosmetic changes in V3 to address the comments from Jan, I > preserved his acks. > > In case you missed all the spam I sent before, let me repeat that > the awful (and currently unneeded) 7/8 will be reverted later. We > need it to ensure that other percpu_rw_semaphore changes routed > via another tree won't break fs/super.c. After that we will add > rcu_sync_dtor(s_writers->rw_sem) into deactivate_locked_super() > and revert this horror. > > 3/8 documents the lockdep problems we currently have. This is fixed > by the patch below but it depends on xfs ILOCK fixes from Dave, so > I will send it later. Plus another patch which removes the "trylock" > hack in __sb_start_write(). > > Oleg. Would these patches address what I've seen in the last day or so using Linus' git head kernel and seeing problems like: [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.2.0-rc6+ (root@victoria) (gcc version 5.2.1 20150808 (Debian 5.2.1-15) ) #11 SMP PREEMPT Sun Aug 16 07:27:00 ACST 2015 ... [ 6000.096107] INFO: task basename:7796 blocked for more than 120 seconds. [ 6000.096116] Not tainted 4.2.0-rc6+ #11 [ 6000.096120] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 6000.096123] basename D e7b5b180 0 7796 6936 0x00000000 [ 6000.096132] c0379a84 00000086 c11127a5 e7b5b180 e7b5b5ec 2e0a5fb9 00000557 f5f0b310 [ 6000.096143] f330b180 e7b5b180 c037a000 f5f0b300 7fffffff c0379a90 c155b740 00000000 [ 6000.096154] c0379b04 c155fa1d 00000046 c11127a5 00000246 00000000 c0379ab0 c10a569b [ 6000.096164] Call Trace: [ 6000.096174] [] ? __delayacct_blkio_start+0x15/0x20 [ 6000.096179] [] schedule+0x30/0x80 [ 6000.096184] [] schedule_timeout+0x2cd/0x5c0 [ 6000.096188] [] ? __delayacct_blkio_start+0x15/0x20 [ 6000.096193] [] ? trace_hardirqs_on+0xb/0x10 [ 6000.096198] [] ? ktime_get+0xac/0x1a0 [ 6000.096202] [] ? __delayacct_blkio_start+0x15/0x20 [ 6000.096206] [] io_schedule_timeout+0x89/0xf0 [ 6000.096209] [] ? bit_wait+0x40/0x40 [ 6000.096213] [] bit_wait_io+0x25/0x50 [ 6000.096216] [] __wait_on_bit+0x49/0x70 [ 6000.096219] [] ? bit_wait+0x40/0x40 [ 6000.096223] [] out_of_line_wait_on_bit+0x5d/0x70 [ 6000.096226] [] ? bit_wait+0x40/0x40 [ 6000.096230] [] ? autoremove_wake_function+0x40/0x40 [ 6000.096236] [] bh_submit_read+0x7e/0x90 [ 6000.096265] [] ext4_get_branch+0xa4/0x110 [ext4] [ 6000.096286] [] ext4_ind_map_blocks+0xd4/0xe30 [ext4] [ 6000.096291] [] ? __lock_acquire+0x910/0x16a0 [ 6000.096295] [] ? __lock_acquire+0x910/0x16a0 [ 6000.096300] [] ? down_read+0x33/0x50 [ 6000.096315] [] ext4_map_blocks+0x29d/0x4f0 [ext4] [ 6000.096319] [] ? mark_held_locks+0x5b/0x90 [ 6000.096323] [] ? trace_hardirqs_on_caller+0x12c/0x1d0 [ 6000.096337] [] ? ext4_readpages+0x32/0x40 [ext4] [ 6000.096358] [] ext4_mpage_readpages+0x30b/0x8c0 [ext4] [ 6000.096372] [] ? ext4_readpages+0x32/0x40 [ext4] [ 6000.096377] [] ? __alloc_pages_nodemask+0x9c0/0xa40 [ 6000.096383] [] ? preempt_count_sub+0x26/0x70 [ 6000.096397] [] ext4_readpages+0x32/0x40 [ext4] [ 6000.096411] [] ? do_journal_get_write_access+0xb0/0xb0 [ext4] [ 6000.096416] [] __do_page_cache_readahead+0x2e6/0x370 [ 6000.096420] [] ? __do_page_cache_readahead+0x1a3/0x370 [ 6000.096426] [] filemap_fault+0x505/0x570 [ 6000.096430] [] ? __do_fault+0x2f/0x80 [ 6000.096435] [] __do_fault+0x2f/0x80 [ 6000.096439] [] ? _raw_spin_unlock+0x27/0x50 [ 6000.096443] [] handle_mm_fault+0xb22/0x11d0 [ 6000.096448] [] __do_page_fault+0x16a/0x500 [ 6000.096452] [] ? __do_page_fault+0x500/0x500 [ 6000.096456] [] do_page_fault+0x21/0x30 [ 6000.096460] [] error_code+0x5f/0x64 [ 6000.096464] [] ? __do_page_fault+0x500/0x500 [ 6000.096468] 2 locks held by basename/7796: [ 6000.096470] #0: (&mm->mmap_sem){++++++}, at: [] __do_page_fault+0x115/0x500 [ 6000.096479] #1: (&ei->i_data_sem){++++..}, at: [] ext4_map_blocks+0x39b/0x4f0 [ext4] [ 6000.096500] INFO: task hddtemp:7797 blocked for more than 120 seconds. [ 6000.096503] Not tainted 4.2.0-rc6+ #11 [ 6000.096505] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 6000.096508] hddtemp D e896d100 0 7797 5140 0x00000000 [ 6000.096514] c02c3a84 00000086 e896d588 e896d100 e896d56c 00000001 c02c3a84 f5f0b310 [ 6000.096525] c176fb00 e896d100 c02c4000 f5f0b300 7fffffff c02c3a90 c155b740 00000000 [ 6000.096535] c02c3b04 c155fa1d 00000046 c11127a5 00000246 00000000 c02c3ab0 c10a569b [ 6000.096546] Call Trace: [ 6000.096550] [] schedule+0x30/0x80 [ 6000.096554] [] schedule_timeout+0x2cd/0x5c0 [ 6000.096558] [] ? __delayacct_blkio_start+0x15/0x20 [ 6000.096562] [] ? trace_hardirqs_on+0xb/0x10 [ 6000.096566] [] ? ktime_get+0xac/0x1a0 [ 6000.096569] [] ? __delayacct_blkio_start+0x15/0x20 [ 6000.096574] [] io_schedule_timeout+0x89/0xf0 [ 6000.096577] [] ? prepare_to_wait_exclusive+0x47/0x80 [ 6000.096581] [] ? bit_wait+0x40/0x40 [ 6000.096584] [] bit_wait_io+0x25/0x50 [ 6000.096587] [] __wait_on_bit_lock+0x32/0x80 [ 6000.096591] [] out_of_line_wait_on_bit_lock+0x5d/0x70 [ 6000.096595] [] ? bit_wait+0x40/0x40 [ 6000.096598] [] ? autoremove_wake_function+0x40/0x40 [ 6000.096602] [] bh_uptodate_or_lock+0x66/0x70 [ 6000.096623] [] ext4_get_branch+0x99/0x110 [ext4] [ 6000.096643] [] ext4_ind_map_blocks+0xd4/0xe30 [ext4] [ 6000.096647] [] ? __lock_acquire+0x910/0x16a0 [ 6000.096651] [] ? __lock_acquire+0x910/0x16a0 [ 6000.096656] [] ? down_read+0x33/0x50 [ 6000.096671] [] ext4_map_blocks+0x29d/0x4f0 [ext4] [ 6000.096675] [] ? mark_held_locks+0x5b/0x90 [ 6000.096679] [] ? trace_hardirqs_on_caller+0x12c/0x1d0 [ 6000.096693] [] ? ext4_readpages+0x32/0x40 [ext4] [ 6000.096713] [] ext4_mpage_readpages+0x30b/0x8c0 [ext4] [ 6000.096727] [] ? ext4_readpages+0x32/0x40 [ext4] [ 6000.096732] [] ? __alloc_pages_nodemask+0x9c0/0xa40 [ 6000.096747] [] ext4_readpages+0x32/0x40 [ext4] [ 6000.096761] [] ? do_journal_get_write_access+0xb0/0xb0 [ext4] [ 6000.096766] [] __do_page_cache_readahead+0x2e6/0x370 [ 6000.096770] [] ? __do_page_cache_readahead+0x1a3/0x370 [ 6000.096775] [] filemap_fault+0x505/0x570 [ 6000.096779] [] ? __do_fault+0x2f/0x80 [ 6000.096783] [] __do_fault+0x2f/0x80 [ 6000.096787] [] ? _raw_spin_unlock+0x27/0x50 [ 6000.096791] [] handle_mm_fault+0xb22/0x11d0 [ 6000.096796] [] __do_page_fault+0x16a/0x500 [ 6000.096800] [] ? __do_page_fault+0x500/0x500 [ 6000.096803] [] do_page_fault+0x21/0x30 [ 6000.096807] [] error_code+0x5f/0x64 [ 6000.096811] [] ? __do_page_fault+0x500/0x500 [ 6000.096815] 2 locks held by hddtemp/7797: [ 6000.096817] #0: (&mm->mmap_sem){++++++}, at: [] __do_page_fault+0x115/0x500 [ 6000.096825] #1: (&ei->i_data_sem){++++..}, at: [] ext4_map_blocks+0x39b/0x4f0 [ext4] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/