From patchwork Wed Mar 7 12:51:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefan Berger X-Patchwork-Id: 10263971 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 4DDC4602C8 for ; Wed, 7 Mar 2018 12:56:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3E8E7294F1 for ; Wed, 7 Mar 2018 12:56:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 32F60294FC; Wed, 7 Mar 2018 12:56:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 97DC7294F1 for ; Wed, 7 Mar 2018 12:56:08 +0000 (UTC) Received: from localhost ([::1]:33049 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etYc3-0007Nz-Hn for patchwork-qemu-devel@patchwork.kernel.org; Wed, 07 Mar 2018 07:56:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54466) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etYYK-0003YY-6H for qemu-devel@nongnu.org; Wed, 07 Mar 2018 07:52:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1etYYG-0008M2-6w for qemu-devel@nongnu.org; Wed, 07 Mar 2018 07:52:16 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:59332 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1etYYG-0008LF-1L for qemu-devel@nongnu.org; Wed, 07 Mar 2018 07:52:12 -0500 Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w27CpsxC107510 for ; Wed, 7 Mar 2018 07:52:11 -0500 Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.150]) by mx0b-001b2d01.pphosted.com with ESMTP id 2gjdw8ppft-1 (version=TLSv1.2 cipher=AES256-SHA256 bits=256 verify=NOT) for ; Wed, 07 Mar 2018 07:52:11 -0500 Received: from localhost by e32.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 7 Mar 2018 05:52:10 -0700 Received: from b03cxnp08027.gho.boulder.ibm.com (9.17.130.19) by e32.co.us.ibm.com (192.168.1.132) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Wed, 7 Mar 2018 05:52:08 -0700 Received: from b03ledav003.gho.boulder.ibm.com (b03ledav003.gho.boulder.ibm.com [9.17.130.234]) by b03cxnp08027.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w27Cq8mK10944972; Wed, 7 Mar 2018 05:52:08 -0700 Received: from b03ledav003.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 407DB6A03D; Wed, 7 Mar 2018 05:52:08 -0700 (MST) Received: from sbct-3.watson.ibm.com (unknown [9.47.158.153]) by b03ledav003.gho.boulder.ibm.com (Postfix) with ESMTP id E6A196A042; Wed, 7 Mar 2018 05:52:07 -0700 (MST) From: Stefan Berger To: qemu-devel@nongnu.org Date: Wed, 7 Mar 2018 07:51:58 -0500 X-Mailer: git-send-email 2.5.5 In-Reply-To: <1520427119-6236-1-git-send-email-stefanb@linux.vnet.ibm.com> References: <1520427119-6236-1-git-send-email-stefanb@linux.vnet.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 x-cbid: 18030712-0004-0000-0000-000013C44258 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008628; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000254; SDB=6.00999623; UDB=6.00508472; IPR=6.00778982; MB=3.00019891; MTD=3.00000008; XFM=3.00000015; UTC=2018-03-07 12:52:09 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18030712-0005-0000-0000-0000865E3D07 Message-Id: <1520427119-6236-5-git-send-email-stefanb@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-03-07_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1803070149 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0b-001b2d01.pphosted.com id w27CpsxC107510 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.158.5 Subject: [Qemu-devel] [PULL v1 4/5] tpm: convert tpm_emulator.c to use trace-events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, Stefan Berger Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Stefan Berger Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Marc-André Lureau Reviewed-by: Stefan Hajnoczi --- hw/tpm/tpm_emulator.c | 45 +++++++++++++++++++++++---------------------- hw/tpm/trace-events | 14 ++++++++++++++ 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/hw/tpm/tpm_emulator.c b/hw/tpm/tpm_emulator.c index b787aee..d0da10a 100644 --- a/hw/tpm/tpm_emulator.c +++ b/hw/tpm/tpm_emulator.c @@ -39,14 +39,7 @@ #include "qapi/error.h" #include "qapi/clone-visitor.h" #include "chardev/char-fe.h" - -#define DEBUG_TPM 0 - -#define DPRINTF(fmt, ...) do { \ - if (DEBUG_TPM) { \ - fprintf(stderr, "tpm-emulator:"fmt"\n", ## __VA_ARGS__); \ - } \ -} while (0) +#include "trace.h" #define TYPE_TPM_EMULATOR "tpm-emulator" #define TPM_EMULATOR(obj) \ @@ -151,13 +144,12 @@ static int tpm_emulator_set_locality(TPMEmulator *tpm_emu, uint8_t locty_number, { ptm_loc loc; - DPRINTF("%s : locality: 0x%x", __func__, locty_number); - if (tpm_emu->cur_locty_number == locty_number) { return 0; } - DPRINTF("setting locality : 0x%x", locty_number); + trace_tpm_emulator_set_locality(locty_number); + loc.u.req.loc = locty_number; if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_LOCALITY, &loc, sizeof(loc), sizeof(loc)) < 0) { @@ -183,7 +175,7 @@ static void tpm_emulator_handle_request(TPMBackend *tb, TPMBackendCmd *cmd, { TPMEmulator *tpm_emu = TPM_EMULATOR(tb); - DPRINTF("processing TPM command"); + trace_tpm_emulator_handle_request(); if (tpm_emulator_set_locality(tpm_emu, cmd->locty, errp) < 0 || tpm_emulator_unix_tx_bufs(tpm_emu, cmd->in, cmd->in_len, @@ -195,7 +187,6 @@ static void tpm_emulator_handle_request(TPMBackend *tb, TPMBackendCmd *cmd, static int tpm_emulator_probe_caps(TPMEmulator *tpm_emu) { - DPRINTF("%s", __func__); if (tpm_emulator_ctrlcmd(tpm_emu, CMD_GET_CAPABILITY, &tpm_emu->caps, 0, sizeof(tpm_emu->caps)) < 0) { error_report("tpm-emulator: probing failed : %s", strerror(errno)); @@ -204,7 +195,7 @@ static int tpm_emulator_probe_caps(TPMEmulator *tpm_emu) tpm_emu->caps = be64_to_cpu(tpm_emu->caps); - DPRINTF("capabilities : 0x%"PRIx64, tpm_emu->caps); + trace_tpm_emulator_probe_caps(tpm_emu->caps); return 0; } @@ -293,7 +284,7 @@ static int tpm_emulator_set_buffer_size(TPMBackend *tb, *actual_size = be32_to_cpu(psbs.u.resp.buffersize); } - DPRINTF("buffer size: %u, min: %u, max: %u\n", + trace_tpm_emulator_set_buffer_size( be32_to_cpu(psbs.u.resp.buffersize), be32_to_cpu(psbs.u.resp.minsize), be32_to_cpu(psbs.u.resp.maxsize)); @@ -314,7 +305,7 @@ static int tpm_emulator_startup_tpm(TPMBackend *tb, size_t buffersize) goto err_exit; } - DPRINTF("%s", __func__); + trace_tpm_emulator_startup_tpm(); if (tpm_emulator_ctrlcmd(tpm_emu, CMD_INIT, &init, sizeof(init), sizeof(init)) < 0) { error_report("tpm-emulator: could not send INIT: %s", @@ -348,7 +339,7 @@ static bool tpm_emulator_get_tpm_established_flag(TPMBackend *tb) strerror(errno)); return false; } - DPRINTF("got established flag: %0x", est.u.resp.bit); + trace_tpm_emulator_get_tpm_established_flag(est.u.resp.bit); tpm_emu->established_flag_cached = 1; tpm_emu->established_flag = (est.u.resp.bit != 0); @@ -395,7 +386,7 @@ static void tpm_emulator_cancel_cmd(TPMBackend *tb) ptm_res res; if (!TPM_EMULATOR_IMPLEMENTS_ALL_CAPS(tpm_emu, PTM_CAP_CANCEL_TPM_CMD)) { - DPRINTF("Backend does not support CANCEL_TPM_CMD"); + trace_tpm_emulator_cancel_cmd_not_supt(); return; } @@ -521,8 +512,16 @@ static int tpm_emulator_handle_device_opts(TPMEmulator *tpm_emu, QemuOpts *opts) goto err; } - DPRINTF("TPM Version %s", tpm_emu->tpm_version == TPM_VERSION_1_2 ? "1.2" : - (tpm_emu->tpm_version == TPM_VERSION_2_0 ? "2.0" : "Unspecified")); + switch (tpm_emu->tpm_version) { + case TPM_VERSION_1_2: + trace_tpm_emulator_handle_device_opts_tpm12(); + break; + case TPM_VERSION_2_0: + trace_tpm_emulator_handle_device_opts_tpm2(); + break; + default: + trace_tpm_emulator_handle_device_opts_unspec(); + } if (tpm_emulator_probe_caps(tpm_emu) || tpm_emulator_check_caps(tpm_emu)) { @@ -532,7 +531,8 @@ static int tpm_emulator_handle_device_opts(TPMEmulator *tpm_emu, QemuOpts *opts) return tpm_emulator_block_migration(tpm_emu); err: - DPRINTF("Startup error"); + trace_tpm_emulator_handle_device_opts_startup_error(); + return -1; } @@ -573,7 +573,8 @@ static void tpm_emulator_inst_init(Object *obj) { TPMEmulator *tpm_emu = TPM_EMULATOR(obj); - DPRINTF("%s", __func__); + trace_tpm_emulator_inst_init(); + tpm_emu->options = g_new0(TPMEmulatorOptions, 1); tpm_emu->cur_locty_number = ~0; qemu_mutex_init(&tpm_emu->mutex); diff --git a/hw/tpm/trace-events b/hw/tpm/trace-events index 66b2b91..fe88fa6 100644 --- a/hw/tpm/trace-events +++ b/hw/tpm/trace-events @@ -14,3 +14,17 @@ tpm_util_get_buffer_size_len(uint32_t len, size_t expected) "tpm_resp->len = %u, tpm_util_get_buffer_size_hdr_len2(uint32_t len, size_t expected) "tpm2_resp->hdr.len = %u, expected = %zu" tpm_util_get_buffer_size_len2(uint32_t len, size_t expected) "tpm2_resp->len = %u, expected = %zu" tpm_util_get_buffer_size(size_t len) "buffersize of device: %zu" + +# hw/tpm/tpm_emulator.c +tpm_emulator_set_locality(uint8_t locty) "setting locality to %d" +tpm_emulator_handle_request(void) "processing TPM command" +tpm_emulator_probe_caps(uint64_t caps) "capabilities: 0x%"PRIx64 +tpm_emulator_set_buffer_size(uint32_t buffersize, uint32_t minsize, uint32_t maxsize) "buffer size: %u, min: %u, max: %u" +tpm_emulator_startup_tpm(void) "startup" +tpm_emulator_get_tpm_established_flag(uint8_t flag) "got established flag: %d" +tpm_emulator_cancel_cmd_not_supt(void) "Backend does not support CANCEL_TPM_CMD" +tpm_emulator_handle_device_opts_tpm12(void) "TPM Version 1.2" +tpm_emulator_handle_device_opts_tpm2(void) "TPM Version 2" +tpm_emulator_handle_device_opts_unspec(void) "TPM Version Unspecified" +tpm_emulator_handle_device_opts_startup_error(void) "Startup error" +tpm_emulator_inst_init(void) ""