10.2. 配置电源管理状态

您可以将值写入 /dev/cpu_dma_latency 文件,以更改进程的最大响应时间(以微秒为单位)。您还可以在应用程序或脚本中引用此文件。

先决条件

  • 系统上的 root 权限。

流程

  1. 打开 /dev/cpu_dma_latency 文件。在 low-latency 操作期间,使文件描述符保持打开。
  2. 向文件写入 32 位数字。此数值代表了微秒内的最大响应时间。对于可能的响应时间,请使用 0。

示例

以下是使用此方法防止电源转换和维护低延迟的程序示例。

main()

static int pm_qos_fd = -1;

void start_low_latency(void)
{
	s32_t target = 0;

	if (pm_qos_fd >= 0)
		return;
	pm_qos_fd = open("/dev/cpu_dma_latency", O_RDWR);
	if (pm_qos_fd < 0) {
	   fprintf(stderr, "Failed to open PM QOS file: %s",
	           strerror(errno));
	   exit(errno);
	}
	write(pm_qos_fd, &target, sizeof(target));
}

void stop_low_latency(void)
{
	if (pm_qos_fd >= 0)
	   close(pm_qos_fd);
}