不久,我们将收到一个2 CPU主板与2四核Xeons在上面.我们还有一个带有Linux内核的GNU系统(预配置)。目前,这个Linux运行在一个多核1 CPU (Quad )上.
我的问题是,如果我将禁用BIOS中的一个Xeons,当前的Linux是否只运行在一个CPU上?我需要更改Linux配置设置吗?
以下是重要的配置设置:
CONFIG_NUMA=y
CONFIG_K8_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NUMA_EMU=y
CONFIG_ACPI_NUMA=y
# CONFIG_X86_VSMP is not set
CONFIG_SMP=
对于NUMA机器,Linux提供了系统调用,允许进程为内存分配定义其首选的NUMA节点。
是否有类似的函数允许更改另一个正在运行的进程的内存策略?所以,类似于这个set_mempolicy(pid, ...),pid对应于一个不同的运行过程?
注意,另一个进程(我想更改它的内存策略)已经在运行,我无法控制它。所以这样的解决方案:
set_mempolicy(...);
fork(); // now new process has the same memory policy
不是我要找的。
当我运行make world命令时,我得到了这个错误。有人知道这是什么原因吗?我想这和我的gcc版本有关,但是我不能在debian中升级它。我的gcc版本是4.7.2
numa.c: In function ‘acpi_parse_slit’:
numa.c:99:6: error: variable ‘localities’ set but not used [-Werror=unused-but-set- variable]
numa.c: In function ‘acpi_parse_srat’:
numa.c:152:26: error: variable ‘srat’ set
我在下面写的代码使用GFORTRAN编译得很好,但是当我运行可执行文件时,终端窗口返回... Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x7FC1D0F93697
#1 0x7FC1D0F93CDE
#2 0x7FC1D048E3EF
#3 0x7FC1D05AF392
#4 0x7FC1D1058360
#5 0x400CBA in MAIN__ at TRANS2DATUM.f90:?
Segmen