---
title: 调大SWIOTLB Buffer空间
description: "机密虚拟机通过SWIOTLB Buffer共享内存与外设通信，该区域大小默认值为64MB，高负载IO通信场景下，可能出现SWIOTLB Buffer空间不足问题，在Guest OS中执行如下命令，若收到“swiotlb buffer is full”的错误日志回显，可确认出现此问题。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/cVMcont/kunpengtee_16_0067.html
sourcePath: /source/zh/kunpengcctrustzone/tee/cVMcont/kunpengtee_16_0067.html
indexId: b38900a07f00bce3168868a025b647ce3bd36b89e7c4d6380d48c71f9216dfa465
---
# 调大SWIOTLB Buffer空间

机密虚拟机通过SWIOTLB Buffer共享内存与外设通信，该区域大小默认值为64MB，高负载IO通信场景下，可能出现SWIOTLB Buffer空间不足问题，在Guest OS中执行如下命令，若收到“swiotlb buffer is full”的错误日志回显，可确认出现此问题。
```
dmesg | grep "swiotlb buffer is full"
```


如果确认上述问题存在，建议通过修改Guest OS swiotlb启动参数来调大SWIOTLB Buffer空间，方法如下：- QEMU命令行启动方式，swiotlb启动参数配置方法如下所示。

```
-append "swiotlb=x,force"
```


- libvirt xml启动方式，swiotlb启动参数配置方法如下所示。

```
<cmdline>swiotlb=x,force</cmdline>
```


  “x”为SWIOTLB Buffer的分片数，每个分片大小为2KB，对应的SWIOTLB Buffer大小为x×2KB。SWIOTLB Buffer默认64MB大小，对应分片数量为32768，调大x的数值即可调大SWIOTLB Buffer（需保证Buffer大小64MB对齐）。例如“x”为262144时对应SWIOTLB Buffer为512MB。 SWIOTLB Buffer占用非安全内存，若Host OS收到“Out of memory: Killed process xxx (qemu-kvm)”错误日志，可确认当前系统非安全内存不足，导致机密虚拟机退出。 SWIOTLB Buffer特性会占用机密虚拟机安全内存，当前机密虚拟机安全内存最小规格为1GB。
