:::: MENU ::::

preempt_rt yamasinin dogrulanmasi

Burada preempt_rt patchinin internal olarak, varlığının gösterilmesi için gereken adımlar anlatılacaktır.

  • Kernel versiyon stringine bakarak: (-rtx, x o kernel surumunun yama versiyonudur)
# uname -a 
Linux krachkiste 2.6.18-rt5 #3 PREEMPT Thu Oct 06 14:28:47 CEST 2006 i686 GNU/Linux
  • dmesg çıktısına bakarak:
Real-Time Preemption Support (C) 2004-2006 Ingo Molnar
  • Interrupt requestleri yamalanmış kernelde thread olarak islenecegi için IRQ handler’ları task struct ile kontrol edilecektir. Bu sebeple:
ps ax

gibi işlemler listesinde, yamasız kernel’den farklı olarak kernel thread’i şeklinde gösterileceklerdir. “[]” kare parantez içinde gösterilir.

  • Asagidaki kod gcc -o test_rt test_rt.c -lrt derlenip, çalıştırılarak kontrol sağlanabilir.
#include <string.h>
#include <stdio.h>
#include <sys/utsname.h>

int main(int argc, char **argv)
{
    struct utsname u;
    int crit1, crit2 = 0;
    FILE *fd;

    uname(&u);
    crit1 = strcasestr (u.version, "PREEMPT RT");
    if ((fd = fopen("/sys/kernel/realtime","r")) != NULL) {
        int flag;
        crit2 = ((fscanf(fd, "%d", &flag) == 1) && (flag == 1));
        fclose(fd);
    }
    fprintf(stderr, "this is a %s kernel\n",
            (crit1 && crit2)  ? "PREEMPT RT" : "vanilla");
}

 

 


So, what do you think ?