From: Niklas Cassel <cassel@kernel.org>
To: "Krzysztof Wilczyński" <kw@linux.com>
Cc: Jingoo Han <jingoohan1@gmail.com>,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
Rob Herring <robh@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Damien Le Moal <dlemoal@kernel.org>, Frank Li <Frank.Li@nxp.com>,
linux-pci@vger.kernel.org
Subject: Re: [PATCH] PCI: dwc: ep: Do not map more memory than needed to raise a MSI/MSI-X IRQ
Date: Mon, 4 Nov 2024 23:04:26 +0100 [thread overview]
Message-ID: <ZylE6ivasmzd7uFW@ryzen> (raw)
In-Reply-To: <20241104211354.GB880663@rocinante>
On Tue, Nov 05, 2024 at 06:13:54AM +0900, Krzysztof Wilczyński wrote:
> Hello,
>
> > In dw_pcie_ep_init() we allocate memory from the EPC address space that we
> > will later use to raise a MSI/MSI-X IRQ. This memory is only freed in
> > dw_pcie_ep_deinit().
> >
> > Performing this allocation in dw_pcie_ep_init() is to ensure that we will
> > not fail to allocate memory from the EPC address space when trying to raise
> > a MSI/MSI-X IRQ.
> >
> > We still map/unmap this memory every time we raise an IRQ, in order to not
> > constantly occupy an iATU, especially for controllers with few iATUs.
> > (So we can still fail to raise an MSI/MSI-X IRQ if all iATUs are occupied.)
> >
> > When allocating this memory in dw_pcie_ep_init(), we allocate
> > epc->mem->window.page_size memory, which is the smallest unit that we can
> > allocate from the EPC address space.
> >
> > However, when writing/sending the msg data, which is only 2 bytes for MSI,
> > 4 bytes for MSI-X, in either case a single writel() is sufficient. Thus,
> > the size that we need to map is a single PCI DWORD (4 bytes).
> >
> > This is the size that we should send in to the pci_epc_ops::align_addr()
> > API. It is align_addr()'s responsibility to return a size that is aligned
> > to the EPC page size, for platforms that need a special alignment.
> >
> > Modify the align_addr() call to send in the proper size that we need to
> > map.
> >
> > Before this patch on a system with a EPC page size 64k, we would
> > incorrectly map 128k (which is larger than our allocation) instead of 64k.
> >
> > After this patch, we will correctly map 64k (a single page). (We should
> > never need to map more than a page to write a single DWORD.)
> [...]
> > Feel free to squash this with the patch that it fixes, if you so prefer.
>
> Squashed with the rest of the pending changes, per:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/commit/?h=endpoint&id=d2d9f84914e147d6ee399e0ed8d938fea7f0c35c
>
> Let me know if anything needs to be updated there.
Thank you Krzysztof!
I do not see any point in you adding my Co-developed-by tag since I'm
the Author: of the original commit (the commit that you squashed with).
As far as I know, the Co-developed-by tag should only be added since
there can only be one person marked as Author:
And perhaps:
[kwilczynski: squashed patch that fixes memory map sizes on
platforms with EPC page size of 64k]
should be:
[kwilczynski: squashed patch that fixes memory map sizes on
all platforms]
or just:
[kwilczynski: squashed patch that fixes memory map sizes]
Since I (embarrassingly) always mapped twice as much memory as needed in
the original commit.
The squashed commit itself looks correct :)
Kind regards,
Niklas
next prev parent reply other threads:[~2024-11-04 22:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-04 20:51 [PATCH] PCI: dwc: ep: Do not map more memory than needed to raise a MSI/MSI-X IRQ Niklas Cassel
2024-11-04 21:13 ` Krzysztof Wilczyński
2024-11-04 22:04 ` Niklas Cassel [this message]
2024-11-04 22:38 ` Krzysztof Wilczyński
2024-11-15 7:19 ` Manivannan Sadhasivam
2024-11-16 18:37 ` Krzysztof Wilczyński
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=ZylE6ivasmzd7uFW@ryzen \
--to=cassel@kernel.org \
--cc=Frank.Li@nxp.com \
--cc=bhelgaas@google.com \
--cc=dlemoal@kernel.org \
--cc=jingoohan1@gmail.com \
--cc=kw@linux.com \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=robh@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.