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
希望能帮忙解决。谢谢。
不知道下载附件要积分,
附上代码:
#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;
}
所使用的固件名称提供一下
我用最新的 ubuntu20 固件测试没有问题
sudo ./set_thread_param 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
如果提供的信息不对,麻烦你举例说一下。
谢谢 就是你这个ubuntu18固件是哪里下载的,下载下来的文件名是什么
Station_P2_Ubuntu_18.04_GPT_RAW_20211015_1605.zip
是这个吗? 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
测试发现那个固件确实有问题,可以用ubuntu20固件,ubuntu20测试正常
Liuth 发表于 2022-3-25 11:58
测试发现那个固件确实有问题,可以用ubuntu20固件,ubuntu20测试正常
哦哦,好的,谢谢。
请问Ubuntu18.04这个版本之后会修复这个问题么?
如果暂时没有修复的计划,能说明下造成这个问题可能的原因么?
另外我们提供的这个Ubuntu20固件支持打实时补丁么? 不清楚,可能是文件系统的原因
现在新的ubuntu18固件已经没有这个问题了
我们有提供 rtlinux 的固件,目前只有无桌面版
需要桌面版可以下载SDK自行打实时补丁实现,或者联系商务 Liuth 发表于 2022-3-25 14:54
不清楚,可能是文件系统的原因
现在新的ubuntu18固件已经没有这个问题了
意思是Station_P2_Ubuntu_18.04_GPT_RAW_20211015_1605.zip这个固件是没有我现在遇到的问题是么?
页:
[1]
2