Dan Halperin wrote:
> Eric Blossom wrote:
>   
>> If they're not running as root (or holding CAP_SYS_NICE), the call 
>> sched_setscheduler (the system call that enables realtime) will fail.
>>   
>>     
> They're not running as root, I just added the Ubuntu udev rules on the
> website. I never explicitly enabled the SYS_CAP_NICE, it just happened,
> and I can't figure out how to remove it.

Update: I installed lcap, and ran lcap 23, which disables CAP_SYS_NICE:

    [EMAIL PROTECTED]:~# lcap
    Current capabilities: 0xFF7FFEFF
       0) *CAP_CHOWN                   1) *CAP_DAC_OVERRIDE        
       2) *CAP_DAC_READ_SEARCH         3) *CAP_FOWNER              
       4) *CAP_FSETID                  5) *CAP_KILL                
       6) *CAP_SETGID                  7) *CAP_SETUID              
       8)  CAP_SETPCAP                 9) *CAP_LINUX_IMMUTABLE     
      10) *CAP_NET_BIND_SERVICE       11) *CAP_NET_BROADCAST       
      12) *CAP_NET_ADMIN              13) *CAP_NET_RAW             
      14) *CAP_IPC_LOCK               15) *CAP_IPC_OWNER           
      16) *CAP_SYS_MODULE             17) *CAP_SYS_RAWIO           
      18) *CAP_SYS_CHROOT             19) *CAP_SYS_PTRACE          
      20) *CAP_SYS_PACCT              21) *CAP_SYS_ADMIN           
      22) *CAP_SYS_BOOT               23)  CAP_SYS_NICE            
      24) *CAP_SYS_RESOURCE           25) *CAP_SYS_TIME            
      26) *CAP_SYS_TTY_CONFIG         27) *CAP_MKNOD               
      28) *CAP_LEASE                  29) *CAP_AUDIT_WRITE         
      30) *CAP_AUDIT_CONTROL       
        * = Capabilities currently allowed

If I as root attempt to set the priority of a process via nice, it fails:

    [EMAIL PROTECTED]:~# nice -n -50 top
    nice: cannot set niceness: Permission denied

The same thing happens to user processes.

However, if I run an application that calls the GNU Radio enable_runtime
function, that call succeeds and Python gets priority -50. Even though I
have disabled CAP_SYS_NICE system-wide. This happens even if I log out
all users and re-log in or do so remotely via ssh, do so with a user
that's not even in the wheel group, etc.

I can't think of what else to try...

-Dan


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to