public inbox for linux-riscv@lists.infradead.org
 help / color / mirror / Atom feed
* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
       [not found] ` <20231009074121.219686-2-hch@lst.de>
@ 2023-10-09  8:43   ` Geert Uytterhoeven
  2023-10-09  9:16     ` Christoph Hellwig
  0 siblings, 1 reply; 9+ messages in thread
From: Geert Uytterhoeven @ 2023-10-09  8:43 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: iommu, Robin Murphy, Marek Szyprowski, Wei Fang, Shenwei Wang,
	Clark Wang, NXP Linux Team, linux-m68k, netdev, Jim Quinlan,
	linux-riscv, Linux-Renesas, Lad, Prabhakar

Hi Christoph,

On Mon, Oct 9, 2023 at 9:41 AM Christoph Hellwig <hch@lst.de> wrote:
> CONFIG_DMA_GLOBAL_POOL can't be combined with other dma-coherent
> allocators.  Add dependencies to Kconfig to document this, and make
> kconfig complain about unment dependencies if someone tries.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Thanks for your patch!

> --- a/kernel/dma/Kconfig
> +++ b/kernel/dma/Kconfig
> @@ -135,6 +135,8 @@ config DMA_COHERENT_POOL
>
>  config DMA_GLOBAL_POOL
>         select DMA_DECLARE_COHERENT
> +       depends on !ARCH_HAS_DMA_SET_UNCACHED
> +       depends on !DMA_DIRECT_REMAP
>         bool
>
>  config DMA_DIRECT_REMAP

riscv defconfig + CONFIG_NONPORTABLE=y + CONFIG_ARCH_R9A07G043=y:

WARNING: unmet direct dependencies detected for DMA_GLOBAL_POOL
  Depends on [n]: !ARCH_HAS_DMA_SET_UNCACHED [=n] && !DMA_DIRECT_REMAP [=y]
  Selected by [y]:
  - ARCH_R9A07G043 [=y] && SOC_RENESAS [=y] && RISCV [=y] && NONPORTABLE [=y]

Gr{oetje,eeting}s,

                        Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09  8:43   ` [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL Geert Uytterhoeven
@ 2023-10-09  9:16     ` Christoph Hellwig
  2023-10-09  9:34       ` Geert Uytterhoeven
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2023-10-09  9:16 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Christoph Hellwig, iommu, Robin Murphy, Marek Szyprowski,
	Wei Fang, Shenwei Wang, Clark Wang, NXP Linux Team, linux-m68k,
	netdev, Jim Quinlan, linux-riscv, Linux-Renesas, Lad, Prabhakar

On Mon, Oct 09, 2023 at 10:43:57AM +0200, Geert Uytterhoeven wrote:
> >  config DMA_DIRECT_REMAP
> 
> riscv defconfig + CONFIG_NONPORTABLE=y + CONFIG_ARCH_R9A07G043=y:
> 
> WARNING: unmet direct dependencies detected for DMA_GLOBAL_POOL
>   Depends on [n]: !ARCH_HAS_DMA_SET_UNCACHED [=n] && !DMA_DIRECT_REMAP [=y]
>   Selected by [y]:
>   - ARCH_R9A07G043 [=y] && SOC_RENESAS [=y] && RISCV [=y] && NONPORTABLE [=y]

And that's exactly what this patch is supposed to show.  RISCV must not
select DMA_DIRECT_REMAP at the same time as DMA_GLOBAL_POOL.  I though
the fix for that just went upstream?


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09  9:16     ` Christoph Hellwig
@ 2023-10-09  9:34       ` Geert Uytterhoeven
  2023-10-09  9:43         ` Christoph Hellwig
  0 siblings, 1 reply; 9+ messages in thread
From: Geert Uytterhoeven @ 2023-10-09  9:34 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: iommu, Robin Murphy, Marek Szyprowski, Wei Fang, Shenwei Wang,
	Clark Wang, NXP Linux Team, linux-m68k, netdev, Jim Quinlan,
	linux-riscv, Linux-Renesas, Lad, Prabhakar

Hi Christoph,

On Mon, Oct 9, 2023 at 11:16 AM Christoph Hellwig <hch@lst.de> wrote:
> On Mon, Oct 09, 2023 at 10:43:57AM +0200, Geert Uytterhoeven wrote:
> > >  config DMA_DIRECT_REMAP
> >
> > riscv defconfig + CONFIG_NONPORTABLE=y + CONFIG_ARCH_R9A07G043=y:
> >
> > WARNING: unmet direct dependencies detected for DMA_GLOBAL_POOL
> >   Depends on [n]: !ARCH_HAS_DMA_SET_UNCACHED [=n] && !DMA_DIRECT_REMAP [=y]
> >   Selected by [y]:
> >   - ARCH_R9A07G043 [=y] && SOC_RENESAS [=y] && RISCV [=y] && NONPORTABLE [=y]
>
> And that's exactly what this patch is supposed to show.  RISCV must not
> select DMA_DIRECT_REMAP at the same time as DMA_GLOBAL_POOL.  I though
> the fix for that just went upstream?

The fix you are referring too is probably commit c1ec4b450ab729e3
("soc: renesas: Make ARCH_R9A07G043 (riscv version) depend
on NONPORTABLE") in next-20231006 and later.  It is not yet upstream.

Still, it merely makes ARCH_R9A07G043 (which selects DMA_GLOBAL_POOL)
depend on ARCH_R9A07G043.
RISCV_DMA_NONCOHERENT still selects DMA_DIRECT_REMAP, so both can end
up being enabled.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09  9:34       ` Geert Uytterhoeven
@ 2023-10-09  9:43         ` Christoph Hellwig
  2023-10-09  9:51           ` Geert Uytterhoeven
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2023-10-09  9:43 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Christoph Hellwig, iommu, Robin Murphy, Marek Szyprowski,
	Wei Fang, Shenwei Wang, Clark Wang, NXP Linux Team, linux-m68k,
	netdev, Jim Quinlan, linux-riscv, Linux-Renesas, Lad, Prabhakar

On Mon, Oct 09, 2023 at 11:34:55AM +0200, Geert Uytterhoeven wrote:
> The fix you are referring too is probably commit c1ec4b450ab729e3
> ("soc: renesas: Make ARCH_R9A07G043 (riscv version) depend
> on NONPORTABLE") in next-20231006 and later.  It is not yet upstream.
> 
> Still, it merely makes ARCH_R9A07G043 (which selects DMA_GLOBAL_POOL)
> depend on ARCH_R9A07G043.
> RISCV_DMA_NONCOHERENT still selects DMA_DIRECT_REMAP, so both can end
> up being enabled.

Ok, so we need to actually fix this properly.  Lad, can you respin
the fix to not select DMA_DIRECT_REMAP, for ARCH_R9A07G043?


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09  9:43         ` Christoph Hellwig
@ 2023-10-09  9:51           ` Geert Uytterhoeven
  2023-10-09 10:04             ` Robin Murphy
  0 siblings, 1 reply; 9+ messages in thread
From: Geert Uytterhoeven @ 2023-10-09  9:51 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: iommu, Robin Murphy, Marek Szyprowski, Wei Fang, Shenwei Wang,
	Clark Wang, NXP Linux Team, linux-m68k, netdev, Jim Quinlan,
	linux-riscv, Linux-Renesas, Lad, Prabhakar, arm-soc

Hi Christoph,

CC soc

On Mon, Oct 9, 2023 at 11:43 AM Christoph Hellwig <hch@lst.de> wrote:
> On Mon, Oct 09, 2023 at 11:34:55AM +0200, Geert Uytterhoeven wrote:
> > The fix you are referring too is probably commit c1ec4b450ab729e3
> > ("soc: renesas: Make ARCH_R9A07G043 (riscv version) depend
> > on NONPORTABLE") in next-20231006 and later.  It is not yet upstream.
> >
> > Still, it merely makes ARCH_R9A07G043 (which selects DMA_GLOBAL_POOL)
> > depend on ARCH_R9A07G043.
> > RISCV_DMA_NONCOHERENT still selects DMA_DIRECT_REMAP, so both can end
> > up being enabled.
>
> Ok, so we need to actually fix this properly.  Lad, can you respin
> the fix to not select DMA_DIRECT_REMAP, for ARCH_R9A07G043?

ARCH_R9A07G043 does not select DMA_DIRECT_REMAP directly,
RISCV_DMA_NONCOHERENT does.  And there are other users of
RISCV_DMA_NONCOHERENT (RISCV_ISA_ZICBOM and ERRATA_THEAD_CMO).
Should the selection of DMA_DIRECT_REMAP moved to their users?

Note that the fix is already in soc/for-next, so we need coordination
with the soc people.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09  9:51           ` Geert Uytterhoeven
@ 2023-10-09 10:04             ` Robin Murphy
  2023-10-09 11:10               ` Geert Uytterhoeven
  0 siblings, 1 reply; 9+ messages in thread
From: Robin Murphy @ 2023-10-09 10:04 UTC (permalink / raw)
  To: Geert Uytterhoeven, Christoph Hellwig
  Cc: iommu, Marek Szyprowski, Wei Fang, Shenwei Wang, Clark Wang,
	NXP Linux Team, linux-m68k, netdev, Jim Quinlan, linux-riscv,
	Linux-Renesas, Lad, Prabhakar, arm-soc

On 2023-10-09 10:51, Geert Uytterhoeven wrote:
> Hi Christoph,
> 
> CC soc
> 
> On Mon, Oct 9, 2023 at 11:43 AM Christoph Hellwig <hch@lst.de> wrote:
>> On Mon, Oct 09, 2023 at 11:34:55AM +0200, Geert Uytterhoeven wrote:
>>> The fix you are referring too is probably commit c1ec4b450ab729e3
>>> ("soc: renesas: Make ARCH_R9A07G043 (riscv version) depend
>>> on NONPORTABLE") in next-20231006 and later.  It is not yet upstream.
>>>
>>> Still, it merely makes ARCH_R9A07G043 (which selects DMA_GLOBAL_POOL)
>>> depend on ARCH_R9A07G043.
>>> RISCV_DMA_NONCOHERENT still selects DMA_DIRECT_REMAP, so both can end
>>> up being enabled.
>>
>> Ok, so we need to actually fix this properly.  Lad, can you respin
>> the fix to not select DMA_DIRECT_REMAP, for ARCH_R9A07G043?
> 
> ARCH_R9A07G043 does not select DMA_DIRECT_REMAP directly,
> RISCV_DMA_NONCOHERENT does.  And there are other users of
> RISCV_DMA_NONCOHERENT (RISCV_ISA_ZICBOM and ERRATA_THEAD_CMO).
> Should the selection of DMA_DIRECT_REMAP moved to their users?

No, the selection of DMA_GLOBAL_POOL should be removed from 
RISV_DMA_NONCOHERENT and selected directly by ARCH_R9A07G043 (along with 
any of the other implied symbols it needs). Or if as suggested this 
physical-attribute-remap wackiness is due to show up on more platforms 
as well, maybe have a common config for that which selects 
DMA_GLOBAL_POOL plus the relevant cache maintenance extensions as an 
equivalent to RISCV_DMA_NONCOHERENT, and can itself explicitly depend on 
NONPORTABLE for clarity.

Thanks,
Robin.

> Note that the fix is already in soc/for-next, so we need coordination
> with the soc people.
> 
> Gr{oetje,eeting}s,
> 
>                          Geert
> 

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09 10:04             ` Robin Murphy
@ 2023-10-09 11:10               ` Geert Uytterhoeven
  2023-10-09 12:48                 ` Christoph Hellwig
  0 siblings, 1 reply; 9+ messages in thread
From: Geert Uytterhoeven @ 2023-10-09 11:10 UTC (permalink / raw)
  To: Robin Murphy
  Cc: Christoph Hellwig, iommu, Marek Szyprowski, Wei Fang,
	Shenwei Wang, Clark Wang, NXP Linux Team, linux-m68k, netdev,
	Jim Quinlan, linux-riscv, Linux-Renesas, Lad, Prabhakar, arm-soc

Hi Robin,

On Mon, Oct 9, 2023 at 12:04 PM Robin Murphy <robin.murphy@arm.com> wrote:
> On 2023-10-09 10:51, Geert Uytterhoeven wrote:
> > On Mon, Oct 9, 2023 at 11:43 AM Christoph Hellwig <hch@lst.de> wrote:
> >> On Mon, Oct 09, 2023 at 11:34:55AM +0200, Geert Uytterhoeven wrote:
> >>> The fix you are referring too is probably commit c1ec4b450ab729e3
> >>> ("soc: renesas: Make ARCH_R9A07G043 (riscv version) depend
> >>> on NONPORTABLE") in next-20231006 and later.  It is not yet upstream.
> >>>
> >>> Still, it merely makes ARCH_R9A07G043 (which selects DMA_GLOBAL_POOL)
> >>> depend on ARCH_R9A07G043.
> >>> RISCV_DMA_NONCOHERENT still selects DMA_DIRECT_REMAP, so both can end
> >>> up being enabled.
> >>
> >> Ok, so we need to actually fix this properly.  Lad, can you respin
> >> the fix to not select DMA_DIRECT_REMAP, for ARCH_R9A07G043?
> >
> > ARCH_R9A07G043 does not select DMA_DIRECT_REMAP directly,
> > RISCV_DMA_NONCOHERENT does.  And there are other users of
> > RISCV_DMA_NONCOHERENT (RISCV_ISA_ZICBOM and ERRATA_THEAD_CMO).
> > Should the selection of DMA_DIRECT_REMAP moved to their users?
>
> No, the selection of DMA_GLOBAL_POOL should be removed from
> RISV_DMA_NONCOHERENT and selected directly by ARCH_R9A07G043 (along with
> any of the other implied symbols it needs). Or if as suggested this
> physical-attribute-remap wackiness is due to show up on more platforms
> as well, maybe have a common config for that which selects
> DMA_GLOBAL_POOL plus the relevant cache maintenance extensions as an
> equivalent to RISCV_DMA_NONCOHERENT, and can itself explicitly depend on
> NONPORTABLE for clarity.

RISCV_DMA_NONCOHERENT does not select DMA_GLOBAL_POOL,
ARCH_R9A07G043 selects DMA_GLOBAL_POOL.
RISCV_DMA_NONCOHERENT does select DMA_DIRECT_REMAP if MMU.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09 11:10               ` Geert Uytterhoeven
@ 2023-10-09 12:48                 ` Christoph Hellwig
  2023-10-09 16:45                   ` Robin Murphy
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2023-10-09 12:48 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Robin Murphy, Christoph Hellwig, iommu, Marek Szyprowski,
	Wei Fang, Shenwei Wang, Clark Wang, NXP Linux Team, linux-m68k,
	netdev, Jim Quinlan, linux-riscv, Linux-Renesas, Lad, Prabhakar,
	arm-soc

On Mon, Oct 09, 2023 at 01:10:26PM +0200, Geert Uytterhoeven wrote:
> RISCV_DMA_NONCOHERENT does not select DMA_GLOBAL_POOL,
> ARCH_R9A07G043 selects DMA_GLOBAL_POOL.
> RISCV_DMA_NONCOHERENT does select DMA_DIRECT_REMAP if MMU.

Yeah, and we'll basically need to split RISCV_DMA_NONCOHERENT into
an option for each type of non-coherent support.  This is why we
should never have added support for any of the non-standard versions,
as it's turning into a giant mess.


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL
  2023-10-09 12:48                 ` Christoph Hellwig
@ 2023-10-09 16:45                   ` Robin Murphy
  0 siblings, 0 replies; 9+ messages in thread
From: Robin Murphy @ 2023-10-09 16:45 UTC (permalink / raw)
  To: Christoph Hellwig, Geert Uytterhoeven
  Cc: iommu, Marek Szyprowski, Wei Fang, Shenwei Wang, Clark Wang,
	NXP Linux Team, linux-m68k, netdev, Jim Quinlan, linux-riscv,
	Linux-Renesas, Lad, Prabhakar, arm-soc

On 09/10/2023 1:48 pm, Christoph Hellwig wrote:
> On Mon, Oct 09, 2023 at 01:10:26PM +0200, Geert Uytterhoeven wrote:
>> RISCV_DMA_NONCOHERENT does not select DMA_GLOBAL_POOL,
>> ARCH_R9A07G043 selects DMA_GLOBAL_POOL.
>> RISCV_DMA_NONCOHERENT does select DMA_DIRECT_REMAP if MMU.

Bleh, guess I should have known better than to trust my Monday morning 
memory without double-checking the code :)

> Yeah, and we'll basically need to split RISCV_DMA_NONCOHERENT into
> an option for each type of non-coherent support.  This is why we
> should never have added support for any of the non-standard versions,
> as it's turning into a giant mess.

Indeed the main point I was trying to get at is for ARCH_R9A07G043 (or 
rather possibly ERRATA_ANDES_CMO) to not select RISCV_DMA_NONCOHERENT in 
its current form, since that ending up selecting DMA_DIRECT_REMAP on a 
platform which can't support it is the thing that's most obviously wrong.

Thanks,
Robin.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-10-09 16:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20231009074121.219686-1-hch@lst.de>
     [not found] ` <20231009074121.219686-2-hch@lst.de>
2023-10-09  8:43   ` [PATCH 1/6] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL Geert Uytterhoeven
2023-10-09  9:16     ` Christoph Hellwig
2023-10-09  9:34       ` Geert Uytterhoeven
2023-10-09  9:43         ` Christoph Hellwig
2023-10-09  9:51           ` Geert Uytterhoeven
2023-10-09 10:04             ` Robin Murphy
2023-10-09 11:10               ` Geert Uytterhoeven
2023-10-09 12:48                 ` Christoph Hellwig
2023-10-09 16:45                   ` Robin Murphy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox