Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Отключение/Подключение AP ядер процессора


Автор: Relkin 17.6.2010, 17:57
Необходимо сначала отключить все ядра процессора, кроме загрузочного, после, соответственно, включить.

Подозреваю, что это можно сделать функциями:
http://lxr.linux.no/#linux+v2.6.34/include/linux/cpu.h#L146
Код

int disable_nonboot_cpus(void);
void enable_nonboot_cpus(void);


http://lxr.linux.no/#linux+v2.6.34/include/linux/cpu.h#L118
Код

int cpu_down(unsigned int cpu);
int cpu_up(unsigned int cpu);


Последнии используются при записи 0/1 в /sys/devices/system/cpu/cpu#/online.

Проблема заключается в том, что при попытке скомпилировать следующий тестовый модуль, появляются warning' и, из-за которых я не могу его загрузить в ядро:
Код

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/cpu.h>

static int __init
init( void )
{
        return disable_nonboot_cpus();
}

static void __exit
uninit( void )
{
        enable_nonboot_cpus();
}

module_init( init );
module_exit( uninit );

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("TEST");


Код

make -C /lib/modules/2.6.33.5-124.relkin.fc13.x86_64/build M=/home/relkin/modules modules
make[1]: Entering directory `/usr/src/kernels/2.6.33.5-124.relkin.fc13.x86_64'
  CC [M]  /home/relkin/modules/test.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "disable_nonboot_cpus" [/home/relkin/modules/test.ko] undefined!
WARNING: "enable_nonboot_cpus" [/home/relkin/modules/test.ko] undefined!
  CC      /home/relkin/modules/test.mod.o
  LD [M]  /home/relkin/modules/test.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.33.5-124.relkin.fc13.x86_64'


Ядро собрано в нужной конфигурации.
Если использовать отдельно функцию cpu_down, то всё работает, но если в модуле есть cpu_up, то опять появляется warning.
Мне кажется, что дело может быть в объявлениях __cpuinit или __ref, но точно я не знаю, т. к. не знаю зачем они нужны.

P.S.
Проблема решена. Эти функции не экспортируются.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)