Articles of smp

我怎么知道一个进程正在运行的核心?

我目前正在开发一个关于在linux环境下将进程设置为一个核心的项目。 我使用sched_setaffinity来完成这项工作,我想知道是否有一些由linux提供的函数来获取进程运行的核心。 我使用顶级命令,并发现它可以得到这个信息使用j选项。 所以我相信有一些方法可以在用户空间获得这个信息。

Linux内核:自旋锁SMP:为​​什么在spin_lock_irq SMP版本中有一个preempt_disable()?

linux内核的原始代码是: static inline void __raw_spin_lock_irq(raw_spinlock_t *lock) { local_irq_disable(); preempt_disable(); spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock); } 我认为没有执行path可以抢占本地IRQ禁用后的当前path。 由于所有常见的硬中断禁止,不应该发生softirq,也没有打勾时间表轮。 我认为目前的道路是安全的。 那么为什么有一个preempt_disable()? 谢谢。

Linux找出超线程的核心ID

我今天上午花在了解如何确定哪个处理器ID是超线程核心,但没有运气。 我希望find这些信息,并使用set_affinity()将进程绑定到超线程线程或非超线程线程来分析其性能。

percpu指针如何在Linux内核中实现?

在多处理器上,每个核心可以有自己的variables。 我以为它们是不同地址的不同variables,尽pipe它们处于相同的过程中并且具有相同的名称。 但是我想知道,内核是如何实现这个的? 它是否分配一块内存来存放所有percpu指针,并且每当它将指针redirect到某个地址时,都会发生移位或什么?

如何从用户空间应用程序(Linux,C)中获取CPU内核号?

据推测,有一个库或简单的asm blob,可以得到我正在执行的当前CPU的数量。

CPU亲和力

是否有一个progamatic方法来设置Linux操作系统的c / c + +中的进程的CPU亲和力。