Re: mlockall() with pid parameter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





2016-12-07 17:21 GMT+01:00 Vlastimil Babka <vbabka@xxxxxxx>:
On 12/07/2016 04:39 PM, Federico Reghenzani wrote:
> Hello,
>
> I'm working on Real-Time applications in Linux. `mlockall()` is a
> typical syscall used in RT processes in order to avoid page faults.
> However, the use of this syscall is strongly limited by ulimits, so
> basically all RT processes that want to call `mlockall()` have to be
> executed with root privileges.

Is it not possible to change the ulimits with e.g. prlimit?


Yes, but it requires a synchronization between non-root process and root process.
Because the root process has to change the limits before the non-root process executes the mlockall().

Just to provide an example, another syscall used in RT tasks is the sched_setscheduler() that also suffers
the limitation of ulimits, but it accepts the pid so the scheduling policy can be enforced by a root process to
any other process.
 
 
> What I would like to have is a syscall that accept a "pid", so a process
> spawned by root would be able to enforce the memory locking to other
> non-root processes. The prototypes would be:
>
> int mlockall(int flags, pid_t pid);
> int munlockall(pid_t pid);
>
> I checked the source code and it seems to me quite easy to add this
> syscall variant.
>
> I'm writing here to have a feedback before starting to edit the code. Do
> you think that this is a good approach?
>
>
> Thank you,
> Federico
>
> --
> *Federico Reghenzani*
> PhD Candidate
> Politecnico di Milano
> Dipartimento di Elettronica, Informazione e Bioingegneria
>




--
Federico Reghenzani
PhD Candidate
Politecnico di Milano
Dipartimento di Elettronica, Informazione e Bioingegneria


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]