This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PROCESSOR-SDK-AM69:如何设置 GPIO 中断的 CPU 关联性。

Guru**** 2482225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1447974/processor-sdk-am69-how-to-set-cpu-affinity-of-gpio-interrupt

器件型号:PROCESSOR-SDK-AM69

工具与软件:

大家好、我目前使用的是 Linux SDK (10.0版)。

这是我的器件树。 它使用 MAIN_GPIO0作为中断父级。

uio1: uio1 {
	compatible = "uio-gpio";
	status = "okay";
	interrupt-parent = <&main_gpio0>;
	interrupts = <3 IRQ_TYPE_EDGE_RISING>;
};

当我查看/proc/interrupts 时、它会显示出来并且运行良好。

为了获得性能、我需要对中断应用 CPU 关联性。  
这些是我尝试过的方法、但都失败了。

1.通过 sysfs 设置 CPU 关联。

2.将 IRQ_SET_Affinity()添加到我正在使用的驱动程序中。

ret = irq_set_affinity(irq_data->irq, cpumask_of(5));
if (ret < 0 ) {
    dev_err(&pdev->dev, "IRQ affinity set failed, %d\n", ret);
}

所以,我的问题是:我 s 完全如此  设置 GPIO 中断的 CPU 关联性?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Minsoo、

    您应该能够设置中断路由器要路由到的 GIC 中断的 SMP_Affinity。

    您可以在 TRM 的附录电子表格中查看 GPIO 中断路由器将路由到的 GIC 中断号: https://www.ti.com/lit/zip/spruj52 

    此致!
    Jared

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jared、您好!

    我发现 GIC 上 GPIO0的中断号是145,146,147,148、149、 150,151,152。

    我在/sys/kernel/irq/145/.上检查了其中一个 IRQ sysfs
    但未找到 SMP_Affinity 文件。

    另外、我发现 GPIO 驱动程序(GPIO-Davinci.c)正在使用  IRQ_SET_CHAKED_HANDLE_DATA ()  来注册 IRQ 和 ISR。
    直流/直流转换器 irq_set_chained_handler_and_data() 要注册 IRQ、无法设置其 CPU 关联。

    您可以进行交叉检查吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Minsoo、

    我明白了。 仔细研究一下、驱动程序似乎没有为 GPIO 中断设置 SMP_Affinity。

    我已经提交了一个 Jira 工单。

    此致!
    Jared