当进程忙于执行某些操作或内核负载过重时,copy_from_user()和copy_to_user()的性能是否真的会变坏? copy_from / to_user在常规情况下的性能如何,复制几百个字节需要几微秒?系统繁忙时,是否可能需要几毫秒才能完成?
如果将copy_from_user与memcpy进行比较,memcpy会有多快,因为它没有完整性检查和锁定?
谢谢!
答案 0 :(得分:1)
你的意思是查找,而不是锁定?
所说的原语并不比memcpy做得多,而且你要通过切换到memcpy来衡量任何“节省”(你不应该这样做),你已经做错了。
copy_to_user /在普通情况下的任何事情都不会比memcpy做更多的事情。最终成本高昂的一种情况是在访问用户空间缓冲区时出现页面错误。但是如果这个原语恰好采用了一个,那么memcpy也必须这样做 - 毕竟数据不在ram中(或者它必须是非共享的,无论如何)。Tl; Dr你的问题非常可疑,切换到memcpy不可能帮助你解决任何问题
你对这些原语的询问是什么以及如何衡量?