Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2742266pxb; Tue, 21 Sep 2021 06:45:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxi0GOOsur0+ZHeE797r3a/2uOpPV+uRDXU8CUT8IfBipTYJHHRv7CUNpZvIvc+OzpSTFD8 X-Received: by 2002:a05:6602:204d:: with SMTP id z13mr40648iod.162.1632231955904; Tue, 21 Sep 2021 06:45:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632231955; cv=none; d=google.com; s=arc-20160816; b=lAviZoDfDV4lNQWR2A0pwpOdL8y3EBfFMWN5qfGe67ZOVbG6sSGum7DOEBiNMkBSrD mYroo47UXKh9/I7b3lcR/Dm5f23j06QtTmEjUDQJ1d85ePd+HJ9iZ8ykwtHUXPOmcjv1 tzNhkMdm5+lhb8hmnP0eap6nZ+2Q75R+G765CA4LfeDcsFA4zrZd/cRgCmImWBgAoe0x ohR+cRNgV7+IPUBHnwq3Hv1dBal4/p5RlH9oMGWkcD6nHpRSvRr4qzYBtAoc/V3n9xg2 ivckYKo2JB7QXDdzr9SQQhtVKJPURnRDKRR9sTBa0B+5tSDeHy8DuIoHEP0n0WtuGpuv jvww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=YF8DE/JcgLv8Ugd3AbpgJ3aMq9zVOrhREt97F2vp7WY=; b=BAeWLd6JGm6Jr0cRj68vVDN3Pi/qBE8UTkQQLgxIxdgUzhbbutGL1nT6mw9ku1BOuZ mHJy6SUc2wkD28RBysywnsOJp0mu3BohO8uwQLZKsDTV4po2a7gKt00VQnfLw91RcT2Q MkQKJXpBiF4hvx6UgDGCGEBwStjsBofpn/QShVkDLfnIUtqaD9pXmdUHA/WFElTGH4zW coS1+OA4ulhA2IFzKlvfkBj9TQ0lGDW00/q/vAsy/+9b+jvMlm0+9OiQtyT5wYnMVjub gndZa7Xe0TfSdqM+u9jgOA+SJJYr2txQEAWLeiuYxo3efv9oURDMwmjcAllKu4RQVMQi osSw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d6si6366068ilv.154.2021.09.21.06.45.35; Tue, 21 Sep 2021 06:45:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233434AbhIUNnj (ORCPT + 99 others); Tue, 21 Sep 2021 09:43:39 -0400 Received: from foss.arm.com ([217.140.110.172]:33946 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233448AbhIUNn0 (ORCPT ); Tue, 21 Sep 2021 09:43:26 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BD8566D; Tue, 21 Sep 2021 06:41:57 -0700 (PDT) Received: from ewhatever.cambridge.arm.com (ewhatever.cambridge.arm.com [10.1.197.1]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 02F473F40C; Tue, 21 Sep 2021 06:41:55 -0700 (PDT) From: Suzuki K Poulose To: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, maz@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, james.morse@arm.com, anshuman.khandual@arm.com, leo.yan@linaro.org, mike.leach@linaro.org, mathieu.poirier@linaro.org, will@kernel.org, lcherian@marvell.com, coresight@lists.linaro.org, Suzuki K Poulose Subject: [PATCH v2 14/17] coresight: trbe: Make sure we have enough space Date: Tue, 21 Sep 2021 14:41:18 +0100 Message-Id: <20210921134121.2423546-15-suzuki.poulose@arm.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20210921134121.2423546-1-suzuki.poulose@arm.com> References: <20210921134121.2423546-1-suzuki.poulose@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The TRBE driver makes sure that there is enough space for a meaningful run, otherwise pads the given space and restarts the offset calculation once. But there is no guarantee that we may find space or hit "no space". Make sure that we repeat the step until, either : - We have the minimum space OR - There is NO space at all. Cc: Anshuman Khandual Cc: Mathieu Poirier Cc: Mike Leach Cc: Leo Yan Signed-off-by: Suzuki K Poulose --- drivers/hwtracing/coresight/coresight-trbe.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c index 3373f4e2183b..02f9e00e2091 100644 --- a/drivers/hwtracing/coresight/coresight-trbe.c +++ b/drivers/hwtracing/coresight/coresight-trbe.c @@ -451,10 +451,14 @@ static unsigned long trbe_normal_offset(struct perf_output_handle *handle) * If the head is too close to the limit and we don't * have space for a meaningful run, we rather pad it * and start fresh. + * + * We might have to do this more than once to make sure + * we have enough required space. */ - if (limit && ((limit - head) < trbe_min_trace_buf_size(handle))) { + while (limit && ((limit - head) < trbe_min_trace_buf_size(handle))) { trbe_pad_buf(handle, limit - head); limit = __trbe_normal_offset(handle); + head = PERF_IDX2OFF(handle->head, buf); } return limit; } -- 2.24.1