在使用yocto项目构建的linux操作系统中,如何改变线程优先级?

问题描述 投票:0回答:1

grep pthread.so libpthread.so.0 (libc6,x86-64, ...

Why don't you use

ldconfig -p | grep pthread.so
libpthread.so.0 (libc6,x86-64, OS ABI: Linux 3.2.0) => /lib/libpthread.so.0

and create rules for your application's priority. 它由glibc v2.27和util-linux v2.32.1组成。

..
..
...

    int set_max_thread_priority()
    {
        int policy;
        struct sched_param param {
        };

        pthread_getschedparam(pthread_self(), &policy, &param);
        policy = SCHED_RR;
        param.sched_priority = sched_get_priority_max(policy);
        return pthread_setschedparam(pthread_self(), policy, &param);
    }

...

pthread库位于。

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
2083 root      rt   0  709812   8100   6456 S  44.4  0.2   0:32.24 my-application

我想在docker容器化的C++应用中设置优先级SCHD_RR。

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
2083 root      20   0  709812   8100   6456 S  44.4  0.2   0:32.24 my-application

我想实现 my-application但它显示。

当我运行docker容器化时

sudo chrt -r -p 99 2083
chrt: failed to set pid 18465's policy: Operation not permitted

在UbuntuDebian上,就能正常工作。

但在yocto os上就不行了。当我尝试在yocto os上改变线程优先级(使用chrt命令)时,显示以下错误。
pthreads yocto glibc
1个回答
0
投票

cgroups我使用的是用yocto(sumo)构建的Linux操作系统(4.9.126)。它由glibc v2.27和util-linux v2.32.1组成。pthread库的位置是:ldconfig -p。

© www.soinside.com 2019 - 2024. All rights reserved.