Message ID | 20230925230829.341-3-beaub@linux.microsoft.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp1542858vqu; Mon, 25 Sep 2023 16:12:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHWPvyFyjTZ/ac0e011gI6UDBHJUM3HdrmoHD+iYgaidsiBa1ElWi0/BiC8BBe3naFVdd36 X-Received: by 2002:a17:902:da85:b0:1bb:b226:52b1 with SMTP id j5-20020a170902da8500b001bbb22652b1mr6043210plx.17.1695683530979; Mon, 25 Sep 2023 16:12:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695683530; cv=none; d=google.com; s=arc-20160816; b=bPp9m9UiAyyJa5a7hcKNeKv0BI2frQxpDxHD9KTfA2Poq9aQK/ohTsrjwDBUCH8aSW FNR0Cjdz7wrE4Ppfvwuzvq5NLXf4gHBzJdA46NnBDKSBgBWjSz0QvilpJisnqGdZD9+P Gv/W3+/WLMZcTpQS5ZtowhkywJDxFdpjv4+1ElEbndTnq82EBl/tuYeLKU4RaSMUnHMr RLO2UPOTr9GzRN1hGgdPPqvbOlHQLjXaO7LZ/W7FliJKkRvJmBvHKNMMNXm4GYFIXLIe j4Wzrw06YiUxSgODPl5uxRekWkAitJvpCGHIOhEjLZZ4645kQxz77hPq8Vo0hRIHUnia g/CQ== 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 :dkim-signature:dkim-filter; bh=wB3d//EX+ogKijIJTe8Ceqkr+8ED/kywJ6SuAQTP9vQ=; fh=cnVkuVrG/TdFI46uycxh/TNno8+tW8fsC0qurRWz87Y=; b=nK0ZC9mN4gAHnGcf5n5fDvkJftq0zmUtFJzMiOFsO9SEj/SipGvsQMzIlIG5W6uxwv zq9svXvfwJqwu7oS+ABgIbVLHBSBIjWtdTdUaBonHou9UfQbWV/7r7qRRY7UbLujlEgv hVC0XhRyMooBWLVgPxcpHLoQpntCkUcLmFfqYcBYYFDiQ9iYiGIa8pEHAwaA9yk+li4M ogotJsqZC0DdgtE0Yfpqk1RxHmfaOpBe5tGbptWs3rwPYI9KaL02ALi1FP3sw1PIHhFp VCfwfy5CBA3jLDnvXT6v4lfWCx2TodnkYcqvT73PQHHTJ1vjPgEo3ZGl1F1B5DP80YT2 Mb6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=CTAqxWFO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id k6-20020a170902c40600b001bc1b018950si12089749plk.442.2023.09.25.16.12.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 16:12:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=CTAqxWFO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id CE594807E42F; Mon, 25 Sep 2023 16:08:55 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233490AbjIYXIs (ORCPT <rfc822;chrisfriedt@gmail.com> + 28 others); Mon, 25 Sep 2023 19:08:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230038AbjIYXIl (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 25 Sep 2023 19:08:41 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3540310C; Mon, 25 Sep 2023 16:08:35 -0700 (PDT) Received: from localhost.localdomain (unknown [4.155.48.113]) by linux.microsoft.com (Postfix) with ESMTPSA id B48EB212C81F; Mon, 25 Sep 2023 16:08:34 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B48EB212C81F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1695683314; bh=wB3d//EX+ogKijIJTe8Ceqkr+8ED/kywJ6SuAQTP9vQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CTAqxWFOfb0l8YHKBUEnkG96vNvFe+P+AuTU/Gonj3EuD+sQ9o7eqYJFi4We9eF6h aOJu/i67vBNz/2POtoAv1vcLmjmNqanoQoXo/zg7/+u3iRnZzf6fwrJOrri69aC/pl fut1vMf8O2ylt/hgtdkHTbVhC1Itpj6Guc7CRboM= From: Beau Belgrave <beaub@linux.microsoft.com> To: rostedt@goodmis.org, mhiramat@kernel.org Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, cleger@rivosinc.com, linux-kselftest@vger.kernel.org Subject: [PATCH 2/2] selftests/user_events: Fix abi_test for BE archs Date: Mon, 25 Sep 2023 23:08:29 +0000 Message-Id: <20230925230829.341-3-beaub@linux.microsoft.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230925230829.341-1-beaub@linux.microsoft.com> References: <20230925230829.341-1-beaub@linux.microsoft.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 25 Sep 2023 16:08:55 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778053054011894098 X-GMAIL-MSGID: 1778053054011894098 |
Series |
tracing/user_events: Fix alignment issues for 32 on 64-bit and BE
|
|
Commit Message
Beau Belgrave
Sept. 25, 2023, 11:08 p.m. UTC
The abi_test currently uses a long sized test value for enablement
checks. On LE this works fine, however, on BE this results in inaccurate
assert checks due to a bit being used and assuming it's value is the
same on both LE and BE.
Use int type for 32-bit values and long type for 64-bit values to ensure
appropriate behavior on both LE and BE.
Fixes: 60b1af8de8c1 ("tracing/user_events: Add ABI self-test")
Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com>
---
tools/testing/selftests/user_events/abi_test.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
Comments
Note, this doesn't seem to apply to my tree so I only added the first patch. I think this needs to go through Shuah's tree. -- Steve On Mon, 25 Sep 2023 23:08:29 +0000 Beau Belgrave <beaub@linux.microsoft.com> wrote: > The abi_test currently uses a long sized test value for enablement > checks. On LE this works fine, however, on BE this results in inaccurate > assert checks due to a bit being used and assuming it's value is the > same on both LE and BE. > > Use int type for 32-bit values and long type for 64-bit values to ensure > appropriate behavior on both LE and BE. > > Fixes: 60b1af8de8c1 ("tracing/user_events: Add ABI self-test") > Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com> > --- > tools/testing/selftests/user_events/abi_test.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/tools/testing/selftests/user_events/abi_test.c b/tools/testing/selftests/user_events/abi_test.c > index 5125c42efe65..67af4c491c0c 100644 > --- a/tools/testing/selftests/user_events/abi_test.c > +++ b/tools/testing/selftests/user_events/abi_test.c > @@ -46,7 +46,7 @@ static int change_event(bool enable) > return ret; > } > > -static int reg_enable(long *enable, int size, int bit) > +static int reg_enable(void *enable, int size, int bit) > { > struct user_reg reg = {0}; > int fd = open(data_file, O_RDWR); > @@ -68,7 +68,7 @@ static int reg_enable(long *enable, int size, int bit) > return ret; > } > > -static int reg_disable(long *enable, int bit) > +static int reg_disable(void *enable, int bit) > { > struct user_unreg reg = {0}; > int fd = open(data_file, O_RDWR); > @@ -89,12 +89,14 @@ static int reg_disable(long *enable, int bit) > } > > FIXTURE(user) { > - long check; > + int check; > + long check_long; > }; > > FIXTURE_SETUP(user) { > change_event(false); > self->check = 0; > + self->check_long = 0; > } > > FIXTURE_TEARDOWN(user) { > @@ -131,9 +133,9 @@ TEST_F(user, bit_sizes) { > > #if BITS_PER_LONG == 8 > /* Allow 0-64 bits for 64-bit */ > - ASSERT_EQ(0, reg_enable(&self->check, sizeof(long), 63)); > - ASSERT_NE(0, reg_enable(&self->check, sizeof(long), 64)); > - ASSERT_EQ(0, reg_disable(&self->check, 63)); > + ASSERT_EQ(0, reg_enable(&self->check_long, sizeof(long), 63)); > + ASSERT_NE(0, reg_enable(&self->check_long, sizeof(long), 64)); > + ASSERT_EQ(0, reg_disable(&self->check_long, 63)); > #endif > > /* Disallowed sizes (everything beside 4 and 8) */ > @@ -195,7 +197,7 @@ static int clone_check(void *check) > for (i = 0; i < 10; ++i) { > usleep(100000); > > - if (*(long *)check) > + if (*(int *)check) > return 0; > } >
On 10/3/23 18:59, Steven Rostedt wrote: > > Note, this doesn't seem to apply to my tree so I only added the first > patch. I think this needs to go through Shuah's tree. > > -- Steve > > Yes. I sent a fix up for rc4 - I can pull these two patches into linux-kselftest next Steve! Does that work for you? thanks, -- Shuah
On Wed, 4 Oct 2023 09:10:52 -0600 Shuah Khan <skhan@linuxfoundation.org> wrote: > On 10/3/23 18:59, Steven Rostedt wrote: > > > > Note, this doesn't seem to apply to my tree so I only added the first > > patch. I think this needs to go through Shuah's tree. > > > > -- Steve > > > > > > Yes. I sent a fix up for rc4 - I can pull these two patches into > linux-kselftest next > > Steve! Does that work for you? > I applied the first patch to my tree, I think the second patch is fine to go separately through your tree. -- Steve
On 10/4/23 09:14, Steven Rostedt wrote: > On Wed, 4 Oct 2023 09:10:52 -0600 > Shuah Khan <skhan@linuxfoundation.org> wrote: > >> On 10/3/23 18:59, Steven Rostedt wrote: >>> >>> Note, this doesn't seem to apply to my tree so I only added the first >>> patch. I think this needs to go through Shuah's tree. >>> >>> -- Steve >>> >>> >> >> Yes. I sent a fix up for rc4 - I can pull these two patches into >> linux-kselftest next >> >> Steve! Does that work for you? >> > > I applied the first patch to my tree, I think the second patch is fine to go > separately through your tree. > Yes I will apply this to linux-kselftest fixes branch once my PR clears. thanks, -- Shuah
On 10/4/23 10:38, Shuah Khan wrote: > On 10/4/23 09:14, Steven Rostedt wrote: >> On Wed, 4 Oct 2023 09:10:52 -0600 >> Shuah Khan <skhan@linuxfoundation.org> wrote: >> >>> On 10/3/23 18:59, Steven Rostedt wrote: >>>> >>>> Note, this doesn't seem to apply to my tree so I only added the first >>>> patch. I think this needs to go through Shuah's tree. >>>> >>>> -- Steve >>>> >>> >>> Yes. I sent a fix up for rc4 - I can pull these two patches into >>> linux-kselftest next >>> >>> Steve! Does that work for you? >>> >> >> I applied the first patch to my tree, I think the second patch is fine to go >> separately through your tree. >> > > > Yes I will apply this to linux-kselftest fixes branch once my PR > clears. > Hmm. Which tree is this patch based on? This doesn't apply to linux-kselftest fixes - I thought this was based on top of fixes since I sent in a fix for Linux 6.6-rc4 for user_events Beau, Please rebase to the correct tree/branch and send v2 for this patch. thanks, -- Shuah
On Thu, 5 Oct 2023 08:48:14 -0600 Shuah Khan <skhan@linuxfoundation.org> wrote: > Hmm. Which tree is this patch based on? This doesn't apply to > linux-kselftest fixes - I thought this was based on top of fixes > since I sent in a fix for Linux 6.6-rc4 for user_events > > Beau, Please rebase to the correct tree/branch and send v2 for > this patch. Hmm, so this didn't apply to my tree nor yours. Beau, can you verify which tree this goes to? -- Steve
On Thu, Oct 05, 2023 at 11:08:15AM -0400, Steven Rostedt wrote: > On Thu, 5 Oct 2023 08:48:14 -0600 > Shuah Khan <skhan@linuxfoundation.org> wrote: > > > Hmm. Which tree is this patch based on? This doesn't apply to > > linux-kselftest fixes - I thought this was based on top of fixes > > since I sent in a fix for Linux 6.6-rc4 for user_events > > > > Beau, Please rebase to the correct tree/branch and send v2 for > > this patch. > > Hmm, so this didn't apply to my tree nor yours. > > Beau, can you verify which tree this goes to? > > -- Steve It was based on tracing/for-next. I'll get a v2 out rebased upon linux-kselftest, does that work? Thanks, -Beau
On Thu, 5 Oct 2023 09:52:30 -0700 Beau Belgrave <beaub@linux.microsoft.com> wrote: > It was based on tracing/for-next. > > I'll get a v2 out rebased upon linux-kselftest, does that work? Hmm, then it should have applied to my tree. I didn't look too deep. Can you see if it applies to: git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git trace/for-next ? Thanks, -- Steve
diff --git a/tools/testing/selftests/user_events/abi_test.c b/tools/testing/selftests/user_events/abi_test.c index 5125c42efe65..67af4c491c0c 100644 --- a/tools/testing/selftests/user_events/abi_test.c +++ b/tools/testing/selftests/user_events/abi_test.c @@ -46,7 +46,7 @@ static int change_event(bool enable) return ret; } -static int reg_enable(long *enable, int size, int bit) +static int reg_enable(void *enable, int size, int bit) { struct user_reg reg = {0}; int fd = open(data_file, O_RDWR); @@ -68,7 +68,7 @@ static int reg_enable(long *enable, int size, int bit) return ret; } -static int reg_disable(long *enable, int bit) +static int reg_disable(void *enable, int bit) { struct user_unreg reg = {0}; int fd = open(data_file, O_RDWR); @@ -89,12 +89,14 @@ static int reg_disable(long *enable, int bit) } FIXTURE(user) { - long check; + int check; + long check_long; }; FIXTURE_SETUP(user) { change_event(false); self->check = 0; + self->check_long = 0; } FIXTURE_TEARDOWN(user) { @@ -131,9 +133,9 @@ TEST_F(user, bit_sizes) { #if BITS_PER_LONG == 8 /* Allow 0-64 bits for 64-bit */ - ASSERT_EQ(0, reg_enable(&self->check, sizeof(long), 63)); - ASSERT_NE(0, reg_enable(&self->check, sizeof(long), 64)); - ASSERT_EQ(0, reg_disable(&self->check, 63)); + ASSERT_EQ(0, reg_enable(&self->check_long, sizeof(long), 63)); + ASSERT_NE(0, reg_enable(&self->check_long, sizeof(long), 64)); + ASSERT_EQ(0, reg_disable(&self->check_long, 63)); #endif /* Disallowed sizes (everything beside 4 and 8) */ @@ -195,7 +197,7 @@ static int clone_check(void *check) for (i = 0; i < 10; ++i) { usleep(100000); - if (*(long *)check) + if (*(int *)check) return 0; }