[Rtai] Behavior in the kernel space - rtai 3.3

Djamel Louar djamel.louar at inria.fr
Wed May 21 19:13:44 CEST 2008



Paolo Mantegazza wrote:
> Djamel Louar wrote:
>> Suessmilch Bernd wrote:
>>
>>>
>>>  
>>>
>>>> -----Original Message-----
>>>> From: rtai-bounces at rtai.org [mailto:rtai-bounces at rtai.org]On Behalf Of
>>>> Suessmilch Bernd
>>>> Sent: Mittwoch, 21. Mai 2008 15:13
>>>> To: Djamel Louar
>>>> Cc: rtai at rtai.org
>>>> Subject: Re: [Rtai] Behavior in the kernel space - rtai 3.3
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>   
>>>>> -----Original Message-----
>>>>> From: rtai-bounces at rtai.org       
>>>>
>>>> [mailto:rtai-bounces at rtai.org]On Behalf Of
>>>>   
>>>>> Djamel Louar
>>>>> Sent: Mittwoch, 21. Mai 2008 14:24
>>>>> To: rtai at rtai.org
>>>>> Subject: [Rtai] Behavior in the kernel space - rtai 3.3
>>>>>
>>>>>
>>>>>
>>>>> Hi all,
>>>>>
>>>>> I used an ancient program which works with rtai 24 (two years ago) 
>>>>> with a more recent version : rtai 3.3.
>>>>> This is  a very basic program for beginners.
>>>>> It's seem  a different behavior of the execution between the 
>>>>> version 24 of rtai and the 3.3ver.
>>>>> In fact with  rtai 3.3, i can stop the program before its end and 
>>>>> i don't think that it is correct for real time systems.
>>>>>       
>>>>
>>>> Compared to RTAI-24, RTAI-3.3 has an improved signal handling. In 3.3
>>>> signals are proper delivered even to RT-tasks. Due to this improved 
>>>> signal
>>>> handling you can interrupt or terminate RT-tasks the same way as 
>>>> ordinary Linux
>>>> tasks.
>>>>
>>>> If you don't want a signal to  affect your RT-task you have to 
>>>> provide a proper
>>>> setting of the task's signal mask.
>>>>     
>>>
>>> Sorry, I did not notice that you are in KS. Sometimes it is
>>> better to finish reading first... ;-)
>>> What is said above relates only to US, of course.
>>>   
>>
>>
>> So, in KS, it is not possible to interrupt a module until its end ?
>> I would like to know if it is normal that my module can be 
>> interrupted before its end ?
>>
>
> What you mean for interrupting your module?
>
> Paolo.
>
Sorry for my english !! - I resume :
After compiling, i obtain the task_rt.ko file (that i call module). Then 
i make an "insmod task_rt.ko".
At this moment, the modules loaded are :
task_rt.ko,rtai_up, rtai_hal
In my comprehension, once the module task_rt loaded,  the  task called 
hello_world ends after 10 periods (10 seconds).
But i can make a "rmmod task_rt.ko" before the 10 periods of the task 
"hello_world". 
Is it normal ? I though that we can't do anything until the end of the 
"hello_world" task also means until the end of the "task_rt" module.
This is what i mean by "interrupting my module (while its execution)"

 I hope that i was clear - Thanks.
>> Djamel
>>
>>>  
>>>  
>>>
>>>>> Moroever, i remember that with rtai 24, the system "freezes" 
>>>>> during an execution of an RTAI application in the kernel space.
>>>>>       
>>>>
>>>> Even with RTAI-24 the system only freezes, when your RT-task consumes
>>>> too much CPU time.
>>>>
>>>> Best regards,
>>>> Bernd
>>>>   
>>>>> So i think that i do a mistake, could someone tell me where i'm 
>>>>> wrong ?
>>>>>
>>>>> Thanks Djamel.
>>>>>
>>>>> My code: task.c
>>>>>
>>>>> #include <linux/module.h>
>>>>> #include <rtai.h>
>>>>> #include <rtai_sched.h>
>>>>> #define NUMERO      1
>>>>> #define PRIORITE    1
>>>>> #define STACK_SIZE  2000
>>>>> #define PERIODE     1000000000    //  1 s
>>>>> #define TICK_PERIOD 1000000    //  1 ms
>>>>> #define N_BOUCLE    10
>>>>>
>>>>> static RT_TASK hello_world;
>>>>>   int ierr=0;
>>>>>   RTIME now;
>>>>>
>>>>> static void fun(long arg)
>>>>> {
>>>>>   int boucle = N_BOUCLE ;
>>>>>   while(boucle--){
>>>>>      rt_task_wait_period();
>>>>>   }
>>>>> }
>>>>> int init_module(void)
>>>>> {
>>>>>   rt_task_init(&hello_world, fun, 0, 4000, 0, 0, 0);
>>>>>   rt_set_oneshot_mode();
>>>>>   start_rt_timer(nano2count(1000));
>>>>>    now=rt_get_time()+TICK_PERIOD;
>>>>>   rt_task_make_periodic(&hello_world,now,nano2count(PERIODE));
>>>>>   return 0;
>>>>> }
>>>>> void cleanup_module(void) {
>>>>>   rt_task_delete(&hello_world);
>>>>>   stop_rt_timer();
>>>>> }
>>>>>
>>>>> Makefiles:
>>>>> GNUmakefile:
>>>>> ----------------------------------------------------------------
>>>>> prefix := $(shell rtai-config --prefix)
>>>>> ifeq ($(prefix),)
>>>>> $(error Please add <rtai-install>/bin to your PATH variable)
>>>>> endif
>>>>> CC = $(shell rtai-config --cc)
>>>>> ifneq ($(findstring 2.6.,$(shell rtai-config --linux-version 
>>>>> 2>/dev/null)),)
>>>>> LINUX_DIR = $(shell rtai-config --linux-dir)
>>>>> all:
>>>>>     $(MAKE) -C $(LINUX_DIR) CC=$(CC) SUBDIRS=$$PWD V=$(V) modules
>>>>> clean:
>>>>>     $(RM) $(LINUX_DIR)/.tmp_versions/*_rt.mod *.o *.ko       
>>>>
>>>> *.mod.c .*.cmd
>>>>   
>>>>> else
>>>>> MODULE_CFLAGS = $(shell rtai-config --module-cflags)
>>>>> all: task_rt.o
>>>>> task_rt.o: task.c
>>>>>     $(CC) $(MODULE_CFLAGS) -c $<
>>>>> clean:
>>>>>     rm -f *.o
>>>>> endif
>>>>> .PHONY: clean
>>>>> --------------------------------------------------------------
>>>>> -------------
>>>>> makefile:
>>>>>
>>>>> EXTRA_CFLAGS += $(shell rtai-config --module-cxxflags)
>>>>> obj-m += task_rt.o
>>>>> task_rt-objs := task.o
>>>>> --------------------------------------------------------------
>>>>> -------------------
>>>>> _______________________________________________
>>>>> Rtai mailing list
>>>>> Rtai at rtai.org
>>>>> https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai
>>>>>
>>>>>       
>>>>
>>>> _______________________________________________
>>>> Rtai mailing list
>>>> Rtai at rtai.org
>>>> https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai
>>>>
>>>>     
>>>
>>>
>>>
>>>   
>>
>>
>>
>
>
>


-- 

_________________________________________________________________________
Djamel Louar, 
INRIA, Domaine de Voluceau, Rocquencourt    Phone: (33) 1 39 63 53 00
BP 105                                      Fax:   (33) 1 39 63 51 93
78153 LE CHESNAY CEDEX, FRANCE 		    Email: djamel.louar at inria.fr
_________________________________________________________________________



More information about the Rtai mailing list