From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754851AbcFGKNj (ORCPT ); Tue, 7 Jun 2016 06:13:39 -0400 Received: from foss.arm.com ([217.140.101.70]:42649 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752727AbcFGKNg (ORCPT ); Tue, 7 Jun 2016 06:13:36 -0400 Date: Tue, 7 Jun 2016 11:14:02 +0100 From: Juri Lelli To: Daniel Bristot de Oliveira Cc: linux-kernel@vger.kernel.org, Rik van Riel , "Luis Claudio R. Goncalves" , Tejun Heo , Li Zefan , Johannes Weiner , cgroups@vger.kernel.org Subject: Re: [PATCH] cgroup: disable irqs while holding css_set_lock Message-ID: <20160607101402.GP9340@e106622-lin> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 06/06/16 19:24, Daniel Bristot de Oliveira wrote: > While testing the deadline scheduler + cgroup setup I hit this > warning. > > [ 132.612935] ------------[ cut here ]------------ > [ 132.612951] WARNING: CPU: 5 PID: 0 at kernel/softirq.c:150 __local_bh_enable_ip+0x6b/0x80 > [ 132.612952] Modules linked in: (a ton of modules...) > [ 132.612981] CPU: 5 PID: 0 Comm: swapper/5 Not tainted 4.7.0-rc2 #2 > [ 132.612981] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.2-20150714_191134- 04/01/2014 > [ 132.612982] 0000000000000086 45c8bb5effdd088b ffff88013fd43da0 ffffffff813d229e > [ 132.612984] 0000000000000000 0000000000000000 ffff88013fd43de0 ffffffff810a652b > [ 132.612985] 00000096811387b5 0000000000000200 ffff8800bab29d80 ffff880034c54c00 > [ 132.612986] Call Trace: > [ 132.612987] [] dump_stack+0x63/0x85 > [ 132.612994] [] __warn+0xcb/0xf0 > [ 132.612997] [] ? push_dl_task.part.32+0x170/0x170 > [ 132.612999] [] warn_slowpath_null+0x1d/0x20 > [ 132.613000] [] __local_bh_enable_ip+0x6b/0x80 > [ 132.613008] [] _raw_write_unlock_bh+0x1a/0x20 > [ 132.613010] [] _raw_spin_unlock_bh+0xe/0x10 > [ 132.613015] [] put_css_set+0x5c/0x60 > [ 132.613016] [] cgroup_free+0x7f/0xa0 > [ 132.613017] [] __put_task_struct+0x42/0x140 > [ 132.613018] [] dl_task_timer+0xca/0x250 > [ 132.613027] [] ? push_dl_task.part.32+0x170/0x170 > [ 132.613030] [] __hrtimer_run_queues+0xee/0x270 > [ 132.613031] [] hrtimer_interrupt+0xa8/0x190 > [ 132.613034] [] local_apic_timer_interrupt+0x38/0x60 > [ 132.613035] [] smp_apic_timer_interrupt+0x3d/0x50 > [ 132.613037] [] apic_timer_interrupt+0x8c/0xa0 > [ 132.613038] [] ? native_safe_halt+0x6/0x10 > [ 132.613043] [] default_idle+0x1e/0xd0 > [ 132.613044] [] arch_cpu_idle+0xf/0x20 > [ 132.613046] [] default_idle_call+0x2a/0x40 > [ 132.613047] [] cpu_startup_entry+0x2e7/0x340 > [ 132.613048] [] start_secondary+0x155/0x190 > [ 132.613049] ---[ end trace f91934d162ce9977 ]--- > > The warn is the spin_(lock|unlock)_bh(&css_set_lock) in the interrupt > context. Converting the spin_lock_bh to spin_lock_irqsave to avoid this > problem - and other problems of sharing a spinlock with an interrupt. > Interesting. And your test is using cpuset controller to partion DEADLINE tasks and then modify groups concurrently? Best, - Juri