Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1805960imm; Mon, 3 Sep 2018 09:55:40 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZ+HBosqHWoXJvMvoWSxM8dNR84ZTBY8oGs1lWuLroVJ9kMvWqMKLyWjbdOne7za6wT1jIP X-Received: by 2002:a62:8913:: with SMTP id v19-v6mr30578081pfd.127.1535993740075; Mon, 03 Sep 2018 09:55:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535993740; cv=none; d=google.com; s=arc-20160816; b=hbRBkK7J4zExX+jxUfA6kUXs2KnxvbMhEpHGfYYd2CNPwR4vi1RovW5OCnfXsjsKDx PQdZ5c6oDEyty7kbvsZ+nI6sHqr5XkAWDKVK709NcxiaSpAGailKdRTEttyKRZZJyITI ZkyJ+dHeLIsCOYi1sA3Co/vQxc0NeLwOscPsQlC3P6nYoNYZQCQfpbmYvX0KyQFI+hRE onoQqMI3Zh9bNOQES8ehILloRgdm5yVHiISj5Zr3mNgAGK72fBfHzyVV6pJ/iUbh2uN/ zRh3qQqVYjPUWItJs7b1zB/sPLKvMth/2is0Wew3LIQn19/N/puM7/+3MWwbfVHCzG5k R+wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=xVrMh1Lw0YIWtRSWbqdkE7eX8CO7rpTKiBG7h+Jm4Kk=; b=k928Tv1R9ZsTOB3aqn7LiY3smSIPvmqtNTT4QKeUWDVloXcOrWffXYNmGnF1U6yTWF CMhQUTLa3/jd4c4Lo+ajInCXZm6lSylFiZA5tJ77NwsKRWuyU2jgDYbwSqOlS1EXRLYl dKvQz9/k9xutRH3s2SwQiAarxdroNa/532tnJzyOUdvnbu3GnqkZFhPHS9eGfpT4pjmx 6OXZP7qV0Fnvxf7bZ85BwuXo8TdVquWUsclHVi1dT+857A81uIojHcXz0IKeCowng42P IvfrZ8YW+1vWHFumBnX9V7/RlBEgEKlhKBmduKq46bC4+iwUYOOHUS4ryqChyKyiH7u3 xFMw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a3-v6si18919344plc.50.2018.09.03.09.55.24; Mon, 03 Sep 2018 09:55:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728737AbeICVOJ (ORCPT + 99 others); Mon, 3 Sep 2018 17:14:09 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:38062 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728150AbeICVOH (ORCPT ); Mon, 3 Sep 2018 17:14:07 -0400 Received: from localhost (ip-213-127-74-90.ip.prioritytelecom.net [213.127.74.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 7D607CA8; Mon, 3 Sep 2018 16:53:09 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, James Puthukattukaran , Ethan Zhao , "Peter Zijlstra (Intel)" , Linus Torvalds , Thomas Gleixner , efault@gmx.de, ethan.kernel@gmail.com, keescook@chromium.org, mcgrof@kernel.org, Ingo Molnar , Steve Muckle Subject: [PATCH 4.4 01/80] sched/sysctl: Check user input value of sysctl_sched_time_avg Date: Mon, 3 Sep 2018 18:48:39 +0200 Message-Id: <20180903164934.231381666@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180903164934.171677301@linuxfoundation.org> References: <20180903164934.171677301@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Ethan Zhao commit 5ccba44ba118a5000cccc50076b0344632459779 upstream. System will hang if user set sysctl_sched_time_avg to 0: [root@XXX ~]# sysctl kernel.sched_time_avg_ms=0 Stack traceback for pid 0 0xffff883f6406c600 0 0 1 3 R 0xffff883f6406cf50 *swapper/3 ffff883f7ccc3ae8 0000000000000018 ffffffff810c4dd0 0000000000000000 0000000000017800 ffff883f7ccc3d78 0000000000000003 ffff883f7ccc3bf8 ffffffff810c4fc9 ffff883f7ccc3c08 00000000810c5043 ffff883f7ccc3c08 Call Trace: [] ? update_group_capacity+0x110/0x200 [] ? update_sd_lb_stats+0x109/0x600 [] ? find_busiest_group+0x47/0x530 [] ? load_balance+0x194/0x900 [] ? update_rq_clock.part.83+0x1a/0xe0 [] ? rebalance_domains+0x152/0x290 [] ? run_rebalance_domains+0xdc/0x1d0 [] ? __do_softirq+0xfb/0x320 [] ? irq_exit+0x125/0x130 [] ? scheduler_ipi+0x97/0x160 [] ? smp_reschedule_interrupt+0x29/0x30 [] ? reschedule_interrupt+0x6e/0x80 [] ? cpuidle_enter_state+0xcc/0x230 [] ? cpuidle_enter_state+0x9c/0x230 [] ? cpuidle_enter+0x17/0x20 [] ? cpu_startup_entry+0x38c/0x420 [] ? start_secondary+0x173/0x1e0 Because divide-by-zero error happens in function: update_group_capacity() update_cpu_capacity() scale_rt_capacity() { ... total = sched_avg_period() + delta; used = div_u64(avg, total); ... } To fix this issue, check user input value of sysctl_sched_time_avg, keep it unchanged when hitting invalid input, and set the minimum limit of sysctl_sched_time_avg to 1 ms. Reported-by: James Puthukattukaran Signed-off-by: Ethan Zhao Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: efault@gmx.de Cc: ethan.kernel@gmail.com Cc: keescook@chromium.org Cc: mcgrof@kernel.org Cc: Link: http://lkml.kernel.org/r/1504504774-18253-1-git-send-email-ethan.zhao@oracle.com Signed-off-by: Ingo Molnar Cc: Steve Muckle Signed-off-by: Greg Kroah-Hartman --- kernel/sysctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -342,7 +342,8 @@ static struct ctl_table kern_table[] = { .data = &sysctl_sched_time_avg, .maxlen = sizeof(unsigned int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_dointvec_minmax, + .extra1 = &one, }, { .procname = "sched_shares_window_ns",