Subject: Re: [PATCH 4/6] arm64/io: Provide a WC friendly __iowriteXX_copy()

From: Jason Gunthorpe <[email-masked]>
Date: Fri, 23 Feb 2024 13:05:34 -0400

On Fri, Feb 23, 2024 at 05:35:42PM +0100, Niklas Schnelle wrote:
> On Fri, 2024-02-23 at 08:58 -0400, Jason Gunthorpe wrote:
> > On Fri, Feb 23, 2024 at 12:38:18PM +0100, Niklas Schnelle wrote:
> > > > Although I doubt that generating long TLP from byte writes is
> > > > really necessary.
> > > 
> > > I might have gotten confused but I think these are not byte writes.
> > > Remember that the count is in terms of the number of bits sized
> > > quantities to copy so "count == 1" is 4/8 bytes here.
> > 
> > Right.
> > 
> > There seem to be two callers of this API in the kernel, one is calling
> > with a constant size and wants a large TLP
> > 
> > Another seems to want memcpy_to_io with a guarenteed 32/64 bit store.
> 
> I don't really understand how that works together with the order not
> being guaranteed. Do they use normal ioremap() and then require 32/64
> bit TLPs and don't care about the order?

Yes, I assume so. From my impression the cases looked like they were
copying to MMIO memory so order probably doesn't matter.

Jason