Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5246988imm; Tue, 31 Jul 2018 07:52:11 -0700 (PDT) X-Google-Smtp-Source: AAOMgpda0aIlJOEVvTCyUm0aU5yUIW5hFoWpZTbJ81nuCB0dR6cdXw73oHCQKzmvztORXBOzP1hS X-Received: by 2002:a63:5b51:: with SMTP id l17-v6mr20368715pgm.165.1533048731539; Tue, 31 Jul 2018 07:52:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533048731; cv=none; d=google.com; s=arc-20160816; b=kFco7p8ZoOV+0KlKFjQWrDBp35eoYEpf7Axqy5H6A/frzAfMbnoR5GXi8WRzhZ+7t7 BU3TeIyJCo2SmeHWVZ40m6lv1yD6CGWZMCcJhCagX+i8VhuIGLNn8wGRQo7acxxVBpIu yqSR8mDxlWOGgIrZClK6m8BfWAsDyQodz46EStS2bLtjF8DBeagQpHeRi7vcLBvorJfU o41+WEwY04pUgXhM/MkbfatiUkNjYJBIGoc86gGkHUh2b6fOAt5pllwq/GW1iSPFGANd azlSB917nuHBNZuaVSm1+nVoto31xJ+5glHagm3VD+BmlThInce8Ay9WxNSrOGOYIcOC NDNQ== 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=yHEwO5/76R/6IoUTKsLGmy0W/WoVGfYE++xQesn80bkBMh+OGL8ijzNiyJRLMFuN0I LzG8PhZv2D9tKmF9vIrstpl0HRNwoiuX549hQ4NVMsxSOhv7zdlnEy1M4+taNbWzZaqq sXVEg9AHuOlPzjIBqX9t0nAT6YQiVMjevIaZ7Peauviku0G74wuAlddcVE3//WzhBC/r TO6Ng41UwZMPBWdt0R1AQIXLbM9JbwNJp8dDoPccPwLN59C0XD3vRXSv53r+V0wsaMzj iCs1d93ZYnmN8eHVVsLPUHYaWhNY12lHdnLK5ILx3ypZWIOwCszsEBK1TgDOiBTemVXO OJsQ== 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 h65-v6si16218516pfb.70.2018.07.31.07.51.57; Tue, 31 Jul 2018 07:52: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 S1732549AbeGaQbd (ORCPT + 99 others); Tue, 31 Jul 2018 12:31:33 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:32788 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732231AbeGaQbc (ORCPT ); Tue, 31 Jul 2018 12:31:32 -0400 Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6VE8xCF012988 for ; Tue, 31 Jul 2018 10:50:51 -0400 Received: from e31.co.us.ibm.com (e31.co.us.ibm.com [32.97.110.149]) by mx0a-001b2d01.pphosted.com with ESMTP id 2kjqk4xnsw-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 31 Jul 2018 10:50:50 -0400 Received: from localhost by e31.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 31 Jul 2018 08:50:46 -0600 Received: from b03cxnp07028.gho.boulder.ibm.com (9.17.130.15) by e31.co.us.ibm.com (192.168.1.131) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 31 Jul 2018 08:50:41 -0600 Received: from b03ledav005.gho.boulder.ibm.com (b03ledav005.gho.boulder.ibm.com [9.17.130.236]) by b03cxnp07028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6VEodA212386786 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 31 Jul 2018 07:50:39 -0700 Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C859BBE051; Tue, 31 Jul 2018 08:50:39 -0600 (MDT) Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8DA55BE04F; Tue, 31 Jul 2018 08:50:36 -0600 (MDT) Received: from kermit-br-ibm-com.br.ibm.com (unknown [9.18.235.193]) by b03ledav005.gho.boulder.ibm.com (Postfix) with ESMTP; Tue, 31 Jul 2018 08:50:36 -0600 (MDT) 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" , Joe Perches , 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 v3 2/9] powerpc/traps: Return early in show_signal_msg() Date: Tue, 31 Jul 2018 11:50:13 -0300 X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180731145020.14009-1-muriloo@linux.ibm.com> References: <20180731145020.14009-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: 18073114-8235-0000-0000-00000DDBE84E X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009463; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000266; SDB=6.01068483; UDB=6.00549299; IPR=6.00846683; MB=3.00022427; MTD=3.00000008; XFM=3.00000015; UTC=2018-07-31 14:50:45 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18073114-8236-0000-0000-0000421617FE Message-Id: <20180731145020.14009-3-muriloo@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-31_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-1807310137 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