ANDROID: GKI: Enable CONFIG_SWIOTLB_DYNAMIC

Newer kernels use SWIOTLB bounce buffers for DMA transactions involving
kmalloc'ed buffers that are sub-cacheline aligned. This allows the
minimum alignment for kmalloc'ed buffers to be reduced beyond the
cacheline size, as long as SWIOTLB is enabled.

Currently, a single SWIOTLB buffer is allocated at boot and is used for
bounce buffering for the lifetime of the device. This means that the
worse case SWIOTLB usage must be known and allocated up-front at boot,
which makes enabling SWIOTLB cumbersome.

Instead, CONFIG_SWIOTLB_DYNAMIC can be used to dynamically allocate
SWIOTLB buffers for bounce buffering as needed. This allows the kernel
to boot with a small sized SWIOTLB buffer, and continue to function
by allocating memory for bounce buffers as needed.

Bug: 296282294
Change-Id: If19ae55ee302f1bf97d11d8bcd0d72987939b79a
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
This commit is contained in:
Isaac J. Manjarres
2023-10-13 09:09:47 -07:00
committed by Isaac Manjarres
parent 4a5826e549
commit f0b67aae69
3 changed files with 3 additions and 0 deletions
+1
View File
@@ -680,6 +680,7 @@ CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_TRACE_MMIO_ACCESS=y
CONFIG_CRC_CCITT=y
CONFIG_XZ_DEC=y
CONFIG_SWIOTLB_DYNAMIC=y
CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y
CONFIG_PRINTK_CALLER=y
+1
View File
@@ -621,6 +621,7 @@ CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRC_CCITT=y
CONFIG_CRC8=y
CONFIG_XZ_DEC=y
CONFIG_SWIOTLB_DYNAMIC=y
CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y
CONFIG_PRINTK_CALLER=y
+1
View File
@@ -632,6 +632,7 @@ CONFIG_CRYPTO_SHA512_SSSE3=y
CONFIG_CRC_CCITT=y
CONFIG_CRC8=y
CONFIG_XZ_DEC=y
CONFIG_SWIOTLB_DYNAMIC=y
CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y
CONFIG_DYNAMIC_DEBUG_CORE=y