Сейчас посмотрим. По идее должны быть минимальные изменения.
Этот процессор должен быть раза в два шустрее. У него честных 2 ядра и каждое может вытягивать 2 потока по гипертрейдингу. Кроме этого кеш L2 действительно в сумме 1024к по 512к на каждое ядро. Размеры кеша L1 на каждое ядро аналогичны n270. Инструкции совпадают с процессором n270.
Основное отличие это два ядра вместо одного.
В make.conf вместо MAKEOPTS="-j3" пишем MAKEOPTS="-j5"
Ежели ядро компилируем ручным способом, то из каталога /usr/src/linux применяем команду
make -j5 && make modules_install install && module-rebuild -X rebuild
Что касательно выставления размера кеша… Тут более сложная головоломка, так как нигде не встречал описание какая стратегия применяется при наличие более одного ядра… То ли нужно выставлять 512к на каждое, то ли 1024к общие на все. Стоит провести эксперимент.
в make.conf сначала устанавливаем, к примеру:
*CFLAGS="-O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all"
CXXFLAGS="${CFLAGS}"*
и компилируем emerge nbench, затем запускаем nbench и смотрим какие результаты теста он покажет.
После этого в make.conf меняем параметры на:
*CFLAGS="-O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=1024 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all"
CXXFLAGS="${CFLAGS}"*
Повторяем emerge nbench и запускаем на тест.
Соответственно выбираем тот вариант кеша, в котором результаты тестирования выше. По идее должно сработать. Вместо nbench можно использовать другие программы тестирования производительности. Nbench показывает производительность 1 ядра. В Вашем случае одного из 4-х виртуальных.
На текущий момент я использую параметры компиляции для программ:
CFLAGS="-O3 -march=native -mtune=native --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size=512 -msahf -mcx16 -mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=both -fmerge-all-constants -fexcess-precision=fast -fomit-frame-pointer -fno-align-functions -fno-align-loops -fno-align-labels -fno-align-jumps --param max-unroll-times=4 --param max-unrolled-insns=72 --param max-average-unrolled-insns=216 -funroll-all-loops -fno-gcse -g0 -Wno-all -pipe"
В случае, если какая-нибудь специфическая программа не захочет компилироваться, то просто выкидываем разворот циклов: –param max-unroll-times=4 --param max-unrolled-insns=72 --param max-average-unrolled-insns=216 -funroll-all-loops и компилируем ее. Пока сталкивался с этим только в отдельных версиях libreoffice. Причин не знаю. Однако в некоторых программах даже небольшой разворот циклов очень прилично ускоряет программы на атоме и полностью отказываться от него не желательно.
Для ядра аналогично в /usr/src/linux/Makefile комментируем строки
*#HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
#HOSTCXXFLAGS = -O2*
и устанавливаем (только подставьте нужный размер кеша L2)
HOSTCFLAGS = -O3 -march=native -mtune=native --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size=512 -msahf -mcx16 -mfpmath=387 -fmerge-all-constants -fexcess-precision=fast -fomit-frame-pointer -fno-align-functions -fno-align-loops -fno-align-labels -fno-align-jumps --param max-unroll-times=4 --param max-unrolled-insns=72 --param max-average-unrolled-insns=216 -funroll-all-loops -fno-gcse -g0 -Wno-all -pipe
HOSTCXXFLAGS = $(HOSTCFLAGS)
ищем параметры
CFLAGS_MODULE и CFLAGS_KERNEL и также выставляем
*
CFLAGS_MODULE = $(HOSTCFLAGS)
CFLAGS_KERNEL = $(HOSTCFLAGS)*
После этого ядро будет компилироваться максимально приближенно для процессоров atom. Полный разворот циклов для ядра сделать не получится, так как даже если снять проверку ограничения на размер ядра, но оно все равно не загрузится. Что там нужно скорректировать еще пока не разбирался.