Для некоторого взаимодействия со строящимся устройством PCI нам бы хотелось создать большие непрерывные фрагменты памяти, к которым плата может получить доступ. В настоящее время самый большой объем памяти, который мне удалось выделить, составляет 4 мегабайта. Мне интересно, есть ли какие-либо методы для создания более крупных регионов.
Я знаю, что могу использовать опцию загрузки mem=
, чтобы сделать это, но по причинам нума, я бы предпочел не идти по этому пути. Если, с другой стороны, кто-то знает способ сделать это, но распределит его по узлам numa, это будет хорошо.
Как я сказал вначале, я ограничен 4 мегабайтами в настоящее время. Распределение в настоящее время выполняется __alloc_pages
, что ограничено MAX_ORDER
. MAX_ORDER
- это константа времени компиляции, и я также обеспокоен тем, что ее редактирование может иметь последствия в других местах.
Спасибо.