NVIDIA пока не может решить проблему с совместимостью с новыми ядрами Linux
Закрытый драйвер NVIDIA для Linux пытается гарантировать адекватное поведение видеоадаптера путём проверки того, что память, выделенная ядром для драйвера, может быть адресована установленным в систему GPU. В противном случае, отсутствие проверки может привести к тому, что GPU обрежет адреса или будет пытаться обращаться к неверным адресам в системной памяти. Обычно драйвер NVIDIA проверял это, вычисляя самый высокий адрес в системной памяти, доступный для адресации, используя число фреймов страниц, которое можно получить с помощью переменной ядра num_physpages. Если этот адрес превышает возможности GPU, то драйвер переходит в режим 32-битного DMA, чтобы обеспечить стабильность системы.
В ядрах Linux 3.11 и выше, доступ к максимальному числу фреймов страниц был удалён и заменён на get_num_physpages(), который рапортует полное число физических страниц памяти. Хотя максимальное число фреймов страниц и объём памяти в системе связаны, это совершенно разные значения, и их нельзя заменять. Информация об объёме памяти недостаточна, чтобы идентифицировать всю память, которая может быть адресована GPU.
NVIDIA может предложить ограниченную поддержку 3.11 и более новых ядер, используя get_num_physpages() и переходя в 32-битный режим DMA более агрессивно, и этот подход будет использован в настоящее время. Это временная мера, которая должна быть достаточна для большинства пользователей NVIDIA, однако системы с очень большим количеством оперативной памяти (128GB и выше) могут столкнуться с отрицательными эффектами, поэтому им рекомендуется использовать ядро 3.10 или более ранние. Более правильный и устойчивый подход для решения этой проблемы сейчас находится в разработке, но мы не сможем предложить его в ближайшем будущем.
Выходящие в будущем драйверы будут включать новое правильное исправление, а документация будет обновлена для более подробного объяснения, касающегося адресации системной памяти видеоадаптером, пока же вы можете воспользоваться официальными патчами, которые добавляют поддержку Linux 3.11 и выше. Их можно применить с помощью команды инсталлятора --apply-patch.
Источник: http://www.opennet.ru/opennews/art.shtml?num=38316
|
0 | Tweet | Нравится |
|