问题标签 [smp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1711 浏览

linux - SMP 实施后的内核恐慌 - 试图杀死 init

我正在为 Marvell PXA2128 ARM SoC 在 Linux 内核中实现 SMP 支持。我使用 Linus Torvald 内核作为基础内核。内核版本为 3.5。我在 Linux 内核中添加了 SMP 支持,我可以使用第二个内核启动,但有时我的内核崩溃并显示“尝试终止 Init”消息,即 initramfs 的 init 进程以某种方式死亡,不知道为什么。我以为第二核的L1缓存损坏了,所以在第二核进入Linux内核执行之前,我将第二核的L1缓存无效。内核的崩溃日志就像

现在当我的内核成功启动时, cat /proc/interrupts 的输出就像

请给我一个线索,我在 SMP 实施中缺少什么重要的东西。

0 投票
2 回答
1648 浏览

c - 当我们在 linux 中为进程及其线程设置不同的处理器亲和性时会发生什么?

当我们在 linux 中为进程及其线程设置不同的处理器亲和性时会发生什么。

我正在尝试启动一个与内核(比如 1)关联的进程,该内核有两个线程,其中一个线程需要在另一个内核上运行(比如 0)

当我尝试将亲和力设置为不同的线程以处理程序时被执行。但我想知道这种方法的隐藏影响。

0 投票
1 回答
128 浏览

erlang - Erlang:VPS 托管下的 SMP?

在典型的 VPS 托管情况下,Erlang 通常可以使用(跨调度)多核(SMP)吗?我对虚拟主机或 xen 或其他任何东西知之甚少,但我的理解是 erlang 将存在于“虚拟机实例”中(与许多其他实例一起),我猜不会跨多个内核进行调度。 ..除非虚拟机实例有多个核心。但如果是这样,那些可能是虚拟多核,对吧?所以除非他们映射到真正的核心......

这如何与 erlang 一起使用,或者实际上,它是否在 VPS 托管环境中与 erlang 一起使用?

0 投票
1 回答
511 浏览

multithreading - 多核系统 UMA NUMA 的进程地址空间

当涉及多核处理器架构时,我对进程地址空间的概念有疑问,因为两个处理器共享一个公共物理地址空间(我猜这就是他们所说的 UMA)。

因此,如果一个 32 位处理器可以访问 4GB 的地址范围,并且任何 32 位进程在其执行期间都拥有这个空间,那么如何在两个内核上运行两个不同的进程......因为我认为两个处理器都有共同点处理器地址空间。将处理器地址空间拆分为进程数。在线程的情况下,单个线程可以在单个处理器上运行,因为它们位于相同的地址空间中,但是在多个进程的情况下呢。

NUMA 会是什么情况。

0 投票
2 回答
5590 浏览

linux - linux中的smp亲和力设置

我想在我的虚拟机系统上对中断(irq 75)进行负载平衡。它有 64 位 redhat 5.8,内核 2.6.18。虚拟机中有 8 个 CPU。

当我运行时:

我看到 IRQ 75 仅用于 CPU0。然后我更改了 irq 75 的 smp_affinity。

但我再次看到 irq 75 的中断只使用 CPU0。

CPU 之间没有 irq 平衡。我想将所有中断(irq 75)分发到所有 CPU,我做错了吗?

0 投票
1 回答
636 浏览

linux - 在linux中启动cpus时使用pen_release背后的基本概念是什么

在 linux 内核 smp 中,pen_release 标识符用于启动辅助 cpu,我也发现它也在其他地方使用。

我已经在 sysdump 中检查了它的值,还尝试使用 lauterbach 设置来理解它,但无法获得使用它的基本概念。

据我所知,它是一种锁,用于将辅助 cpu 置于循环中,直到我们从主 cpu 释放笔。我试图通过各种方法确认这种理解,但没有得到太多。

谁能详细解释一下?

0 投票
1 回答
469 浏览

linux - 在启动辅助 cpu 时通过哪个指令触发辅助内核

辅助 CPU 的引导由主核心启动。在主cpu上完成一些工作,在辅助cpu上完成一些工作以完成cpu_up的热插拔操作。

我试图找到在主 cpu 上执行的确切指令,触发辅助 cpu 启动,并且进一步检查 pen_release 变量的值。

您能否解释一下启动辅助 cpu 的过程,以及 pen_release global 相对于启用了 SMP 的 Linux 内核的使用。

0 投票
1 回答
2608 浏览

bare-metal - How to start additional cores on the Raspberry Pi 2 under bare-metal?

The question is rather broad but I couldn't even find a starting point in the ARMv7 ARM, MPCore TRM, GIC architecture manual, ... So please excuse the vagueness.

I have a simple bare-metal kernel for the Raspberry Pi 2 that initializes the activity LED, UART0, MMU and caches and everything works. I can blink, I can output text, I can map physical pages to virtual addresses and access them. So far so good.

Now I want to start up the additional cores and there I've run into a vacuum. There aren't yet examples of how to do this short of the linux kernel, which is rather complex because it supports so many boards. And looking at the specs I can't seem to find any good starting point. So instead of tapsing around in the dark I came here. :)

So has anyone else looked into this and figured out what state the cores are on boot and reset? What boot protocol / mechanism is used to start aditional cores? The one info I have found is that this is rather SOC specific so please no examples how to do this on a Cortex-A9 or something else that isn't a RPi 2.

0 投票
1 回答
189 浏览

linux-kernel - 为什么在连接 ISR 之前全局禁用中断?

我正在通过以下驱动程序的探测功能

在探测功能中,有人评论说

但是我认为对于其他所有设备驱动程序来说都是正确的,那么为什么在这个特定的网络驱动程序的情况下呢?

为什么在连接 ISR 之前全局禁用中断?

0 投票
1 回答
445 浏览

linux-kernel - 发送重新安排中断的性能事件?

当一个进程唤醒同一个内核上的另一个进程时,会使用两个 PID 生成一个 sched:sched_wakeup 事件。这对于查找进程之间的关系非常有用。

当一个进程唤醒另一个内核上的另一个进程时,第二个内核会在任何一个不幸捕获 IPI 的进程上生成 irq_vectors:reschedule_entry 事件,然后是来自该受害进程的 sched:sched_wakeup 事件。

我找不到的是第一个核心上唤醒的原始过程。发送重新安排 IPI 的那个。

是否有与发送重新安排中断相关的任何事件,或与过程中的任何其他事件相关联?

(如果不明显,我使用的是“perf record”,而不是“perf stat”)