Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp897311imm; Fri, 27 Jul 2018 08:00:11 -0700 (PDT) X-Google-Smtp-Source: AAOMgpckWsMT4fxnwYKMfTjV/7MQ9nnFSxhVXq4ImZVmBxf7KTzSGBWvv0EJlrMv27RBele1awIN X-Received: by 2002:a62:8b87:: with SMTP id e7-v6mr7056942pfl.133.1532703611748; Fri, 27 Jul 2018 08:00:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532703611; cv=none; d=google.com; s=arc-20160816; b=EWuUkUx5sH9z5bz4V1qnue2CRidZH3n5OOev4DdTIiPfgr4gnsQseezeFtk/q+/KbP otzetb11jsS7FaYXOei3Cxz6jg3N4d2WwOyU1a9voxQlgAiyskLa0tS/OiUXIo0JwWTM 5ate59qYVwBVs6CrVY+j1XUTLGQZ7hRYbi0IPFC9WWJgxVCleO+ZDy5obG8Zj7+bBigk igtltgfO0WXhJrElZgjQNGK171JG7HCy478R81wWWJgdN0ItzHHzLKwMNuNBxlAZGxPh rqk9LqfrQQS08ZYxEoV31CS122mrZiz7vVR4yL6Wg+JLpXh86h2L1ow2UPHiUo/owUL1 br0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-transfer-encoding :mime-version:references:in-reply-to:date:subject:cc:to:from :arc-authentication-results; bh=ereZ6Y+aDD0YzX8BjaTa45fyk32519Xp8QeaE55t8Nw=; b=LyaicnUaLvFtEaapuAk98OgXtAVLYxkIo99yNqFMnCQRqi6sEThXC+n0g2MuE0AOf8 FRE0dIoXNUiDiOSLc/eqo/kCAwd5RAfrcB3X4SxK+79JGW+obiYc6Ciq9hEc/YW54WGb tT4lbIknf8VOfEHr01T+d4SyfquYvvPzAM9o271fzBuBXCEtVdgQZR29Eb5VvWBZFLeD ItsQNPljRo/6Q85AtWvu+sEr7HUKMM1CcQceegpNS2hNLZ3mBUE4ePWwSSsAZ7vX0Ajh 86AvofQnEwFkJayUymbeZV+us1fmrGx3H8HSvdjmKWBdmzKpQR0FHpk6YFN71mLBpE5q Clpw== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u8-v6si3658687plh.492.2018.07.27.07.59.56; Fri, 27 Jul 2018 08:00:11 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388759AbeG0QVT (ORCPT + 99 others); Fri, 27 Jul 2018 12:21:19 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:47700 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388674AbeG0QVT (ORCPT ); Fri, 27 Jul 2018 12:21:19 -0400 Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6REs8va077921 for ; Fri, 27 Jul 2018 10:59:01 -0400 Received: from e13.ny.us.ibm.com (e13.ny.us.ibm.com [129.33.205.203]) by mx0b-001b2d01.pphosted.com with ESMTP id 2kg3p7nh67-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 27 Jul 2018 10:59:00 -0400 Received: from localhost by e13.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 27 Jul 2018 10:59:00 -0400 Received: from b01cxnp23034.gho.pok.ibm.com (9.57.198.29) by e13.ny.us.ibm.com (146.89.104.200) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Fri, 27 Jul 2018 10:58:54 -0400 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp23034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6REwrrg6488538 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 27 Jul 2018 14:58:53 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 62BACAC05B; Fri, 27 Jul 2018 10:59:36 -0400 (EDT) Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 179F0AC059; Fri, 27 Jul 2018 10:59:31 -0400 (EDT) Received: from kermit-br-ibm-com.ibmmodules.com (unknown [9.80.82.251]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTP; Fri, 27 Jul 2018 10:59:30 -0400 (EDT) From: Murilo Opsfelder Araujo To: linux-kernel@vger.kernel.org Cc: "Alastair D'Silva" , Andrew Donnellan , Balbir Singh , Benjamin Herrenschmidt , Christophe Leroy , Cyril Bur , "Eric W . Biederman" , Michael Ellerman , Michael Neuling , Murilo Opsfelder Araujo , Nicholas Piggin , Paul Mackerras , Simon Guo , Sukadev Bhattiprolu , "Tobin C . Harding" , linuxppc-dev@lists.ozlabs.org Subject: [PATCH v2 02/10] powerpc/traps: Return early in show_signal_msg() Date: Fri, 27 Jul 2018 11:58:03 -0300 X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180727145811.12334-1-muriloo@linux.ibm.com> References: <20180727145811.12334-1-muriloo@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 18072714-0064-0000-0000-000003308A58 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009438; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000266; SDB=6.01066907; UDB=6.00548186; IPR=6.00844773; MB=3.00022354; MTD=3.00000008; XFM=3.00000015; UTC=2018-07-27 14:58:58 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18072714-0065-0000-0000-00003A17164C Message-Id: <20180727145811.12334-3-muriloo@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-27_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1806210000 definitions=main-1807270153 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Modify the logic of show_signal_msg() to return early, if possible. Replace printk_ratelimited() by printk() and a default rate limit burst to limit displaying unhandled signals messages. Mainly reason of this change is to improve readability of the function. The conditions to display the message were coupled together in one single `if` statement. Splitting out the rate limit check outside show_signal_msg() makes it easier to the caller decide if it wants to respect a printk rate limit or not. Signed-off-by: Murilo Opsfelder Araujo --- arch/powerpc/kernel/traps.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index cbd3dc365193..4faab4705774 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -301,6 +301,13 @@ void user_single_step_siginfo(struct task_struct *tsk, info->si_addr = (void __user *)regs->nip; } +static bool show_unhandled_signals_ratelimited(void) +{ + static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL, + DEFAULT_RATELIMIT_BURST); + return show_unhandled_signals && __ratelimit(&rs); +} + static void show_signal_msg(int signr, struct pt_regs *regs, int code, unsigned long addr) { @@ -309,11 +316,12 @@ static void show_signal_msg(int signr, struct pt_regs *regs, int code, const char fmt64[] = KERN_INFO "%s[%d]: unhandled signal %d " \ "at %016lx nip %016lx lr %016lx code %x\n"; - if (show_unhandled_signals && unhandled_signal(current, signr)) { - printk_ratelimited(regs->msr & MSR_64BIT ? fmt64 : fmt32, - current->comm, current->pid, signr, - addr, regs->nip, regs->link, code); - } + if (!unhandled_signal(current, signr)) + return; + + printk(regs->msr & MSR_64BIT ? fmt64 : fmt32, + current->comm, current->pid, signr, + addr, regs->nip, regs->link, code); } void _exception_pkey(int signr, struct pt_regs *regs, int code, @@ -326,7 +334,8 @@ void _exception_pkey(int signr, struct pt_regs *regs, int code, return; } - show_signal_msg(signr, regs, code, addr); + if (show_unhandled_signals_ratelimited()) + show_signal_msg(signr, regs, code, addr); if (arch_irqs_disabled() && !arch_irq_disabled_regs(regs)) local_irq_enable(); -- 2.17.1