From patchwork Mon Mar 13 11:40:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Yan X-Patchwork-Id: 13172304 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6CA83C6FD19 for ; Mon, 13 Mar 2023 11:42:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2jLSopEKCVpZH4z2ctRIpoMt5FSzv7mLAxYBWN3JxwU=; b=1PpbqKIjCJiEav bUV2Kxcn9ZD8tj/1+rDoTlq38nLt6QfC1UscmEcl1UopBCIFVbCQjjKFdoNIiwxJS1BorWsu7wYnU ODz145g1tJT6jFJ/n8JyIekqreokKEZtdmQGqLwChRz5/qUagq5ewdz/ez09SrgEBpg5QSyDjdMJ8 TeUz3i5WAe+aIqpdxtuQeNBN144+Jz/yvVUfF+tlzfHzq/akQXLks35dX0mY1Oun1yp1yuOo7LY+w mEWfvFFEQqc6uSF1/NI3585LxdFNnWMnYRGjVedac9/w7cH6vX3bsonElIAQdNNEiXMjWXJafFL/I IEDuTwxGxBLb58666dNw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pbgYK-005SBa-Mu; Mon, 13 Mar 2023 11:41:20 +0000 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pbgXz-005S0N-3g for linux-arm-kernel@lists.infradead.org; Mon, 13 Mar 2023 11:41:00 +0000 Received: by mail-pj1-x1035.google.com with SMTP id kb15so11709316pjb.1 for ; Mon, 13 Mar 2023 04:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678707659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Q/nbi3g1G7blTIc7EqTO9R+UAXnIBnoxcjmSOAZ7Xck=; b=evWDaAHRTVMrCXo8odtG+XiiUQi/tIoaxy/YK2dWKYAJKc1YsgTzVcGbRMwl/jK+A2 se7zCOxQLs0/AMm0R/Hhi+RHruUbuxn1oDGZPAGOfRrzGKFTMfkzP5AJ1vrEY24SqPj6 U8QlLyFEj/m6hPLsidBw0kiRmNFqGEVPs0lrJSV2ii0F/aNS05n+LoTzlWtrKf9cVICX nxxlfGv8wfAiU5rqfpRciQ3k/egPgubfloC8K9Pq+dvRgpUbfugeEwPme8sOHuBvXGuC D1LMKU1U44tgTYfVr/K7MSsq73F/9BaP+WfFwm0fORwzQ+LDfFh+u4/B+dSRQoGTJG1o /mWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678707659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q/nbi3g1G7blTIc7EqTO9R+UAXnIBnoxcjmSOAZ7Xck=; b=VyAmEYqhN+8oeR9b4wyGn3oTOGKhIbLoe7rO9+aL4/rA+8YLbLqSxfHBgztVFa9q7N x4JACSqgIVYIWwst8bf3/wKNL4y08WZVSn/HGRMozu6r3rTdQz/LfN60EVQ3fabVgsy2 UDE4yVU64/xOePUa9hkmrawoWsN3BOGQqPpQQ/9vPZAOT92ediS9tmpa8W6SoLrZo9se qsamPb+m0h32MJwt0c9uUjr37DcIegRdggomS5WpwWG26FZ1owSgj0GOO2wWf/r7GpYE dTFibCQPkyPH0sxkdc3VTTMRXlbN7TfaCwmN5FDyzo8rpxFumQ4M2kDthXZ3r/rpifdd NOrQ== X-Gm-Message-State: AO0yUKUX3iQu44V4LTr+3sKJf9OnNfLBe5TnhPC2b1jEa7eQCo0VwDJL J6JBD7/tgM/EH17yAdrVvHKEZQ== X-Google-Smtp-Source: AK7set8teySbue549QBMEg2WXUd64gS+oeeOqp2p0guknoK0bwSJzOLunt6prvsrWSje1dQr+Go6YQ== X-Received: by 2002:a17:90a:94c7:b0:23d:2b11:b39b with SMTP id j7-20020a17090a94c700b0023d2b11b39bmr34239pjw.31.1678707658713; Mon, 13 Mar 2023 04:40:58 -0700 (PDT) Received: from leoy-huanghe.lan ([156.59.236.112]) by smtp.gmail.com with ESMTPSA id q21-20020a17090a2e1500b0022335f1dae2sm4281625pjd.22.2023.03.13.04.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Mar 2023 04:40:58 -0700 (PDT) From: Leo Yan To: Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , John Garry , James Clark , Adrian Hunter , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Leo Yan Subject: [PATCH v4 04/16] perf kvm: Use subtraction for comparison metrics Date: Mon, 13 Mar 2023 19:40:06 +0800 Message-Id: <20230313114018.543254-5-leo.yan@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230313114018.543254-1-leo.yan@linaro.org> References: <20230313114018.543254-1-leo.yan@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230313_044059_220464_94B82CBF X-CRM114-Status: GOOD ( 14.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Currently the metrics comparison uses greater operator (>), it returns the boolean value (0 or 1). This patch changes to use subtraction as comparison result, which can be used by histograms sorting. Since the subtraction result is u64 type, we change the function return type from int to int64_t to avoid overflow. Signed-off-by: Leo Yan --- tools/perf/builtin-kvm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index 62c097a37da9..4e9519390da6 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -63,10 +63,10 @@ static u64 get_event_ ##func(struct kvm_event *event, int vcpu) \ #define COMPARE_EVENT_KEY(func, field) \ GET_EVENT_KEY(func, field) \ -static int cmp_event_ ## func(struct kvm_event *one, \ +static int64_t cmp_event_ ## func(struct kvm_event *one, \ struct kvm_event *two, int vcpu) \ { \ - return get_event_ ##func(one, vcpu) > \ + return get_event_ ##func(one, vcpu) - \ get_event_ ##func(two, vcpu); \ } @@ -523,7 +523,7 @@ static void insert_to_result(struct rb_root *result, struct kvm_event *event, p = container_of(*rb, struct kvm_event, rb); parent = *rb; - if (bigger(event, p, vcpu)) + if (bigger(event, p, vcpu) > 0) rb = &(*rb)->rb_left; else rb = &(*rb)->rb_right;