Linux Plumbers 2018 report

It was a success! This year I ended up making five talks! All related to real-time Linux, as expected. As feedback, I think that the most important are: – The idea of using automata model for explaining Linux’s dynamics and, mainly, to verify the behavior of the system was very welcome by the community. They want even more: To extend the idea to other subsystems of the kernel. – The semi-partitioned scheduler is a wish for Linux! – We need new metrics for the RT, and we need to integrate this with probabilistic execution time analysis. I was already planning…

Read More

Real-time Linux Summit 2018 – My slides

Hi! Here are the slides of my presentation in this year’s Real-time Linux Summit. The title is “Mind the gap: between real-time Linux and real-time theory (Part I).” It is about the creation of a formal model for tasks on Linux, in the intersection of the viewpoint of real-time Linux developers and real-time researchers. I received excellent feedback from the Linux community. There is interest in applying my method for the verification of the PREEMPT-RT kernel, even for areas that I was not expecting, like static code analysis. For a computer scientist, seeing practical results of applying a formal method…

Read More

Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata: All material

From the communication: “On behalf of the Program Committee for EWiLi 2018, I am pleased to inform you that the following submission has been accepted for publication in the workshop: Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata” The best thing is that all the revisor’s comments are constructive. All three revisors gave an “accepted” on the paper (a paper can be: accepted, weakly accepted, borderline, weakly rejected, rejected)! You can find the paper in this link: Paper The presentation in this link: Slides The model in this link: Model The code is in this link:…

Read More

Setting real-time priorities to services using systemd

Systemd supports the setup of real-time priority to services launched during the boot process. This is done using the following Directives in the Service section: CPUSchedulingPolicy= Sets the CPU scheduling policy for executed processes. Takes one of other, batch, idle, fifo or rr. CPUSchedulingPriority= Sets the CPU scheduling priority for executed processes. The available priority range depends on the selected CPU scheduling policy. For real-time scheduling policies, an integer between 1 (lowest priority) and 99 (highest priority) can be used. Example This is the mcelog service unity: [Unit] Description=Machine Check Exception Logging Daemon [Service] ExecStart=/usr/sbin/mcelog –ignorenodev –daemon –foreground [Install]…

Read More

__schedule() being called twice, the second in vain

Here is one example of the trace of the problem I reported in this e-mail to the LKML Note Patch accepted! This patch is the first change that was proposed by the analysis of the task model I am developing in my Ph.D. Thesis. Trace setup The trace setup I am using is the following: # cd /sys/kernel/debug/tracing/ # echo preempt_schedule_irq schedule schedule_preempt_disabled schedule_idle schedule_user >> set_graph_function ; done # echo function_graph > current_tracer # echo sched:sched_switch sched:sched_wakeup > set_event # echo irq_vectors >> set_event # echo $(( 1408 * 100 )) > buffer_size_kb # echo > trace In addition,…

Read More

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this. This site uses Google Analytics.