From: "Aman Gupta" <aman1.gupta@samsung.com>
To: "'Kishon Vijay Abraham I'" <kishon@ti.com>,
<shradha.t@samsung.com>, <pankaj.dubey@samsung.com>,
<lpieralisi@kernel.org>, <kw@linux.com>, <shuah@kernel.org>
Cc: <linux-pci@vger.kernel.org>, <linux-kselftest@vger.kernel.org>,
"'Padmanabhan Rajanbabu'" <p.rajanbabu@samsung.com>,
"'Manivannan Sadhasivam'" <manivannan.sadhasivam@linaro.org>
Subject: RE: [PATCH] selftests: pci: pci-selftest: add support for PCI endpoint driver test
Date: Fri, 21 Oct 2022 12:26:38 +0530 [thread overview]
Message-ID: <007c01d8e51a$4b2e3720$e18aa560$@samsung.com> (raw)
In-Reply-To: <fe40a005-b6a2-2938-576d-acf5432636b9@ti.com>
> -----Original Message-----
> From: Kishon Vijay Abraham I [mailto:kishon@ti.com]
> Sent: Tuesday, October 11, 2022 4:29 PM
> To: Aman Gupta <aman1.gupta@samsung.com>; shradha.t@samsung.com;
> pankaj.dubey@samsung.com; lpieralisi@kernel.org; kw@linux.com;
> shuah@kernel.org
> Cc: linux-pci@vger.kernel.org; linux-kselftest@vger.kernel.org;
> Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>; Manivannan
> Sadhasivam <manivannan.sadhasivam@linaro.org>
> Subject: Re: [PATCH] selftests: pci: pci-selftest: add support for PCI endpoint
> driver test
>
> +Mani
Gentle reminder for review of this patch.
Thanks and Regards
Aman Gupta
>
> On 07/10/22 11:09 am, Aman Gupta wrote:
> > This patch enables the support to perform selftest on PCIe endpoint
> > driver present in the system. The following tests are currently
> > performed by the selftest utility
> >
> > 1. BAR Tests (BAR0 to BAR5)
> > 2. MSI Interrupt Tests (MSI1 to MSI32) 3. Read Tests (For 1, 1024,
> > 1025, 1024000, 1024001 Bytes) 4. Write Tests (For 1, 1024, 1025,
> > 1024000, 1024001 Bytes) 5. Copy Tests (For 1, 1024, 1025, 1024000,
> > 1024001 Bytes)
> >
> > Signed-off-by: Aman Gupta <aman1.gupta@samsung.com>
> > Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>
> > ---
> > tools/testing/selftests/Makefile | 1 +
> > tools/testing/selftests/pci/.gitignore | 1 +
> > tools/testing/selftests/pci/Makefile | 7 +
> > tools/testing/selftests/pci/pci-selftest.c | 167 +++++++++++++++++++++
> > 4 files changed, 176 insertions(+)
> > create mode 100644 tools/testing/selftests/pci/.gitignore
> > create mode 100644 tools/testing/selftests/pci/Makefile
> > create mode 100644 tools/testing/selftests/pci/pci-selftest.c
> >
> > diff --git a/tools/testing/selftests/Makefile
> > b/tools/testing/selftests/Makefile
> > index c2064a35688b..81584169a80f 100644
> > --- a/tools/testing/selftests/Makefile
> > +++ b/tools/testing/selftests/Makefile
> > @@ -49,6 +49,7 @@ TARGETS += net/forwarding
> > TARGETS += net/mptcp
> > TARGETS += netfilter
> > TARGETS += nsfs
> > +TARGETS += pci
> > TARGETS += pidfd
> > TARGETS += pid_namespace
> > TARGETS += powerpc
> > diff --git a/tools/testing/selftests/pci/.gitignore
> > b/tools/testing/selftests/pci/.gitignore
> > new file mode 100644
> > index 000000000000..db01411b8200
> > --- /dev/null
> > +++ b/tools/testing/selftests/pci/.gitignore
> > @@ -0,0 +1 @@
> > +pci-selftest
> > diff --git a/tools/testing/selftests/pci/Makefile
> > b/tools/testing/selftests/pci/Makefile
> > new file mode 100644
> > index 000000000000..76b7725a45ae
> > --- /dev/null
> > +++ b/tools/testing/selftests/pci/Makefile
> > @@ -0,0 +1,7 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +CFLAGS += -O2 -Wl,-no-as-needed -Wall LDFLAGS += -lrt -lpthread -lm
> > +
> > +TEST_GEN_PROGS = pci-selftest
> > +
> > +include ../lib.mk
> > diff --git a/tools/testing/selftests/pci/pci-selftest.c
> > b/tools/testing/selftests/pci/pci-selftest.c
> > new file mode 100644
> > index 000000000000..73e8f3eb1982
> > --- /dev/null
> > +++ b/tools/testing/selftests/pci/pci-selftest.c
> > @@ -0,0 +1,167 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * PCI Endpoint Driver Test Program
> > + *
> > + * Copyright (c) 2022 Samsung Electronics Co., Ltd.
> > + * https://www.samsung.com
> > + * Author: Aman Gupta <aman1.gupta@samsung.com> */
> > +
> > +#include <errno.h>
> > +#include <fcntl.h>
> > +#include <stdbool.h>
> > +#include <stdio.h>
> > +#include <stdlib.h>
> > +#include <sys/ioctl.h>
> > +#include <unistd.h>
> > +
> > +#include "../kselftest_harness.h"
> > +
> > +#define PCITEST_BAR _IO('P', 0x1)
> > +#define PCITEST_LEGACY_IRQ _IO('P', 0x2)
> > +#define PCITEST_MSI _IOW('P', 0x3, int)
> > +#define PCITEST_WRITE _IOW('P', 0x4, unsigned long)
> > +#define PCITEST_READ _IOW('P', 0x5, unsigned long)
> > +#define PCITEST_COPY _IOW('P', 0x6, unsigned long)
> > +#define PCITEST_MSIX _IOW('P', 0x7, int)
> > +#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
> > +#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
> > +#define PCITEST_CLEAR_IRQ _IO('P', 0x10)
> > +
> > +static char *test_device = "/dev/pci-endpoint-test.0";
> > +
> > +struct xfer_param {
> > + unsigned long size;
> > + unsigned char flag;
> > + };
> > +
> > +FIXTURE(device)
> > +{
> > + int fd;
> > +};
> > +
> > +FIXTURE_SETUP(device)
> > +{
> > +
> > + self->fd = open(test_device, O_RDWR);
> > +
> > + ASSERT_NE(-1, self->fd) {
> > + TH_LOG("Can't open PCI Endpoint Test device\n");
> > + }
> > +}
> > +
> > +FIXTURE_TEARDOWN(device)
> > +{
> > + close(self->fd);
> > +}
> > +
> > +TEST_F(device, BAR_TEST)
> > +{
> > + int ret = -EINVAL;
> > + int final = 0;
> > +
> > + for (int i = 0; i <= 5; i++) {
> > + ret = ioctl(self->fd, PCITEST_BAR, i);
> > +
> > + EXPECT_EQ(1, ret) {
> > + TH_LOG("TEST FAILED FOR BAR %d\n", i);
> > + final++;
> > + }
> > + }
> > +
> > + ASSERT_EQ(0, final);
> > +}
> > +
> > +TEST_F(device, MSI_TEST)
> > +{
> > + int ret = -EINVAL;
> > + int final = 0;
> > +
> > + ret = ioctl(self->fd, PCITEST_SET_IRQTYPE, 1);
> > + ASSERT_EQ(1, ret);
> > +
> > + for (int i = 1; i <= 32; i++) {
> > + ret = ioctl(self->fd, PCITEST_MSI, i);
> > + EXPECT_EQ(1, ret) {
> > + TH_LOG("TEST FAILED FOR MSI%d\n", i);
> > + final++;
> > + }
> > + }
> > +
> > + ASSERT_EQ(0, final);
> > +}
> > +
> > +TEST_F(device, READ_TEST)
> > +{
> > + int final = 0;
> > + int ret = -EINVAL;
> > + unsigned long SIZE[5] = {1, 1024, 1025, 1024000, 1024001};
> > +
> > + ret = ioctl(self->fd, PCITEST_SET_IRQTYPE, 1);
> > + ASSERT_EQ(1, ret);
> > +
> > + struct xfer_param param;
> > +
> > + param.flag = 0;
> > + for (int i = 0; i < 5; i++) {
> > + param.size = SIZE[i];
> > + ret = ioctl(self->fd, PCITEST_READ, ¶m);
> > + EXPECT_EQ(1, ret) {
> > + TH_LOG("TEST FAILED FOR size =%ld.\n", SIZE[i]);
> > + final++;
> > + }
> > + }
> > +
> > + ASSERT_EQ(0, final);
> > +}
> > +
> > +TEST_F(device, WRITE_TEST)
> > +{
> > + int final = 0;
> > + int ret = -EINVAL;
> > + unsigned long SIZE[5] = {1, 1024, 1025, 1024000, 1024001};
> > +
> > + ret = ioctl(self->fd, PCITEST_SET_IRQTYPE, 1);
> > + ASSERT_EQ(1, ret);
> > +
> > + struct xfer_param param;
> > +
> > + param.flag = 0;
> > +
> > + for (int i = 0; i < 5; i++) {
> > + param.size = SIZE[i];
> > + ret = ioctl(self->fd, PCITEST_WRITE, ¶m);
> > + EXPECT_EQ(1, ret) {
> > + TH_LOG("TEST FAILED FOR size =%ld.\n", SIZE[i]);
> > + final++;
> > + }
> > + }
> > +
> > + ASSERT_EQ(0, final);
> > +}
> > +
> > +TEST_F(device, COPY_TEST)
> > +{
> > + int final = 0;
> > + int ret = -EINVAL;
> > + unsigned long SIZE[5] = {1, 1024, 1025, 1024000, 1024001};
> > +
> > + ret = ioctl(self->fd, PCITEST_SET_IRQTYPE, 1);
> > + ASSERT_EQ(1, ret);
> > +
> > + struct xfer_param param;
> > +
> > + param.flag = 0;
> > +
> > + for (int i = 0; i < 5; i++) {
> > + param.size = SIZE[i];
> > + ret = ioctl(self->fd, PCITEST_COPY, ¶m);
> > + EXPECT_EQ(1, ret) {
> > + TH_LOG("TEST FAILED FOR size =%ld.\n", SIZE[i]);
> > + final++;
> > + }
> > + }
> > +
> > + ASSERT_EQ(0, final);
> > +}
> > +TEST_HARNESS_MAIN
> >
next prev parent reply other threads:[~2022-10-21 7:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20221007053726epcas5p357c35abb79327fee6327bc6493e0178c@epcas5p3.samsung.com>
2022-10-07 5:39 ` [PATCH] selftests: pci: pci-selftest: add support for PCI endpoint driver test Aman Gupta
2022-10-11 10:58 ` Kishon Vijay Abraham I
2022-10-21 6:56 ` Aman Gupta [this message]
2022-10-21 8:00 ` 'Manivannan Sadhasivam'
2022-11-01 14:02 ` Manivannan Sadhasivam
2022-11-01 17:19 ` Manivannan Sadhasivam
2022-12-21 8:30 ` Shunsuke Mie
2022-12-23 13:39 ` Aman Gupta/FDS SW /SSIR/Engineer/Samsung Electronics
2022-12-22 16:58 ` Shuah Khan
2022-12-22 17:45 ` Manivannan Sadhasivam
2022-12-22 17:49 ` Shuah Khan
2022-12-23 15:02 ` Manivannan Sadhasivam
2022-12-23 16:31 ` Shuah Khan
2022-12-27 5:15 ` Aman Gupta/FDS SW /SSIR/Engineer/Samsung Electronics
2023-01-17 19:59 ` Bjorn Helgaas
2023-01-26 20:57 ` Shuah Khan
2023-02-14 6:16 ` 'Manivannan Sadhasivam'
2023-03-08 11:06 ` Aman Gupta/FDS SW /SSIR/Engineer/Samsung Electronics
2023-01-17 8:12 ` Aman Gupta/FDS SW /SSIR/Engineer/Samsung Electronics
[not found] <CGME20221219043044epcas5p3d5476a9a5d6ae7a5cd2bb3fa92708e73@epcas5p3.samsung.com>
2022-12-19 4:30 ` Aman Gupta/FDS SW /SSIR/Engineer/Samsung Electronics
2022-12-21 7:24 ` 'Manivannan Sadhasivam'
2022-12-23 13:45 ` Aman Gupta/FDS SW /SSIR/Engineer/Samsung Electronics
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='007c01d8e51a$4b2e3720$e18aa560$@samsung.com' \
--to=aman1.gupta@samsung.com \
--cc=kishon@ti.com \
--cc=kw@linux.com \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=p.rajanbabu@samsung.com \
--cc=pankaj.dubey@samsung.com \
--cc=shradha.t@samsung.com \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.