Я шел через статью о реализации ядра Linux радикс дерева, ссылка статьи упоминается ниже:Почему в Linux ядре radix_tree_preload возвращается с прерываниями отключенных
http://lwn.net/Articles/175432/
В этой статье упоминается, что radix_tree_preload выделяет достаточно так что последующая вставка в дереве не сработает. Хотя он выделяет структуры на основе каждого процессора, и, следовательно, функция возвращается с отключенным отключением. Ответственность вызывающего абонента заключается в том, чтобы вызвать radix_tree_preload_end, чтобы обеспечить возможность преемственности.
Мой вопрос:
1) Почему radix_tree_preload выделяет структуру на основе каждого процессора?
2) Когда пользователь должен вызывать radix_tree_preload_end? Это сразу после radix_tree_insert?
3) Не влияет ли это на производительность, поскольку деревья оснований используются для операций кеша страниц, и, следовательно, любая вставка приведет к отключению preemption? Поправьте меня, если мое понимание ошибочно.
Спасибо за ответ. – pastum