From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751470AbdIOPxM (ORCPT ); Fri, 15 Sep 2017 11:53:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55624 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751152AbdIOPxL (ORCPT ); Fri, 15 Sep 2017 11:53:11 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5DEAF8553C Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=oleg@redhat.com Date: Fri, 15 Sep 2017 17:53:09 +0200 From: Oleg Nesterov To: "Naveen N. Rao" Cc: Ingo Molnar , Srikar Dronamraju , Anton Blanchard , Michael Ellerman , Ananth N Mavinakayanahalli , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/3] kernel/uprobes: Warn if unable to install breakpoint Message-ID: <20170915155309.GA590@redhat.com> References: <2b69563b023789443ef80a9f5bfe0629807fc51e.1505333828.git.naveen.n.rao@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2b69563b023789443ef80a9f5bfe0629807fc51e.1505333828.git.naveen.n.rao@linux.vnet.ibm.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 15 Sep 2017 15:53:11 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/14, Naveen N. Rao wrote: > > +static void uprobe_warn(struct task_struct *t, const char *msg) > +{ > + pr_warn("uprobe: %s:%d failed to %s\n", > + current->comm, current->pid, msg); > +} > + > /* > * valid_vma: Verify if the specified vma is an executable vma > * Relax restrictions while unregistering: vm_flags might have > @@ -1087,7 +1093,14 @@ int uprobe_mmap(struct vm_area_struct *vma) > if (!fatal_signal_pending(current) && > filter_chain(uprobe, UPROBE_FILTER_MMAP, vma->vm_mm)) { > unsigned long vaddr = offset_to_vaddr(vma, uprobe->offset); > - install_breakpoint(uprobe, vma->vm_mm, vma, vaddr); > + int ret = install_breakpoint(uprobe, vma->vm_mm, vma, vaddr); > + if (ret) { > + char msg[64]; > + snprintf(msg, sizeof(msg), > + "setup probe at 0x%llx (%d)", > + uprobe->offset, ret); > + uprobe_warn(current, (const char *)msg); Agreed, but... this is cosmetic, but I don't really like this snprintf(). I won't insist too much, but wouldn't it better to turn uprobe_warn() into uprobe_warn(struct task_struct *t, char *fmt, ...) ? Oleg.