linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Brian King <brking@linux.vnet.ibm.com>, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] powerpc: Enhance pmem DMA bypass handling
Date: Fri, 22 Oct 2021 23:24:15 +1100	[thread overview]
Message-ID: <84b82d2b-1263-39bb-d966-b432af530ca8@ozlabs.ru> (raw)
In-Reply-To: <20211021174449.120875-1-brking@linux.vnet.ibm.com>



On 22/10/2021 04:44, Brian King wrote:
> If ibm,pmemory is installed in the system, it can appear anywhere
> in the address space. This patch enhances how we handle DMA for devices when
> ibm,pmemory is present. In the case where we have enough DMA space to
> direct map all of RAM, but not ibm,pmemory, we use direct DMA for
> I/O to RAM and use the default window to dynamically map ibm,pmemory.
> In the case where we only have a single DMA window, this won't work, > so if the window is not big enough to map the entire address range,
> we cannot direct map.

but we want the pmem range to be mapped into the huge DMA window too if 
we can, why skip it?


> 
> Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
> ---
>   arch/powerpc/platforms/pseries/iommu.c | 19 ++++++++++---------
>   1 file changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
> index 269f61d519c2..d9ae985d10a4 100644
> --- a/arch/powerpc/platforms/pseries/iommu.c
> +++ b/arch/powerpc/platforms/pseries/iommu.c
> @@ -1092,15 +1092,6 @@ static phys_addr_t ddw_memory_hotplug_max(void)
>   	phys_addr_t max_addr = memory_hotplug_max();
>   	struct device_node *memory;
>   
> -	/*
> -	 * The "ibm,pmemory" can appear anywhere in the address space.
> -	 * Assuming it is still backed by page structs, set the upper limit
> -	 * for the huge DMA window as MAX_PHYSMEM_BITS.
> -	 */
> -	if (of_find_node_by_type(NULL, "ibm,pmemory"))
> -		return (sizeof(phys_addr_t) * 8 <= MAX_PHYSMEM_BITS) ?
> -			(phys_addr_t) -1 : (1ULL << MAX_PHYSMEM_BITS);
> -
>   	for_each_node_by_type(memory, "memory") {
>   		unsigned long start, size;
>   		int n_mem_addr_cells, n_mem_size_cells, len;
> @@ -1341,6 +1332,16 @@ static bool enable_ddw(struct pci_dev *dev, struct device_node *pdn)
>   	 */
>   	len = max_ram_len;
>   	if (pmem_present) {
> +		if (default_win_removed) {
> +			/*
> +			 * If we only have one DMA window and have pmem present,
> +			 * then we need to be able to map the entire address
> +			 * range in order to be able to do direct DMA to RAM.
> +			 */
> +			len = order_base_2((sizeof(phys_addr_t) * 8 <= MAX_PHYSMEM_BITS) ?
> +					(phys_addr_t) -1 : (1ULL << MAX_PHYSMEM_BITS));
> +		}
> +
>   		if (query.largest_available_block >=
>   		    (1ULL << (MAX_PHYSMEM_BITS - page_shift)))
>   			len = MAX_PHYSMEM_BITS;
> 

-- 
Alexey

  reply	other threads:[~2021-10-22 12:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-21 17:44 [PATCH] powerpc: Enhance pmem DMA bypass handling Brian King
2021-10-22 12:24 ` Alexey Kardashevskiy [this message]
2021-10-22 20:18   ` Brian King
2021-10-23 12:18     ` Alexey Kardashevskiy
2021-10-25 14:40       ` Brian King
2021-10-26  5:39         ` Alexey Kardashevskiy
2021-10-27 21:30           ` Brian King
2021-10-29  5:57             ` Alexey Kardashevskiy

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=84b82d2b-1263-39bb-d966-b432af530ca8@ozlabs.ru \
    --to=aik@ozlabs.ru \
    --cc=brking@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).