From patchwork Fri Jun 26 16:27:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe de Dinechin X-Patchwork-Id: 11627961 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 32626618 for ; Fri, 26 Jun 2020 16:28:00 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 04D7520791 for ; Fri, 26 Jun 2020 16:27:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Q+ZtfCEb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 04D7520791 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:50654 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jorCp-0004Ul-4l for patchwork-qemu-devel@patchwork.kernel.org; Fri, 26 Jun 2020 12:27:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53816) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jorCC-0003XS-BA for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:27:20 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:35136 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jorC9-0002xT-Rq for qemu-devel@nongnu.org; Fri, 26 Jun 2020 12:27:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593188835; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BdszDYFtdtc+CvOS8OsCmXauBVhbE0tlpQzVr7wTTZ8=; b=Q+ZtfCEb3q5oyBEgOjk6jqCDUkIbBAM3Z3mHN4pnVfFgLpH+gNXlpmbyAlaKaeXVF3sw7H 2mJs8eHXYl3KpKQEx1nWdKd0mnYYT8dxH07odI0GzEfctvJ+gOUgxJzzCpsLH0S3F4o4jH HC7/Y9zBuiTCalupBSG6ZLgZNmnxmDA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-386--5r2PmB7Oiq1l8_VIm6jVA-1; Fri, 26 Jun 2020 12:27:13 -0400 X-MC-Unique: -5r2PmB7Oiq1l8_VIm6jVA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E0A4F800C60; Fri, 26 Jun 2020 16:27:12 +0000 (UTC) Received: from turbo.com (ovpn-112-91.ams2.redhat.com [10.36.112.91]) by smtp.corp.redhat.com (Postfix) with ESMTP id E7E8879305; Fri, 26 Jun 2020 16:27:07 +0000 (UTC) From: Christophe de Dinechin To: qemu-devel@nongnu.org Subject: [PATCH v2 0/3] trace: Add a trace backend for the recorder library Date: Fri, 26 Jun 2020 18:27:03 +0200 Message-Id: <20200626162706.3304357-1-dinechin@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=205.139.110.61; envelope-from=dinechin@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/26 02:19:36 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Markus Armbruster , Michael Tokarev , "Dr. David Alan Gilbert" , Stefan Hajnoczi , Laurent Vivier Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The recorder library implements low-cost always-on tracing, with three usage models: 1. Flight recorder: Dump information on recent events in case of crash 2. Tracing: Individual traces can be enabled using environment variables 3. Real-time graphing / control, using the recorder_scope application This short series introduces a new "recorder" back-end which connects to the recorder. Traces using the recorder are intentionally "always on". An example is given of how the recorder can also be used separately from generated traces. This can be useful if you want to enable multiple related traces for a particular topic. This series requires a small makefile fix submitted earlier, included here for convenience. Christophe de Dinechin (3): Makefile: Compute libraries for libqemuutil.a and libvhost-user.a trace: Add support for recorder back-end trace: Example of "centralized" recorder tracing Makefile | 2 ++ configure | 5 +++ hmp-commands.hx | 19 ++++++++-- monitor/misc.c | 27 ++++++++++++++ scripts/tracetool/backend/recorder.py | 51 +++++++++++++++++++++++++++ trace/Makefile.objs | 2 ++ trace/control.c | 7 ++++ trace/recorder.c | 22 ++++++++++++ trace/recorder.h | 34 ++++++++++++++++++ util/module.c | 8 +++++ util/qemu-thread-common.h | 7 ++++ 11 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 scripts/tracetool/backend/recorder.py create mode 100644 trace/recorder.c create mode 100644 trace/recorder.h