All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: "Kunihiko Hayashi" <hayashi.kunihiko@socionext.com>,
	"Krzysztof Wilczy���ski" <kw@linux.com>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
	"Bjorn Helgaas" <helgaas@kernel.org>,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v2 3/3] misc: pci_endpoint_test: Fix irq_type to convey the correct type
Date: Wed, 29 Jan 2025 12:58:28 +0100	[thread overview]
Message-ID: <Z5oX5Fe5FY2Pym0u@ryzen> (raw)
In-Reply-To: <20250128143231.ondpjpugft37qwo5@thinkpad>

On Tue, Jan 28, 2025 at 08:02:31PM +0530, Manivannan Sadhasivam wrote:
> On Wed, Jan 22, 2025 at 11:24:46AM +0900, Kunihiko Hayashi wrote:
> > There are two variables that indicate the interrupt type to be used
> > in the next test execution, "irq_type" as global and test->irq_type.
> > 
> > The global is referenced from pci_endpoint_test_get_irq() to preserve
> > the current type for ioctl(PCITEST_GET_IRQTYPE).
> > 
> > The type set in this function isn't reflected in the global "irq_type",
> > so ioctl(PCITEST_GET_IRQTYPE) returns the previous type.
> > As a result, the wrong type will be displayed in "pcitest" as follows:
> > 
> >     # pcitest -i 0
> >     SET IRQ TYPE TO LEGACY:         OKAY
> >     # pcitest -I
> >     GET IRQ TYPE:           MSI
> > 
> > Fix this issue by propagating the current type to the global "irq_type".
> > 
> 
> This is becoming a nuisance. I think we should get rid of the global 'irq_type'
> and just stick to the one that is configurable using IOCTL command. Even if the
> user has configured the global 'irq_type' it is bound to change with IOCTL
> command.

+1


But I also don't like how since we migrated to selftests:
READ_TEST / WRITE_TEST / COPY_TEST unconditionally call
ioctl(PCITEST_SET_IRQTYPE, MSI) before doing their thing.

Will this cause the test case to fail for platforms that only support MSI-X?
(See e.g. dwc/pci-layerscape-ep.c where this could be the case.)


Sure, before, in pcitest.sh, we would do:


pcitest -i 2
        pcitest -x $msix


pcitest -i 1

pcitest -r -s 1
pcitest -r -s 1024
pcitest -r -s 1025
pcitest -r -s 1024000
pcitest -r -s 1024001


Which would probably print an error if:
pcitest -i 1
failed.

but the READ_TEST / WRITE_TEST / COPY_TEST tests themselves
would not fail.


Perhaps we should rethink this, and introduce a new
PCITEST_SET_IRQTYPE, AUTO

I would be fine if
READ_TEST / WRITE_TEST / COPY_TEST
called PCITEST_SET_IRQTYPE, AUTO
before doing their thing.



How I suggest PCITEST_SET_IRQTYPE, AUTO
would work:

Since we now have capabilties merged:
https://lore.kernel.org/linux-pci/20241203063851.695733-4-cassel@kernel.org/

Add epc_features->msi_capable and epc->features->msix_capable
as two new bits in the PCI_ENDPOINT_TEST_CAPS register.

If PCITEST_SET_IRQTYPE, AUTO:
if EP CAP has msi_capable set: set IRQ type MSI
else if EP CAP has msix_capable set: set IRQ type MSI-X
else: set legacy/INTx


Kind regards,
Niklas

  parent reply	other threads:[~2025-01-29 11:58 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-22  2:24 [PATCH v2 0/3] Fix some issues related to an interrupt type in pci_endpoint_test Kunihiko Hayashi
2025-01-22  2:24 ` [PATCH v2 1/3] misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error Kunihiko Hayashi
2025-01-28 14:12   ` Manivannan Sadhasivam
2025-01-29  7:54     ` Kunihiko Hayashi
2025-02-07 18:02       ` Manivannan Sadhasivam
2025-02-10  1:39         ` Kunihiko Hayashi
2025-01-22  2:24 ` [PATCH v2 2/3] misc: pci_endpoint_test: Fix disyplaying irq_type " Kunihiko Hayashi
2025-01-28 14:20   ` Manivannan Sadhasivam
2025-01-22  2:24 ` [PATCH v2 3/3] misc: pci_endpoint_test: Fix irq_type to convey the correct type Kunihiko Hayashi
2025-01-28 14:32   ` Manivannan Sadhasivam
2025-01-29  7:55     ` Kunihiko Hayashi
2025-01-29 11:58     ` Niklas Cassel [this message]
2025-01-31 10:16       ` Kunihiko Hayashi
2025-01-31 12:10         ` Niklas Cassel
2025-01-31 12:20           ` Niklas Cassel
2025-01-31 13:13             ` Niklas Cassel
2025-02-03  8:03           ` Kunihiko Hayashi

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=Z5oX5Fe5FY2Pym0u@ryzen \
    --to=cassel@kernel.org \
    --cc=arnd@arndb.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=gustavo.pimentel@synopsys.com \
    --cc=hayashi.kunihiko@socionext.com \
    --cc=helgaas@kernel.org \
    --cc=kishon@kernel.org \
    --cc=kw@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=stable@vger.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.