Firefly开源社区

标题: pthread_setschedparam : Operation not permitted [打印本页]

作者: Aloha~    时间: 2022-3-24 17:25
标题: pthread_setschedparam : Operation not permitted
需求:设置线程的运行优先级。

ffgo获得信息:

OS:         Ubuntu 18.04.5 LTS
MODEL:         Firefly RK3568-ROC-PC HDMI (Linux)
FIREFLY: v2.10-42-g50c7f0ac
DATE:         20210827-1534
KERNEL:         Linux version 4.19.193 (llq@tchip14) (latest: 2cff32a4f0f631284463e56b1b9ccebd6be88eb3) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #72 SMP Fri Oct 15 09:43:42 CST 2021

现象:
c++11设置不了线程的运行优先级。
相同代码在NX,虚拟机中可以以root权限运行。但是在我们提供的板子“Firefly RK3568-ROC-PC HDMI (Linux)”中没办法以root权限运行。
尝试过的方式为:sudo 可执行程序 ; sudo之后,执行可执行程序

虚拟机中的系统信息:Linux nx 4.15.0-171-generic #180-Ubuntu SMP Wed Mar 2 17:25:05 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
NX中的系统信息:Linux nx-desktop 4.9.201-tegra #15 SMP PREEMPT Wed Jun 16 19:21:38 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

代码见附件。

编译命令:
g++ set_thread_param.cpp -o set_thread_param -lpthread

希望能帮忙解决。谢谢。


tchip_askquestions

test.txt

971 Bytes, 下载次数: 2, 下载积分: 灯泡 -1 , 经验 -1


作者: Aloha~    时间: 2022-3-24 17:28
不知道下载附件要积分,
附上代码:

#include <iostream>
#include <unistd.h>
#include <thread>
#include <pthread.h>

int thread_run()
{
    printf("start thread_run\n");
    sleep(5);
    printf("end thread_run\n");
    return 0;
}

int main()
{

    std::thread t1(thread_run);
    sched_param sched;
    int res_policy;
    sched_param res_sched;

    pthread_getschedparam(t1.native_handle(),&res_policy,&res_sched);
    printf("orignal :\n res_policy %d\n res_sched %d\n",res_policy,res_sched.sched_priority);

    sched.sched_priority = sched_get_priority_max(SCHED_FIFO);
    int res;
    if(res = pthread_setschedparam(t1.native_handle(), SCHED_FIFO, &sched))
    {
        printf("error %d\n",res);
        perror("pthread_setschedparam error\n");   
    }

   

    pthread_getschedparam(t1.native_handle(),&res_policy,&res_sched);
    printf("after :\n res_policy %d\n res_sched %d\n",res_policy,res_sched.sched_priority);

    t1.join();

    return 0;
}

作者: Liuth    时间: 2022-3-24 19:54
所使用的固件名称提供一下
我用最新的 ubuntu20 固件测试没有问题
sudo ./set_thread_param
作者: Aloha~    时间: 2022-3-25 10:54
Liuth 发表于 2022-3-24 19:54
所使用的固件名称提供一下
我用最新的 ubuntu20 固件测试没有问题
sudo ./set_thread_param

你好,我不是很清楚你说的固件名称指的什么。

我们使用的是Station P2产品8G+64G,Ubuntu 18.04(TF卡)版本。

然后参照发帖前的建议,使用ffgo看的信息是:
OS:         Ubuntu 18.04.5 LTS
MODEL:         Firefly RK3568-ROC-PC HDMI (Linux)
FIREFLY: v2.10-42-g50c7f0ac
DATE:         20210827-1534
KERNEL:         Linux version 4.19.193 (llq@tchip14) (latest: 2cff32a4f0f631284463e56b1b9ccebd6be88eb3) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #72 SMP Fri Oct 15 09:43:42 CST 2021

如果提供的信息不对,麻烦你举例说一下。
谢谢
作者: Liuth    时间: 2022-3-25 11:09
就是你这个ubuntu18固件是哪里下载的,下载下来的文件名是什么
Station_P2_Ubuntu_18.04_GPT_RAW_20211015_1605.zip
是这个吗?
作者: Aloha~    时间: 2022-3-25 11:20
Liuth 发表于 2022-3-25 11:09
就是你这个ubuntu18固件是哪里下载的,下载下来的文件名是什么
Station_P2_Ubuntu_18.04_GPT_RAW_20211015 ...

嗯嗯,
我们是在https://www.stationpc.cn/download这个链接下载的文件。
文件名是:Station_P2_Ubuntu_18.04_GPT_20211015_1604.zip

作者: Liuth    时间: 2022-3-25 11:58
测试发现那个固件确实有问题,可以用ubuntu20固件,ubuntu20测试正常

作者: Aloha~    时间: 2022-3-25 14:08
Liuth 发表于 2022-3-25 11:58
测试发现那个固件确实有问题,可以用ubuntu20固件,ubuntu20测试正常

哦哦,好的,谢谢。

请问Ubuntu18.04这个版本之后会修复这个问题么?
如果暂时没有修复的计划,能说明下造成这个问题可能的原因么?

另外我们提供的这个Ubuntu20固件支持打实时补丁么?
作者: Liuth    时间: 2022-3-25 14:54
不清楚,可能是文件系统的原因
现在新的ubuntu18固件已经没有这个问题了

我们有提供 rtlinux 的固件,目前只有无桌面版
需要桌面版可以下载SDK自行打实时补丁实现,或者联系商务
作者: Aloha~    时间: 2022-3-25 15:00
Liuth 发表于 2022-3-25 14:54
不清楚,可能是文件系统的原因
现在新的ubuntu18固件已经没有这个问题了

意思是Station_P2_Ubuntu_18.04_GPT_RAW_20211015_1605.zip这个固件是没有我现在遇到的问题是么?
作者: Liuth    时间: 2022-3-25 15:06
不是,2022年的 3568pc 固件没这个问题,不是station的
https://www.t-firefly.com/doc/download/107.html#other_475

作者: Aloha~    时间: 2022-3-25 15:44
哦哦,好的,谢谢。

另外我在资料下载里面https://www.t-firefly.com/doc/download/107.html  没有看到rtlinux的固件,能给个链接么?
作者: Aloha~    时间: 2022-3-25 15:47
Liuth 发表于 2022-3-25 15:06
不是,2022年的 3568pc 固件没这个问题,不是station的
https://www.t-firefly.com/doc/download/107.html ...

我搜到RTLinux的使用手册了。感谢回复。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1