From vxworks to linux

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

 



Hello rt

I am working on porting a vxworks application from vxworks to linux
preempt-rt. this application
is hard real time application as it controls a robot.

here are the current difficulties i face, and i hope to get this
community views:

1. vxworks rt priority range scales up to 255 and not 100 which is not enough.

        Compiling kernel with RT_MAX_PRIO set to 255 ( 3.0 even
without preemprt rt ) and executing cyclictest crashes kernel
        ( NULL pointer in pick_next_task_rt +0x88 ).  So naive
approach doesn't work.

        How do i increase MAX_RT_PRIO to higher value, even in the
cost of recompiling an entire system ( all os user space
       code is recompiled with a sanitized kernel headers ).


2. global critical section

        vxworks does not have the notion of a virtual address space.
so code that is "user space"
        oriented is executing side by side to an interrupt , this
leads to "cli"-like global locks
        in a vxworks world.

        so in linux..
        one solution is to "iopl(3)" and then "sti/cli" in user space
, this is good for UNI processors machines,
        but assuming preempt-rt will run smp machines it is not good.
also, disabling interrupts is considered bad
        practice in preempt-rt.
        another solution is to increase the executing thread priority
to the highest value possible, i believe it is
        theoretically correct assuming i have full control over the
entire operating system.

        anyone experienced with sort of problems ? or tried any of the
above with success ?

3. vxworks target shell.

        vxworks provides a shell-like access to its system, and since
all tasks share address space it is possible
        to access all globals in the c code just like in gdb, examine
stacks and so on without disturbing the
        rt task  whatsoever.

        I need this feature in linux per-process.
        At the moment i did not find anything like vx-target shell in
linux. gdb/ptrace is out of the question as
        they influence the rt task behavior.
        Currently I think to create a thread that is part of to the
process address space. this thread is based on libcli,
        and it it means should integrate it with pstack code and nm code.

        so before i start writing piles of code, any other ideas ?

        thank you
        raz
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux