Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp645362imm; Tue, 15 May 2018 07:08:07 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpaYvKOrJB4UTbK8sIkXz9kZcfarwlBt4GJApUfQYkcPg75THivetL1WBYmLqlb5BBYGAC/ X-Received: by 2002:a17:902:585e:: with SMTP id f30-v6mr14519474plj.50.1526393287044; Tue, 15 May 2018 07:08:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526393286; cv=none; d=google.com; s=arc-20160816; b=Nfr0FwJdYDDAPxiemyxK6tnKEqCZvF/rjxuMzB3961m9pr4VgkhqvijS2+rB9Nlcu4 H77Hd1/LeAE++utkOJeewbfuDfKg4kUHQ4cWVhr4cMv7v9X+3ZWIY/+nHYQrOSzQq4e6 aoC1reSlKWW6aviW82tUYY6aqjAAZEku5X28v38S/v2unfVUegBgop2HH7t4AT0a1XHu Y31qpIl4jFvhS5yxYd6x2Fm8Z5sQGBVflkdo+36i03Q6sJ/1BdC+I/XZH0xJxwNVb7MS xB7aHi5J3ooygXXl5grKr1VdrXJCDbpxx8kt2xR2HeSljwpW7/sV43xDGohUmqb504vx b46A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=HSIynHQV5S+FL5RFgCy82vg4Wnsme9gonFg4eERewAQ=; b=iSwI09Qc67+j4BLJe7QVHvEIp/h90A3OknJIU2kMZcG0yX3Tg8B4m1dBbOkRaQpqcd /NspFxES85DIRHHXto4WadrTfbXkwREZUNbZF7WEiV+QPn0W0cjtArMbjL97Jbsc99yf 27bTja+beEdBIQOjm+m6hamPBSZeo33Ci+Z2W2EtUKp/YsCCVAOIsdaJ9cdYdp0VwUEc DrON3wXjPTacJBAcyrEUpgTQCKSlHgZliB1mRGO69ru5yo1PiiLKUHyPPYP66aIKP50R tqmO2ollIbLOfKeTxPD82I1NTASMpEEGzPvpghO1IJVa+3rtcsjY6AYk//HaRqv1n8le QcXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1IvSQ70P; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n59-v6si119689plb.198.2018.05.15.07.07.52; Tue, 15 May 2018 07:08:06 -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; dkim=pass header.i=@kernel.org header.s=default header.b=1IvSQ70P; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753885AbeEONxF (ORCPT + 99 others); Tue, 15 May 2018 09:53:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:40766 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752740AbeEONxE (ORCPT ); Tue, 15 May 2018 09:53:04 -0400 Received: from localhost (LFbn-NCY-1-193-82.w83-194.abo.wanadoo.fr [83.194.41.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1DE652172B; Tue, 15 May 2018 13:53:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1526392383; bh=rylL22OJiN/iAJBNmCKIyWpGzRQ2G3VikwZvzjO28P8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=1IvSQ70PxwELEKbsAx6YXDcbeLYfrfg+wBsyEviT8Hn3uAHNhubUEEx6jLV9x6yVb q9uuAzBgds6VuwPJyShNUpYN7LtbwnctqRCZ3dHaReOybIkswjGeFjZwv0nzXpolsB KSI8l2zM34t4XvLjrmriMjCcIVIoloM90gg8d0xI= Date: Tue, 15 May 2018 15:53:00 +0200 From: Frederic Weisbecker To: Joel Fernandes Cc: Linux Kernel Mailing List , jolsa@redhat.com, namhyung@kernel.org, Peter Zijlstra , torvalds@linux-foundation.org, ysato@users.sourceforge.jp, benh@kernel.crashing.org, Catalin Marinas , chris@zankel.net, paulus@samba.org, Thomas Gleixner , Will Deacon , mpe@ellerman.id.au, dalias@libc.org, Ingo Molnar , mark.rutland@arm.com, alexander.shishkin@linux.intel.com, luto@kernel.org, acme@kernel.org, jcmvbkbc@gmail.com Subject: Re: [PATCH 8/9] perf/breakpoint: Split breakpoint "check" and "commit" Message-ID: <20180515135259.GB24389@lerouge> References: <1525634395-23380-1-git-send-email-frederic@kernel.org> <1525634395-23380-9-git-send-email-frederic@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 07, 2018 at 12:46:06AM +0000, Joel Fernandes wrote: > On Sun, May 6, 2018 at 12:22 PM Frederic Weisbecker > wrote: > > > arch_validate_hwbkpt_settings() mixes up attribute check and commit into > > a single code entity. Therefore the validation may return an error due to > > incorrect atributes while still leaving halfway modified architecture > > breakpoint struct. > > > Now that we have split its logic on all archs, we can remove this > > misdesigned function and call directly the arch check and commit > > functions instead. This allows us to later avoid commiting > > a breakpoint to architecture when its slot couldn't be allocated. > > [...] > > diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c > > index 6e28d28..6896ceeb 100644 > > --- a/kernel/events/hw_breakpoint.c > > +++ b/kernel/events/hw_breakpoint.c > > @@ -402,11 +402,12 @@ int dbg_release_bp_slot(struct perf_event *bp) > > > static int validate_hw_breakpoint(struct perf_event *bp) > > { > > - int ret; > > + int err; > > > - ret = arch_validate_hwbkpt_settings(bp); > > - if (ret) > > - return ret; > > + err = hw_breakpoint_arch_check(bp, &bp->attr); > > + if (err) > > + return err; > > + hw_breakpoint_arch_commit(bp); > > minor nit: > To preserve bisectability, shouldn't this be the following in this and > earlier patches? > > err = hw_breakpoint_arch_check(bp, &bp->attr); > hw_breakpoint_arch_commit(bp); > if (err) > return err; > > And then in patch 9/9 you can fix it the right way? I don't see how it was breaking bisectability. Anyway I'm rewriting it entirely to use: struct arch_hw_breakpoint hw; int err; err = hw_breakpoint_arch_parse(bp, attr, &hw); if (err) return err; ..... bp->hw.info = hw; Thanks.