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... Thanks, Petr T