On Thu, 12 Sep 2024 11:56:21 +0200, Christoph Hellwig wrote:
On Sat, Sep 07, 2024 at 11:38:50AM +0100, Andrew Cooper wrote:
Individual subsystems ought not to know or care about XENPV; it's a layering violation.
Agreed.
If the main APIs don't behave properly, then it probably means we've got a bug at a lower level (e.g. Xen SWIOTLB is a constant source of fun) which is probably affecting other subsystems too.
I think we need to re-analyse the original bug. Right now, the behaviour resulting from 53466ebde is worse than what it was trying to fix.
53466ebde looks bogus to me, and the commit message doesn't even try to explain what bad behavior it works around. I'd also like to state once again that if you think something is broken about dma allocation or mapping helpers please Cc me and the iommu list.
Most of the time it's actually the drivers doing something invalid, but sometimes it is a core dma layer bug or something that needs a proper API.
Also while looking at the above commit I noticed the broken fallback code in snd_dma_noncontig_alloc - get_dma_ops is not for driver use, and starting with the code queued up for 6.12 will also return NULL when using dma-iommu for example.
Yes, all those are really ugly hacks and have been already removed for 6.12. Let's hope everything works as expected with it.
thanks,
Takashi