2016-12-22 12 views
0

Возможно ли, что производительность copy_from_user() и copy_to_user() действительно ухудшится, когда процесс занят чем-то занятым или ядро ​​загружено тяжело? Как производительность для copy_from/to_user в обычных обстоятельствах, несколько микросекунд для копирования нескольких сотен байтов? Возможно ли, что это займет несколько миллисекунд, когда система занята?Производительность copy_from_user/copy_to_user, когда процесс и ядро ​​заняты

Если вы сравниваете copy_from_user с memcpy, насколько быстрее будет memcpy, так как у него нет проверки работоспособности и блокировок?

спасибо!

ответ

1

Вы имеете в виду поисковые запросы, а не блокировки?

Упомянутые примитивы не делают ничего, кроме memcpy, и вы будете измерять любую «экономию», переключаясь на простое memcpy (которое вам не следует делать), вы уже делаете что-то неправильно.

copy_to_user/все в общем случае не делает ничего, кроме memcpy. В одном случае, когда они становятся дорогими, возникает ошибка страницы при доступе к буферам пользовательской среды. Но если этот примитив, возможно, возьмет один, memcpy также должен будет это сделать - данные не находятся в ram после всех (или это должно быть не разделено, что угодно).

Tl, д-р ваш вопрос очень тусклый и переключение на тетсру не может помочь то, что проблема у вас есть

Что и как вы измеряете, чтобы спросить об этих примитивов?