From patchwork Thu Dec 4 10:43:45 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vincent Guittot X-Patchwork-Id: 41928 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ee0-f71.google.com (mail-ee0-f71.google.com [74.125.83.71]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 1521025E8C for ; Thu, 4 Dec 2014 10:44:15 +0000 (UTC) Received: by mail-ee0-f71.google.com with SMTP id c13sf10839628eek.2 for ; Thu, 04 Dec 2014 02:44:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:mime-version:in-reply-to:references :from:date:message-id:subject:to:cc:content-type:sender:precedence :list-id:x-original-sender:x-original-authentication-results :mailing-list:list-post:list-help:list-archive:list-unsubscribe; bh=74qILsv2Nsd+2DdC1v58nNFnmrEBwKRZT5hABCVgalg=; b=AstkuE5GWetJmVGSow8yfpiQFbU60LF7hEhcGEXyKMELVc9QYeNi9sx0hifS1WOvEd nJ+VpAUeCVGla0v4PdG/lkaCh0wRChuCcKaSAokkiOy3rOq9j4NaLsEpZ+c9FwpLjcYz tK1tbOt/LNWwOXdZvcMTJSf7KjXFqa93eRx4e2FHhJ5LgoOAYxmwLtJ7ZsHEYXXAGzsb ngykk0QTezNI3hOcs7nhvqAbEzzQmp3RdYf/jubBHOKpDTTcBus5Cws6gnjZnMdEzT13 k6/ANDPBLNyudJmIi2fyk3moDLpSj1LG7y9l+2vAw2pVeNe+/t38hAhg7jfiqxlxjvzw 0OKQ== X-Gm-Message-State: ALoCoQlfUldtDSPpul2zKSThU/D63SUPAQFeF1N7igyIkX0wMdskyb+m8rqV2pOAttRYcj/Leor6 X-Received: by 10.180.106.67 with SMTP id gs3mr17391821wib.3.1417689854318; Thu, 04 Dec 2014 02:44:14 -0800 (PST) X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.26.72 with SMTP id j8ls207898lag.105.gmail; Thu, 04 Dec 2014 02:44:14 -0800 (PST) X-Received: by 10.112.141.233 with SMTP id rr9mr2244340lbb.1.1417689854128; Thu, 04 Dec 2014 02:44:14 -0800 (PST) Received: from mail-lb0-f171.google.com (mail-lb0-f171.google.com. [209.85.217.171]) by mx.google.com with ESMTPS id li1si25447616lab.112.2014.12.04.02.44.14 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 04 Dec 2014 02:44:14 -0800 (PST) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.171 as permitted sender) client-ip=209.85.217.171; Received: by mail-lb0-f171.google.com with SMTP id n15so13939822lbi.16 for ; Thu, 04 Dec 2014 02:44:13 -0800 (PST) X-Received: by 10.152.2.165 with SMTP id 5mr8805145lav.40.1417689853613; Thu, 04 Dec 2014 02:44:13 -0800 (PST) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.184.201 with SMTP id ew9csp12422lbc; Thu, 4 Dec 2014 02:44:12 -0800 (PST) X-Received: by 10.66.226.167 with SMTP id rt7mr17240394pac.12.1417689851969; Thu, 04 Dec 2014 02:44:11 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ln4si42464888pab.151.2014.12.04.02.44.11 for ; Thu, 04 Dec 2014 02:44:11 -0800 (PST) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753907AbaLDKoI (ORCPT + 26 others); Thu, 4 Dec 2014 05:44:08 -0500 Received: from mail-oi0-f47.google.com ([209.85.218.47]:35615 "EHLO mail-oi0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753424AbaLDKoG (ORCPT ); Thu, 4 Dec 2014 05:44:06 -0500 Received: by mail-oi0-f47.google.com with SMTP id v63so12199525oia.20 for ; Thu, 04 Dec 2014 02:44:05 -0800 (PST) X-Received: by 10.182.20.76 with SMTP id l12mr6221617obe.63.1417689845160; Thu, 04 Dec 2014 02:44:05 -0800 (PST) MIME-Version: 1.0 Received: by 10.182.76.198 with HTTP; Thu, 4 Dec 2014 02:43:45 -0800 (PST) In-Reply-To: <27240C0AC20F114CBF8149A2696CBE4A01EEA337@SHSMSX101.ccr.corp.intel.com> References: <007f01d00fa1$68bf6770$3a3e3650$@alibaba-inc.com> <27240C0AC20F114CBF8149A2696CBE4A01EEA337@SHSMSX101.ccr.corp.intel.com> From: Vincent Guittot Date: Thu, 4 Dec 2014 11:43:45 +0100 Message-ID: Subject: Re: [PATCH] sched/fair: fix select_task_rq_fair return -1 To: "Liu, Chuansheng" Cc: Hillf Danton , "Zhang, Jun" , Ingo Molnar , Peter Zijlstra , linux-kernel , "Liu, Changcheng" Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: vincent.guittot@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.171 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , On 4 December 2014 at 11:23, Liu, Chuansheng wrote: > > >> -----Original Message----- >> From: Vincent Guittot [mailto:vincent.guittot@linaro.org] >> Sent: Thursday, December 04, 2014 6:08 PM >> To: Hillf Danton >> Cc: Zhang, Jun; Ingo Molnar; Peter Zijlstra; linux-kernel; Liu, Chuansheng; Liu, >> Changcheng >> Subject: Re: [PATCH] sched/fair: fix select_task_rq_fair return -1 >> >> On 4 December 2014 at 10:05, Hillf Danton wrote: >> >> >> >> From: zhang jun >> >> >> >> when cpu == -1 and sd->child == NULL, select_task_rq_fair return -1, system >> panic. >> >> >> >> [ 0.738326] BUG: unable to handle kernel paging request at >> ffff8800997ea928 >> >> [ 0.746138] IP: [] wake_up_new_task+0x43/0x1b0 >> >> [ 0.752886] PGD 25df067 PUD 0 >> >> [ 0.756321] Oops: 0000 1 PREEMPT SMP >> >> [ 0.760743] Modules linked in: >> >> [ 0.764179] CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted >> 3.14.19-quilt-b27ac761 #2 >> >> [ 0.772651] Hardware name: Intel Corporation CHERRYVIEW B1 >> PLATFORM/Cherry Trail CR, BIOS CHTTRVP1.X64.0003.R08.1411110453 >> >> 11/11/2014 >> >> [ 0.786084] Workqueue: khelper __call_usermodehelper >> >> [ 0.791649] task: ffff88007955a150 ti: ffff88007955c000 task.ti: >> ffff88007955c000 >> >> [ 0.800021] RIP: 0010:[] [] >> wake_up_new_task+0x43/0x1b0 >> >> [ 0.809478] RSP: 0000:ffff88007955dd58 EFLAGS: 00010092 >> >> [ 0.815422] RAX: 00000000ffffffff RBX: 0000000000000001 RCX: >> 0000000000000020 >> >> [ 0.823404] RDX: 00000000ffffffff RSI: 0000000000000020 RDI: >> 0000000000000020 >> >> [ 0.831386] RBP: ffff88007955dd80 R08: ffff880079604b58 R09: >> 00000000ffffffff >> >> [ 0.839368] R10: 0000000000000004 R11: eae0000000000000 R12: >> ffff8800797ea650 >> >> [ 0.847350] R13: 0000000000004000 R14: ffff8800797ead52 R15: >> 0000000000000206 >> >> [ 0.855335] FS: 0000000000000000(0000) GS:ffff88007aa00000(0000) >> knlGS:0000000000000000 >> >> [ 0.864387] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b >> >> [ 0.870817] CR2: ffff8800997ea928 CR3: 000000000220b000 CR4: >> 00000000001007f0 >> >> [ 0.878796] Stack: >> >> [ 0.881046] 0000000000000001 ffff8800797ea650 0000000000004000 >> 0000000000000000 >> >> [ 0.889363] 000000000000003c ffff88007955ddf0 ffffffff8107ddfd >> ffffffff810b6a95 >> >> [ 0.897680] 0000000000000000 ffff8800796beb00 ffff880000000000 >> ffffffff81000000 >> >> [ 0.905998] Call Trace: >> >> [ 0.908752] [] do_fork+0x12d/0x3b0 >> >> [ 0.914416] [] ? set_next_entity+0x95/0xb0 >> >> [ 0.920856] [] kernel_thread+0x26/0x30 >> >> [ 0.926903] [] __call_usermodehelper+0x2e/0x90 >> >> [ 0.933730] [] process_one_work+0x171/0x490 >> >> [ 0.940264] [] worker_thread+0x11b/0x3a0 >> >> [ 0.946508] [] ? manage_workers.isra.27+0x2b0/0x2b0 >> >> [ 0.953821] [] kthread+0xd2/0xf0 >> >> [ 0.959289] [] ? kthread_create_on_node+0x170/0x170 >> >> [ 0.966602] [] ret_from_fork+0x7c/0xb0 >> >> [ 0.972652] [] ? kthread_create_on_node+0x170/0x170 >> >> [ 0.979956] Code: 49 89 fc 4c 89 f7 53 e8 bc 5c a4 00 49 8b 54 24 08 31 c9 49 >> 89 c7 49 8b 44 24 60 4c 89 e7 8b 72 18 ba 08 00 00 00 ff 50 40 89 >> >> c2 <49> 0f a3 94 24 e0 02 00 00 19 c9 85 c9 0f 84 34 01 00 00 48 8b >> >> [ 1.001809] RIP [] wake_up_new_task+0x43/0x1b0 >> >> [ 1.008641] RSP >> >> [ 1.012544] CR2: ffff8800997ea928 >> >> [ 1.016279] --[ end trace 9737aaa337a5ca10 ]-- >> >> >> >> Signed-off-by: zhang jun >> >> Signed-off-by: Chuansheng Liu >> >> Signed-off-by: Changcheng Liu >> >> --- >> >> kernel/sched/fair.c | 2 ++ >> >> 1 file changed, 2 insertions(+) >> >> >> >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> >> index 34baa60..123153f 100644 >> >> --- a/kernel/sched/fair.c >> >> +++ b/kernel/sched/fair.c >> >> @@ -4587,6 +4587,8 @@ select_task_rq_fair(struct task_struct *p, int >> prev_cpu, int sd_flag, int wake_f >> >> if (new_cpu == -1 || new_cpu == cpu) { >> >> /* Now try balancing at a lower domain level of >> cpu */ >> >> sd = sd->child; >> >> + if ((!sd) && (new_cpu == -1)) >> >> + new_cpu = smp_processor_id(); >> >> continue; >> >> } >> >> >> > In 3.18-rc7 is -1 still selected? >> >> find_idlest_cpu doesn't return -1 anymore but always a valid cpu. The >> local cpu will be used if no better cpu has been found > > So I guess we can make one similar patch based on 3.14.x branch? > Latest: > find_idlest_cpu(struct sched_group *group, struct task_struct *p, int this_cpu) > return shallowest_idle_cpu != -1 ? shallowest_idle_cpu : least_loaded_cpu; > > 3.14.X: > find_idlest_cpu(struct sched_group *group, struct task_struct *p, int this_cpu) > return idlest; The change below will give a similar behavior than 3.18 for 3.14 and we still match the condition if (new_cpu == -1 || new_cpu == cpu) in order to go in the child level > --- 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/ --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4151,7 +4151,7 @@ static int find_idlest_cpu(struct sched_group *group, struct task_struct *p, int this_cpu) { unsigned long load, min_load = ULONG_MAX; - int idlest = -1; + int idlest = this_cpu; int i; /* Traverse only the allowed CPUs */