小编Ofi*_*esh的帖子

ixgbe:设置RX/TX队列数

我想设置 Intel 10G NIC 使用的 RX/TX 队列数。让我解释一下原因:

我在 Dell R720 系统上使用 X520 型 Intel 10G NIC。我正在使用 ixgbe 版本 3.6.7-k。Ubuntu 3.2.0-59 中的内核。

我正在机器上 24 个内核中的 4 个内核上运行我的网络应用程序。目前 NIC 正在使用流导向器,所以我有 24 个 TX 和 RX 队列,而大多数 IRQ 最终在运行应用程序的 4 个内核上运行。

但是,我看到一些 IRQ 正在其他 20 个队列上运行(这可能是因为流导向器对大约 20% 的流量进行采样,因此一些流量通过常规 RSS)。现在我不希望在其他 20 个内核上运行任何 IRQ,因为它们正在执行不同的任务,而这些任务会被运行的 IRQ 损坏。

我尝试仅将中断的关联设置为我使用的 4 个内核,但这不适用于 flow-director。我想更好的方法是仅使用 4 个 RX/TX 队列并将它们分配给专用内核。但是我找不到在 ixgbe 驱动程序中设置 RX/TX 队列数量的方法(尽管这对于我熟悉的其他 10G 驱动程序非常简单,例如 Broadcom 的 bnx2x)。

任何的想法?

networking nic affinity irq linux-device-driver

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

如何添加静态断言来检查变量是否是静态的?

我有一个仅适用于静态局部变量的宏(因为它使用内联汇编表示法来提取有关变量的数据)。我需要一种方法来强制宏的输入确实是静态局部变量:

正确的:

func f()
{
    static int x;
    my_macro(x);
}
Run Code Online (Sandbox Code Playgroud)

不正确:

func f()
{
    int x;
    my_macro(x);
}
Run Code Online (Sandbox Code Playgroud)

我使用 GCC 来处理 C(没有 C++)。

c static static-assert

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