小编sev*_*vko的帖子

完全消除现代 Linux >=5.0 中的计时器滴答声

我正在尝试完全消除安静机器上一组内核上的计时器中断。这些是这些内核定期处理的唯一中断。我已经isolcpu对它们进行了处理,并使用 构建了一个内核CONFIG_NO_HZ_FULL,实际上现在它们大约每秒只接收一次计时器中断。是否可以删除这个残留的 1Hz 定时器中断?

内核文档建议在某些时候偶尔需要进行勾选:

一些进程处理操作仍然需要偶尔的调度时钟滴答。这些操作包括计算CPU负载、维护sched平均值、计算CFS实体vruntime、计算avenrun以及进行负载均衡。目前,它们是通过每秒左右的调度时钟滴答来容纳的。正在进行的工作将消除对这些不频繁的调度时钟滴答的需要。

这个内核补丁“删除 1 Hz 滴答代码”表明它在更高版本的内核中已被删除:

现在 1Hz 滴答已卸载到工作队列,我们​​可以安全地删除用于在本地处理它的残留代码。

我构建了 5.3.0 内核,希望能够删除这个残留的刻度线,但它仍然存在。

我还需要设置其他启动参数吗?最新版本的内核中是否真的删除了剩余计时器滴答声?(这个问题有一些相关信息)

linux real-time timer interrupt linux-kernel

5
推荐指数
1
解决办法
2313
查看次数

Python 数组中 1 和 0 的组合

我想在二维数组中组合 1 和 0,如下所示:

[[ 1, 1, 1, 1, 0, 0, 0, 0 ],
 [ 1, 1, 1, 0, 1, 0, 0, 0 ],
 [ 1, 1, 1, 0, 0, 1, 0, 0 ],
 [ 1, 1, 1, 0, 0, 0, 1, 0 ],
 [ 1, 1, 1, 0, 0, 0, 0, 1 ],
 .
 .
 .
]
Run Code Online (Sandbox Code Playgroud)

这意味着四个 1 和四个 0 的组合。我查看了itertools模块的permutations()and combinations(),但找不到任何合适的函数来执行这种组合。

python combinations python-itertools python-2.7

3
推荐指数
1
解决办法
1770
查看次数

指针显示不同于预期的值

我希望以下程序的输出为5,但编译器显示20.有人可以解释一下原因吗?

 #include <stdio.h>
 int a=5;
 change1(int *p);

int main(void)
{
  int x=20,*ptr=&x;
  change1(ptr);
  printf("%d ",*ptr);
  return 0;
}
change1(int *p)
{
  p=&a;
}
Run Code Online (Sandbox Code Playgroud)

c pointers function pass-by-reference

1
推荐指数
1
解决办法
61
查看次数

在C中使用void*指针的缺点

void *在C中使用有许多缺点(与内存相关,类型相关,效率明智......).尽管如此,我们还是使用它们来提供灵活性.

列出使用的缺点/缺点void *(以及C中的首选解决方案 - 如果可能的话).

编辑: 请通过以下链接:http: //attractivechaos.wordpress.com/2008/10/02/using-void-in-generic-c-programming-may-be-inefficient/

c void-pointers

-2
推荐指数
2
解决办法
1万
查看次数