系统调用:一次和多次,哪个更好?

System call: once and multiple, which is better?

本文关键字:更好 一次 系统调用      更新时间:2023-10-16

我有一个内核驱动程序来提供I2C的东西。

它通过 I2C 支持单个 R/W 或批处理(多个(R/W

如果是批处理,有什么好方法:

  1. 将批处理数据从用户传输到内核。然后从内核多次调用 I2C
  2. 从用户多次调用单个R/W。

哪种方式更好?

除非你采用一个微不足道的外内核,否则系统调用将涉及硬件中的上下文切换。这将比函数调用或复制一页数据花费更多的时间。

我假设你说的不是兆字节的数据,而只是几个字节。最好打包和解开它们,绝对减少系统调用的数量。