Re: [PATCH v2 0/7] Allow dynamic allocation of software IO TLB bounce buffers

From: Petr Tesařík
Date: Tue Jul 11 2023 - 05:03:39 EST


On Mon, 10 Jul 2023 23:23:45 +0100
Mike Lothian <mike@xxxxxxxxxxxxxx> wrote:

> Hi
>
> I was hoping this might land for 6.5-rc1, is there a new version that
> might apply against 6.5?

Yes, there is a v3, which is a complete rewrite based on feedback from
various people on this mailing list:

https://lore.kernel.org/linux-iommu/cover.1687859323.git.petr.tesarik.ext@xxxxxxxxxx/T/

Petr T

> Cheers
>
> Mike
>
> On Tue, 9 May 2023 at 08:32, Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Tue, May 09, 2023 at 09:16:35AM +0200, Petr Tesařík wrote:
> > > On Wed, 26 Apr 2023 14:44:39 +0200
> > > Petr Tesařík <petr@xxxxxxxxxxx> wrote:
> > >
> > > > Hi Greg,
> > > >
> > > > On Wed, 26 Apr 2023 14:26:36 +0200
> > > > Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > > >
> > > > > On Wed, Apr 26, 2023 at 02:15:20PM +0200, Petr Tesařík wrote:
> > > > > > Hi,
> > > > > >
> > > > > > On Wed, 19 Apr 2023 12:03:52 +0200
> > > > > > Petr Tesarik <petrtesarik@xxxxxxxxxxxxxxx> wrote:
> > > > > >
> > > > > > > From: Petr Tesarik <petr.tesarik.ext@xxxxxxxxxx>
> > > > > > >
> > > > > > > The goal of my work is to provide more flexibility in the sizing of
> > > > > > > SWIOTLB.
> > > > > > >
> > > > > > > The software IO TLB was designed with these assumptions:
> > > > > > >
> > > > > > > 1. It would not be used much, especially on 64-bit systems.
> > > > > > > 2. A small fixed memory area (64 MiB by default) is sufficient to
> > > > > > > handle the few cases which require a bounce buffer.
> > > > > > > 3. 64 MiB is little enough that it has no impact on the rest of the
> > > > > > > system.
> > > > > > >
> > > > > > > First, if SEV is active, all DMA must be done through shared
> > > > > > > unencrypted pages, and SWIOTLB is used to make this happen without
> > > > > > > changing device drivers. The software IO TLB size is increased to
> > > > > > > 6% of total memory in sev_setup_arch(), but that is more of an
> > > > > > > approximation. The actual requirements may vary depending on the
> > > > > > > amount of I/O and which drivers are used. These factors may not be
> > > > > > > know at boot time, i.e. when SWIOTLB is allocated.
> > > > > > >
> > > > > > > Second, other colleagues have noticed that they can reliably get
> > > > > > > rid of occasional OOM kills on an Arm embedded device by reducing
> > > > > > > the SWIOTLB size. This can be achieved with a kernel parameter, but
> > > > > > > determining the right value puts additional burden on pre-release
> > > > > > > testing, which could be avoided if SWIOTLB is allocated small and
> > > > > > > grows only when necessary.
> > > > > >
> > > > > > Now that merging into 6.4 has begun, what about this patch series? I'm
> > > > > > eager to get some feedback (positive or negative) and respin the next
> > > > > > version.
> > > > >
> > > > > It's the merge window, we can't add new things that haven't been in
> > > > > linux-next already.
> > > >
> > > > This is understood. I'm not asking for immediate inclusion.
> > > >
> > > > > Please resubmit it after -rc1 is out.
> > > >
> > > > If you can believe that rebasing to -rc1 will be enough, then I will
> > > > also try to believe I'm lucky. ;-)
> > > >
> > > > The kind of feedback I really want to get is e.g. about the extra
> > > > per-device DMA-specific fields. If they cannot be added to struct
> > > > device, then I'd rather start discussing an interim solution, because
> > > > getting all existing DMA fields out of that struct will take a lot of
> > > > time...
> > >
> > > All right, 6.4-rc1 is out now. The patch series still applies cleanly.
> > >
> > > Any comments what must be changed (if anything) to get it in?
> [...]