From patchwork Mon Jun 5 07:30:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sunliming X-Patchwork-Id: 103151 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp2509444vqr; Mon, 5 Jun 2023 00:33:35 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6+2Hlb5AW0hQPekRYovHifOErNy2C6/nRBvhSUAhYGNVDQzLarLh2anzeBQrA9EHTHNEPZ X-Received: by 2002:a17:902:db0a:b0:1ac:750e:33d5 with SMTP id m10-20020a170902db0a00b001ac750e33d5mr8720049plx.15.1685950415024; Mon, 05 Jun 2023 00:33:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685950415; cv=none; d=google.com; s=arc-20160816; b=jo0CRC5FmoTt9Z5AoKDn4Ot+ySK21VuEfdBgg50EpiS2t9MP2b7PMMKBssxg6CQwXi JNXwZY6OpC+XEGeroeEBPtInvfhD9uGyydQ0QT1MvUpjU/Q1b4H9JTTGwXmAocBC67C4 Ir1nnzbvScIuyomEgIriaPi26kF9lCVlCxyDmvyQuoEyeFbEd4WOv1k+e3Vxj4OdQcl2 U5OE3iZF+C+AuCi7dt+sgaObVrxbW5k8pRTeTazwRCtmP/lLGVXgUNIHHubwpsk17hzO hxtKDfERk+No5+xkZCyNrZYkqZLEVbhkg4rwaA5bKQudu75/kMJ7GmDvH1+qDfm88oUs 2ESw== 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 :message-id:date:subject:cc:to:from; bh=21KuDm7E1j2X3eQMy2+wyemXDR46+T1mk758fuRtSIk=; b=oBmNADCSN+9RteTachyxXQviv9p3tBRktlTNRv6WtMqJ7XCAjscO4zFyl/rWAhkLX3 Pmcgy0uZj8Uh4lbDVp4fDeNLBigyDZrXbHBskvBfIUdutS7Oxxg0pwDDCU5WGlnSocBZ PACzGBhExRmoOgRUWEUbgOPk6MUy3WLnIpKv36LlgkATLIvbF30vMrIOY/REEdgAk8zn KdiEEhdPLM6ifFK2imCFBNDabVnjAus1ihPWv7u92LFiYwM1yoHZFvSh1ldIoajATEz+ 56WHfumlffU9HlJfDo/g4hJZcCzmxJQPePgx1ACwLYdwVTd5lDTEPl4K8KXubn9B6vbi Uk5g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j17-20020a170902da9100b001a6e98a5f21si5251598plx.586.2023.06.05.00.33.19; Mon, 05 Jun 2023 00:33:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230490AbjFEHbA (ORCPT + 99 others); Mon, 5 Jun 2023 03:31:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230336AbjFEHag (ORCPT ); Mon, 5 Jun 2023 03:30:36 -0400 Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A967AD; Mon, 5 Jun 2023 00:30:35 -0700 (PDT) Received: by mail-pf1-f194.google.com with SMTP id d2e1a72fcca58-6532671ccc7so3281078b3a.2; Mon, 05 Jun 2023 00:30:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685950235; x=1688542235; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=21KuDm7E1j2X3eQMy2+wyemXDR46+T1mk758fuRtSIk=; b=A+Pm9AHqWhyveo120GfD7atXQovD87STrmE+NDVi+DsK5MlM139SVxs53py0xS8OXo oNZ1QCe//0aKE+sz3DP+igig8MP2buKRah2lWfIwOS+3Cgc5PkGF0zHY04jZdt7mqCCE 6Sx8ajnAROBO2M2tKUfPz1KXiJQBPLVCeLlk55P1bmW69TER7C0Hu9uYAJAajum3y+NG cMZ1cg9OQM6oMeRcVPtqLA1m/itvmhQCGCrKtzQ1ELZY8OxkOZFp5a65RgrisT8Ibvz5 0Cf6DovTmOdQ3aXijEhHeH/EvIZpnDY+uFaPiWUM+iTU7C9DS5ypv2F9iykPKYczfPyL OKnw== X-Gm-Message-State: AC+VfDyVlEe4ze0rSP/l9pdNPdxasQ7T3q184ulov/QMjmkAwpsFRvXC wSYTu/StxdHEZxh5/8GQuw== X-Received: by 2002:a05:6a20:8e19:b0:116:e916:4b5b with SMTP id y25-20020a056a208e1900b00116e9164b5bmr1229383pzj.25.1685950234884; Mon, 05 Jun 2023 00:30:34 -0700 (PDT) Received: from localhost.localdomain ([116.128.244.169]) by smtp.gmail.com with ESMTPSA id 128-20020a630786000000b0053ba104c113sm5200419pgh.72.2023.06.05.00.30.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jun 2023 00:30:34 -0700 (PDT) From: sunliming To: mhiramat@kernel.org, beaub@linux.microsoft.com, rostedt@goodmis.org, shuah@kernel.org Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kelulanainsley@gmail.com, sunliming Subject: [PATCH V2 1/4] tracing/user_events: Fix the incorrect trace record for empty arguments events Date: Mon, 5 Jun 2023 15:30:20 +0800 Message-Id: <20230605073023.923316-1-sunliming@kylinos.cn> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767847142664739146?= X-GMAIL-MSGID: =?utf-8?q?1767847142664739146?= The user_events support events that has empty arguments. But the trace event is discarded and not really committed when the arguments is empty. Fix this by not attempting to copy in zero-length data. Signed-off-by: sunliming --- kernel/trace/trace_events_user.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index 0d91dac206ff..698703a3d234 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -1399,7 +1399,7 @@ static void user_event_ftrace(struct user_event *user, struct iov_iter *i, if (unlikely(!entry)) return; - if (unlikely(!copy_nofault(entry + 1, i->count, i))) + if (unlikely(i->count != 0 && !copy_nofault(entry + 1, i->count, i))) goto discard; if (!list_empty(&user->validators) && @@ -1440,7 +1440,7 @@ static void user_event_perf(struct user_event *user, struct iov_iter *i, perf_fetch_caller_regs(regs); - if (unlikely(!copy_nofault(perf_entry + 1, i->count, i))) + if (unlikely(i->count != 0 && !copy_nofault(perf_entry + 1, i->count, i))) goto discard; if (!list_empty(&user->validators) && From patchwork Mon Jun 5 07:30:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sunliming X-Patchwork-Id: 103153 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp2511020vqr; Mon, 5 Jun 2023 00:37:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4vmpIBQMKO1HkXzLlhwjnG2/jjo2/xFy26RdfkWBGVEW04RhOtgU14U2C5imTzvBVvz5QJ X-Received: by 2002:a05:6a20:8e09:b0:10c:38d3:437c with SMTP id y9-20020a056a208e0900b0010c38d3437cmr1695559pzj.58.1685950671152; Mon, 05 Jun 2023 00:37:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685950671; cv=none; d=google.com; s=arc-20160816; b=xOSU6F5KDbHa2kr5XhrIg+SS2Cwz3Wqss6j/uRMtJGcSNklHP1BqLdwmznND1bj5X4 jGh/umWl3UpX4gyudFbPObNzPunYyiFCSNo4aHsz7LBK5BBuUrr11Crs5UAu9WA89Br/ rhRL+weomYPDfq7FKCM4mlGm0wbXt5dLshIBKZE8+LBUq9McWnc5MhgPXQQfZlRVSDDD 5nS6mXVqU5EAC7fbA4+VRzau8X/N0RzFYbAJAILBdHQcNJaOhD6Sp4rgLQZWx+ZVXCM1 a+uyWaVcJH9Yvr5g62JVSeHL2N67dKP1dOZ55zbjd0FBuznevOEftcFrjsU/TP7rDSyx kMMQ== 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=0Wp+Nr/5/fNTTFPeTaVacXKMU22jIpYdcfNJ7LUWQ4s=; b=Koc8AfoxaXiyJXCtMnrsB+pxiN9Paj84XLicYDJ3Wp6h2mrsYpScm6Kpu2i59PDtap dtyesOYzyJvVyw5mtMGJvwACc3WISGuyjBKR/XtA3J5TTzTH5uSTiBp5cE438sb9WcjW c6KEYte8232xvV2zhWdiFG0bSv1Ei9exQFes48yeFH1U0WSKLXKkXWBR3soP2js8H4mj UxhckRVWsgm8BMZqE7rsaPpT8j0UXAR/SvaC+4vWCORaR9zpPXHe2b894HK1jq59ZTLh v/P2nZ/LFO41etr5uKh37fqzf1PfYFuqH8+keyjlA/+ClTuOtklbeesB/qxVpZHE639y bq1Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 13-20020a170902e9cd00b001b176dc95d4si4951928plk.557.2023.06.05.00.37.37; Mon, 05 Jun 2023 00:37:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229885AbjFEHb3 (ORCPT + 99 others); Mon, 5 Jun 2023 03:31:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230237AbjFEHbX (ORCPT ); Mon, 5 Jun 2023 03:31:23 -0400 Received: from mail-oi1-f196.google.com (mail-oi1-f196.google.com [209.85.167.196]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D58BD187; Mon, 5 Jun 2023 00:31:11 -0700 (PDT) Received: by mail-oi1-f196.google.com with SMTP id 5614622812f47-39a55e5cfc0so4180634b6e.3; Mon, 05 Jun 2023 00:31:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685950271; x=1688542271; 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=0Wp+Nr/5/fNTTFPeTaVacXKMU22jIpYdcfNJ7LUWQ4s=; b=SbJNVxdLDz3Ze4gGFdXAD1FNgYWe1M8VCSHe92y2Nd52RcHmMt3kJuZQ11cpaq3Wqr 9NKJACPafxIE7PohDuHB6irQpMzT9z3M8AXEfNh5xnSuXtBL8lK8t3WGHvPj28fhNE7S wnRvI8EH5iygRLqA9pDS7uPZiBCV1pbbrJih7K7F0snjE1mRwefa8qTZpAhISXx+8Jsd XdTwMPCWBwO7gNB3bffOlrAaNuvSpJSYcPVRsOwtYghkkSoIrWhsU6tJyNJBe+Y7PAw/ GLcSrtsub4uclp16Pn6AToryIM65QUyv5bPY5Ec1XcRnNuyvlm13U3VtQnSjoAp9ahHQ Z6hQ== X-Gm-Message-State: AC+VfDw87HWTcaulSibXQHtFGMWPbudxoLHrAi62Moua+gwYgavg9rps DhsjiAqQ5YBzg6vxdyB0PA== X-Received: by 2002:aca:2202:0:b0:39b:80:5c7f with SMTP id b2-20020aca2202000000b0039b00805c7fmr545451oic.32.1685950270939; Mon, 05 Jun 2023 00:31:10 -0700 (PDT) Received: from localhost.localdomain ([116.128.244.169]) by smtp.gmail.com with ESMTPSA id 128-20020a630786000000b0053ba104c113sm5200419pgh.72.2023.06.05.00.31.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jun 2023 00:31:10 -0700 (PDT) From: sunliming To: mhiramat@kernel.org, beaub@linux.microsoft.com, rostedt@goodmis.org, shuah@kernel.org Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kelulanainsley@gmail.com, sunliming Subject: [PATCH V2 2/4] user_events: Add ftrace self-test for empty arguments events Date: Mon, 5 Jun 2023 15:30:21 +0800 Message-Id: <20230605073023.923316-2-sunliming@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230605073023.923316-1-sunliming@kylinos.cn> References: <20230605073023.923316-1-sunliming@kylinos.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767847410703540964?= X-GMAIL-MSGID: =?utf-8?q?1767847410703540964?= Tests to ensure events that has empty arguments can input trace record correctly when using ftrace. Signed-off-by: sunliming --- .../selftests/user_events/ftrace_test.c | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tools/testing/selftests/user_events/ftrace_test.c b/tools/testing/selftests/user_events/ftrace_test.c index 6e8c4b47281c..abfb49558a26 100644 --- a/tools/testing/selftests/user_events/ftrace_test.c +++ b/tools/testing/selftests/user_events/ftrace_test.c @@ -316,6 +316,39 @@ TEST_F(user, write_events) { ASSERT_EQ(EINVAL, errno); } +TEST_F(user, write_empty_events) { + struct user_reg reg = {0}; + struct iovec io[1]; + int before = 0, after = 0; + + reg.size = sizeof(reg); + reg.name_args = (__u64)"__test_event"; + reg.enable_bit = 31; + reg.enable_addr = (__u64)&self->check; + reg.enable_size = sizeof(self->check); + + io[0].iov_base = ®.write_index; + io[0].iov_len = sizeof(reg.write_index); + + /* Register should work */ + ASSERT_EQ(0, ioctl(self->data_fd, DIAG_IOCSREG, ®)); + ASSERT_EQ(0, reg.write_index); + ASSERT_EQ(0, self->check); + + /* Enable event */ + self->enable_fd = open(enable_file, O_RDWR); + ASSERT_NE(-1, write(self->enable_fd, "1", sizeof("1"))) + + /* Event should now be enabled */ + ASSERT_EQ(1 << reg.enable_bit, self->check); + + /* Write should make it out to ftrace buffers */ + before = trace_bytes(); + ASSERT_NE(-1, writev(self->data_fd, (const struct iovec *)io, 1)); + after = trace_bytes(); + ASSERT_GT(after, before); +} + TEST_F(user, write_fault) { struct user_reg reg = {0}; struct iovec io[2]; From patchwork Mon Jun 5 07:30:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sunliming X-Patchwork-Id: 103152 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp2509981vqr; Mon, 5 Jun 2023 00:35:06 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4bhURvmFFTTls4sC8WLW7+qPgMeCl4UIJuPVJvlPw69H2jXVmMKrH4DwdIX+VM9Ji9KBL4 X-Received: by 2002:a05:6358:cb24:b0:129:10d8:e34b with SMTP id gr36-20020a056358cb2400b0012910d8e34bmr1907706rwb.11.1685950506543; Mon, 05 Jun 2023 00:35:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685950506; cv=none; d=google.com; s=arc-20160816; b=fSutABtEJsH4pOoL2rLbCstsu+FawemiqRoNj+3SzEJnypAYoJGPDbo8eqlFXHi/22 mWqtlQ/Ssne6aXR/H+OhTxKtu8759wN97FAHRlDPyX24uo7O0XIOa4FKnMT21eP+Lm85 1mfTFBsY/ub1RnGYOBNLwXRZGtvNpJiBAcAQ/TQUh84r2/72A32XAeMOERWYHfX4qH8y KUxILd3mywaJqQc14pDqB7J4svJ0ibKRu3jLI2n0HXfg3+ML6PgUxLOWiip7alhX+ruT x4OZyimwj4Om/GKE8Emu59L3hVKUzFd3VUsoZllCD10TfRulnvjI/kUPuzPeYB0vcgrK n3rQ== 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=jenmxpk3FCUjrB1H59Y+BPd1oj6QHHG+nDgkIblmsLc=; b=SJkDVKxIfdhrwL95XoZB4oCMThMiXKfHn7C/JcckM/YVkYqzI+Wtl2TZ9rsnaFpDh3 SI8E3waAzOrvYJAVV0e52dRhWXUC7g0zCjupNvg6Ajq6mpyNkglCyKHVS4pCRMQkEtci 1kDiAJiaKke1U7gOoVn6TXS05ApQVnfbbv3DvHv45BYH/Mj9VxL4KYUpNSkgUb+zCszI y9oJKy+ONF4OMMANwdMkICZFkITHUSQE2fMKSYQNiUstBPr7M/gWjTsllbVD0pTqWBFK B73bAjNYt7CcbNwXAOJKLDgmpxZIJjF/bvNyl7ISLck64eeeUesfB8JlgGD/yC1juMeY 4TnA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y8-20020a17090aca8800b0022915b6dd7asi5231014pjt.145.2023.06.05.00.34.54; Mon, 05 Jun 2023 00:35:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230258AbjFEHbm (ORCPT + 99 others); Mon, 5 Jun 2023 03:31:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230237AbjFEHbh (ORCPT ); Mon, 5 Jun 2023 03:31:37 -0400 Received: from mail-ot1-f66.google.com (mail-ot1-f66.google.com [209.85.210.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3DE25E45; Mon, 5 Jun 2023 00:31:21 -0700 (PDT) Received: by mail-ot1-f66.google.com with SMTP id 46e09a7af769-6b0d38ce700so3441174a34.2; Mon, 05 Jun 2023 00:31:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685950280; x=1688542280; 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=jenmxpk3FCUjrB1H59Y+BPd1oj6QHHG+nDgkIblmsLc=; b=END/PCz6Qqx63+YZ4CglmYskMGCIoAIzcjTGgJvNTLhXG1XgoAI2ADrR05B5vTw0IM SvIGA3Tz2TTVf6b4jBAz2av62wW8fgZ15DzK+jRmjZtzYLErGNCgaZUP7jn7LDX/gWOi zerM1cglO3Tf7l7/yew7VHgjCq97OwaWAta1UXhokNmFyKJkye06J9GB60fKdzQHDHbd +z8kxpUvlh1nRVaOVjxETx7EmIpzFzlme5tPqd21y3yMRhBrXNUbckIhQagzR8urNrFE zl9cUN2FMhWtsAF/QE1cwJhcsHbxWm90iNBChFPNcnKNZmoayQwHCWAFnvmAEwAm8pJJ JnDQ== X-Gm-Message-State: AC+VfDw3Y8d+wFarmQ2Q431jWC0hMdm5d4cfk459iGnVMs6wcGomPOrT K6xg3YmnR7dSfMM9Hvi++aLbXn6rmfHRfSJfBA== X-Received: by 2002:a9d:74cc:0:b0:6af:95c0:fe1e with SMTP id a12-20020a9d74cc000000b006af95c0fe1emr10072502otl.5.1685950280156; Mon, 05 Jun 2023 00:31:20 -0700 (PDT) Received: from localhost.localdomain ([116.128.244.169]) by smtp.gmail.com with ESMTPSA id 128-20020a630786000000b0053ba104c113sm5200419pgh.72.2023.06.05.00.31.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jun 2023 00:31:19 -0700 (PDT) From: sunliming To: mhiramat@kernel.org, beaub@linux.microsoft.com, rostedt@goodmis.org, shuah@kernel.org Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kelulanainsley@gmail.com, sunliming Subject: [PATCH V2 3/4] selftests/user_events: Clear the events after perf self-test Date: Mon, 5 Jun 2023 15:30:22 +0800 Message-Id: <20230605073023.923316-3-sunliming@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230605073023.923316-1-sunliming@kylinos.cn> References: <20230605073023.923316-1-sunliming@kylinos.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767847238708281987?= X-GMAIL-MSGID: =?utf-8?q?1767847238708281987?= When the self test is completed, perf self-test left the user events not to be cleared. Clear the events by unregister and delete the event. Signed-off-by: sunliming --- .../testing/selftests/user_events/perf_test.c | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tools/testing/selftests/user_events/perf_test.c b/tools/testing/selftests/user_events/perf_test.c index a070258d4449..e97f24ab6e2f 100644 --- a/tools/testing/selftests/user_events/perf_test.c +++ b/tools/testing/selftests/user_events/perf_test.c @@ -81,6 +81,32 @@ static int get_offset(void) return offset; } +static int clear(int *check) +{ + struct user_unreg unreg = {0}; + + unreg.size = sizeof(unreg); + unreg.disable_bit = 31; + unreg.disable_addr = (__u64)check; + + int fd = open(data_file, O_RDWR); + + if (fd == -1) + return -1; + + if (ioctl(fd, DIAG_IOCSUNREG, &unreg) == -1) + if (errno != ENOENT) + return -1; + + if (ioctl(fd, DIAG_IOCSDEL, "__test_event") == -1) + if (errno != ENOENT) + return -1; + + close(fd); + + return 0; +} + FIXTURE(user) { int data_fd; int check; @@ -93,6 +119,9 @@ FIXTURE_SETUP(user) { FIXTURE_TEARDOWN(user) { close(self->data_fd); + + if (clear(&self->check) != 0) + printf("WARNING: Clear didn't work!\n"); } TEST_F(user, perf_write) { From patchwork Mon Jun 5 07:30:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sunliming X-Patchwork-Id: 103155 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp2511575vqr; Mon, 5 Jun 2023 00:39:29 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7ksTG2oFE3j9ZTxbO1dSTTrgTiKeF2HnA76MlL5woS8+WvNfUw2G/FmAP6ggHNyVfqj7b4 X-Received: by 2002:a92:ca8a:0:b0:335:ebb8:1128 with SMTP id t10-20020a92ca8a000000b00335ebb81128mr15209274ilo.2.1685950769210; Mon, 05 Jun 2023 00:39:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685950769; cv=none; d=google.com; s=arc-20160816; b=F7VtoePWoJstEzlwJSOo3RKKeqv5nBd3hHjHiTikWO97xbyi/t5cOuFMn2lLEc2DZa /1RQQfBBZzW2B5pP5hDrHylFc8bNd8BDXV+59CyoG8ltMfh7egAxIqWwH63gg5p+RqRa Zj8OrsM1IphNEi5rmvQeb7lBlqDHNX74chslsjIQzqKLOAG6T9uMhfaKJYGe5BEAp4fj oW1rhDusFeu1f9/tZDxHIPZYOzqTiixEDmnQPLv4Bdefs3e4oRC63u8O1036N8SLzFDg bUi6OvDvd0OPKmbFAOfZxQHpTEkw26APok3iPPxw117jSWOp0PDWLD1Z2EIJD1H+JhAm 6Hpg== 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=JjH9eOPUMgvUuYzrotRDm7fc4vW9NrXoyCCMM1Pnj9g=; b=SAprNwIeoZYwSqAPfI6jx8sI1k0ZudxpcE6BfeIJJnBvOUHMjcDkoBJluhunAM6QK4 SIYV0cbjUCLwA4/KFTgRXaEQIBOBovdJSZr0iqo69hP4FH72A4FfExmqYNo4/w1vG6SE tbRDqeG8xDkQAKuDJL5dkhBBh0Nz3MfHFnIC6RwBX2VJHhGjG0qh77moY9Qt3+DJvBAL vQ4QBLRwLCX3OB/ucc2Cii5nwobIse71Hgw7r6orEnoH1KOiEtclyg4fyhMe7nn30UsH 0CPdWZupIZWguiHWEIQ+NJd8+aQu6WpbOakuQgTZRjbqopiN4bfOJ6xE57vqbR0BKhFp Zo7A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a70-20020a639049000000b0053490b42b33si5011480pge.289.2023.06.05.00.39.17; Mon, 05 Jun 2023 00:39:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230368AbjFEHbp (ORCPT + 99 others); Mon, 5 Jun 2023 03:31:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229940AbjFEHbk (ORCPT ); Mon, 5 Jun 2023 03:31:40 -0400 Received: from mail-ot1-f67.google.com (mail-ot1-f67.google.com [209.85.210.67]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 430AF118; Mon, 5 Jun 2023 00:31:24 -0700 (PDT) Received: by mail-ot1-f67.google.com with SMTP id 46e09a7af769-6af81142b6dso4282034a34.2; Mon, 05 Jun 2023 00:31:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685950283; x=1688542283; 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=JjH9eOPUMgvUuYzrotRDm7fc4vW9NrXoyCCMM1Pnj9g=; b=PzoCWjDIfjBUXkIQSRxM3jQGUVhZWCaVNkL6zVdxA6TxvlpmEqkwD7Zb2dsPyGVxKi jKuPWXiuIgZlVmx845eo/rSEpBOOnT7fLi6zbzwonOBUpNiMDtWWSs+K4/oKYIEXF7Je Jrws/5NaoT3SKTJZlv5WJCt9aC5eLzIIi+0pSWaIgpKrii4lR0RSK2PaJ1JewFy8uTCb jOQVkHBJQYLMa4OSx0WMbR+0+1g466tx4lYKqWWZP+VJztwobrDIHmFuStNNj8xhTuVJ 9/alDi9T4tpEmH+AgKFGKBF5xePFkjGCg0Q30KaXTYbzoEXWZhAnoQoGjHKwSF5w9/g4 kVRQ== X-Gm-Message-State: AC+VfDzSo/lx65dgEpewcYguqeAEUnSGw8WULJQpnQTxzkdAnICph/0R j6BkXhDGIIOZk5O6X9jDPQ== X-Received: by 2002:a9d:7a91:0:b0:6af:7e7e:d7b with SMTP id l17-20020a9d7a91000000b006af7e7e0d7bmr9926291otn.15.1685950283566; Mon, 05 Jun 2023 00:31:23 -0700 (PDT) Received: from localhost.localdomain ([116.128.244.169]) by smtp.gmail.com with ESMTPSA id 128-20020a630786000000b0053ba104c113sm5200419pgh.72.2023.06.05.00.31.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jun 2023 00:31:23 -0700 (PDT) From: sunliming To: mhiramat@kernel.org, beaub@linux.microsoft.com, rostedt@goodmis.org, shuah@kernel.org Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kelulanainsley@gmail.com, sunliming Subject: [PATCH V2 4/4] user_events: Add perf self-test for empty arguments events Date: Mon, 5 Jun 2023 15:30:23 +0800 Message-Id: <20230605073023.923316-4-sunliming@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230605073023.923316-1-sunliming@kylinos.cn> References: <20230605073023.923316-1-sunliming@kylinos.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767847514079859819?= X-GMAIL-MSGID: =?utf-8?q?1767847514079859819?= Tests to ensure events that has empty arguments can input trace record correctly when using perf. Signed-off-by: sunliming --- .../testing/selftests/user_events/perf_test.c | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/tools/testing/selftests/user_events/perf_test.c b/tools/testing/selftests/user_events/perf_test.c index e97f24ab6e2f..c0e7eb7fab0b 100644 --- a/tools/testing/selftests/user_events/perf_test.c +++ b/tools/testing/selftests/user_events/perf_test.c @@ -189,6 +189,59 @@ TEST_F(user, perf_write) { ASSERT_EQ(0, self->check); } +TEST_F(user, perf_empty_events) { + struct perf_event_attr pe = {0}; + struct user_reg reg = {0}; + struct perf_event_mmap_page *perf_page; + int page_size = sysconf(_SC_PAGESIZE); + int id, fd; + __u32 *val; + + reg.size = sizeof(reg); + reg.name_args = (__u64)"__test_event"; + reg.enable_bit = 31; + reg.enable_addr = (__u64)&self->check; + reg.enable_size = sizeof(self->check); + + /* Register should work */ + ASSERT_EQ(0, ioctl(self->data_fd, DIAG_IOCSREG, ®)); + ASSERT_EQ(0, reg.write_index); + ASSERT_EQ(0, self->check); + + /* Id should be there */ + id = get_id(); + ASSERT_NE(-1, id); + + pe.type = PERF_TYPE_TRACEPOINT; + pe.size = sizeof(pe); + pe.config = id; + pe.sample_type = PERF_SAMPLE_RAW; + pe.sample_period = 1; + pe.wakeup_events = 1; + + /* Tracepoint attach should work */ + fd = perf_event_open(&pe, 0, -1, -1, 0); + ASSERT_NE(-1, fd); + + perf_page = mmap(NULL, page_size * 2, PROT_READ, MAP_SHARED, fd, 0); + ASSERT_NE(MAP_FAILED, perf_page); + + /* Status should be updated */ + ASSERT_EQ(1 << reg.enable_bit, self->check); + + /* Ensure write shows up at correct offset */ + ASSERT_NE(-1, write(self->data_fd, ®.write_index, + sizeof(reg.write_index))); + val = (void *)(((char *)perf_page) + perf_page->data_offset); + ASSERT_EQ(PERF_RECORD_SAMPLE, *val); + + munmap(perf_page, page_size * 2); + close(fd); + + /* Status should be updated */ + ASSERT_EQ(0, self->check); +} + int main(int argc, char **argv) { return test_harness_run(argc, argv);