On 07/10/2012 06:15 PM, Sunetra Sashi wrote:

Thanks for clarifying. I should have said ¨not possible using Xenomai
IPCs¨. Sorry about that.

I am not trying to port legacy code. I am instead trying to establish a
communication pathway from voice applications in user land to some real
time xenomai code running within the kernel via a linux driver KM
running native linux. In our instance, it is necessary that the code
executes in the kernel space.

I have a very simple question: would the real-time code implement a driver?


On a related note, if I create a simple xenomai kernel module running
real time code and signal events to it from linux kernel space (via the
rt_event API) and communicate information back via interrupts (assuming
we manage memory via shared buffers), would that considered to be a true
Linux-Xenomai switch?






On Tue, Jul 10, 2012 at 11:57 AM, Philippe Gerum <r...@xenomai.org
<mailto:r...@xenomai.org>> wrote:

    On 07/10/2012 05:43 PM, Sunetra Sashi wrote:



        On Tue, Jul 10, 2012 at 11:01 AM, Philippe Gerum
        <r...@xenomai.org <mailto:r...@xenomai.org>
        <mailto:r...@xenomai.org <mailto:r...@xenomai.org>>> wrote:

             On 07/10/2012 01:23 PM, Sunetra Sashi wrote:


                 What is the recommended methodology for kernel space
        modules to
                 communicate with each other across the Linux-Xenomai space?


             There is no recommended methodology for this: kernel space
        should
             run within the linux domain only, or within the Xenomai
        domain only
             via the inter-driver RTDM interface, or should communicate with
             user-space only via a driver interface. rt <-> nrt within
        kernel
             space can be done using a low level mechanism, but there is
        no high
             level IPC for this.

             Again, if your kernel space code is actually an
        application, spare
             yourself a lot of pain, and move it to userland.


        That is interesting. So if I have a linux kernel module, say a
        network
        device driver. And another Xenomai kernel module that needs to
        run real
        time. Since we want to deal with IP packets, we need our linux
        module to
        run in the kernel space. Is it safe to assume that communication
        between
        2 such drivers is not possible in the kernel?



    Where did you read the word "impossible" in any of my mails? I've
    been telling you two things:

    - the kind of interface you mention cannot be done using
    off-the-shelf Xenomai IPCs. It could be done with a low level
    interface though, hint: linux netdev interfacing to Xenomai APCs.

    - if your linux module actually runs an application, then you may
    want to consider moving it to userland, where it belongs. We
    strongly discourage implementing application code in kernel space.

    I don't know what you actually want to do, but it looks like some
    port of legacy code from say, VxWorks/pSOS/whatever to linux. If so,
    then you should reconsider your target software design, it looks
    wrong. There are better ways to do this, less error prone, more
    efficient and maintainable, provided you stop insisting on running
    application bits in kernel space.



                 I corrected the rtipc rtdm device as a protocol device
        (I must have
                 changed it in error) and I am able to load the
        xeno_rtipc.ko now.
                 However, the socket open still fails with the same
        error code.

                 Thanks


                                   I am making these calls from within the
                 kernel, not
                          from user space.
                                   Hence I ended up using rtdm calls instead



                               /dev/rtp0 is a non-real-time user-space
        endpoint
                 for the
                               communication, between a regular linux
        application
                 and a
                          real-time
                               component. It does not make sense to open
        it from
                 kernel space.


                          My intent here is to set up something similar to
                 xddp-echo.c
                            (RT - Non
                          RT communication) but in kernel space instead. How
                 should I go about
                          creating the Linux endpoint for XDDP in the
        kernel?


                      There is no direct way for that, this
        device/protocol is not
                      intended for this purpose. This is a regular linux
                 application to
                      Xenomai real-time communication path, nothing
        else. Regular
                 linux
                      applications live in userland, only.

                      We don't recommend building applications in kernel
        space.







                                            Do I need to install any
        specific xenomai
                          modules for
                                   this to work?


                                        Obviously, yes. Check IPC
        drivers in the
                 "Drivers"
                          sub-menu
                                   of the
                                        Xenomai configuration. You need
        to have
                                        CONFIG_XENO_DRIVERS_RTIPC_XDDP
        enabled.


                                   I already checked this in the
        configuration,
                 It is enabled.
                                   Should this
                                   also be set to y?
        CONFIG_XENO_DRIVERS_RTIPC. In my
                          configuration
                                   it is
                                   set to m.


                               Did you load the xeno_rtipc module then?


                          It is not loaded. But I got an error when I
        did that.
                          Xenomai: assertion failed at
        /.../kernel/xenomai/skins/)
                          Xenomai: RTDM: missing open handler


                      It does not make any sense. This assertion can
        only trigger
                 for a
                      named device, not a protocol device. RTIPC is a
        protocol
                 device.

                      - did you change any of the driver code?
                      - what command did you use to load the module,
        verbatim?

                          insmod: error inserting 'xeno_rtipc.ko': -1
        Invalid
                 parameters



                                   Should I see any modules loaded in

        /proc/xenomai/rtdm/protocol_________devices?


                               Yes.




                                            Thanks
                                            Shweta


          _________________________________________________________



                                            Xenomai mailing list
        Xenomai@xenomai.org <mailto:Xenomai@xenomai.org>
        <mailto:Xenomai@xenomai.org <mailto:Xenomai@xenomai.org>>
                 <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org> <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>>>
                          <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>
                 <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>> <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>
                 <mailto:Xenomai@xenomai.org <mailto:Xenomai@xenomai.org>>>>
                                   <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>
                 <mailto:Xenomai@xenomai.org <mailto:Xenomai@xenomai.org>>
                          <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>
                 <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>>> <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>
                 <mailto:Xenomai@xenomai.org <mailto:Xenomai@xenomai.org>>
                          <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org> <mailto:Xenomai@xenomai.org
        <mailto:Xenomai@xenomai.org>>>>__>
        http://www.xenomai.org/__________mailman/listinfo/xenomai
        <http://www.xenomai.org/________mailman/listinfo/xenomai>

        <http://www.xenomai.org/________mailman/listinfo/xenomai
        <http://www.xenomai.org/______mailman/listinfo/xenomai>>


          <http://www.xenomai.org/________mailman/listinfo/xenomai
        <http://www.xenomai.org/______mailman/listinfo/xenomai>
                 <http://www.xenomai.org/______mailman/listinfo/xenomai
        <http://www.xenomai.org/____mailman/listinfo/xenomai>>>



        <http://www.xenomai.org/________mailman/listinfo/xenomai
        <http://www.xenomai.org/______mailman/listinfo/xenomai>
                 <http://www.xenomai.org/______mailman/listinfo/xenomai
        <http://www.xenomai.org/____mailman/listinfo/xenomai>>

          <http://www.xenomai.org/______mailman/listinfo/xenomai
        <http://www.xenomai.org/____mailman/listinfo/xenomai>
                 <http://www.xenomai.org/____mailman/listinfo/xenomai
        <http://www.xenomai.org/__mailman/listinfo/xenomai>>>>




        <http://www.xenomai.org/________mailman/listinfo/xenomai
        <http://www.xenomai.org/______mailman/listinfo/xenomai>
                 <http://www.xenomai.org/______mailman/listinfo/xenomai
        <http://www.xenomai.org/____mailman/listinfo/xenomai>>

          <http://www.xenomai.org/______mailman/listinfo/xenomai
        <http://www.xenomai.org/____mailman/listinfo/xenomai>
                 <http://www.xenomai.org/____mailman/listinfo/xenomai
        <http://www.xenomai.org/__mailman/listinfo/xenomai>>>


        <http://www.xenomai.org/______mailman/listinfo/xenomai
        <http://www.xenomai.org/____mailman/listinfo/xenomai>
                 <http://www.xenomai.org/____mailman/listinfo/xenomai
        <http://www.xenomai.org/__mailman/listinfo/xenomai>>

          <http://www.xenomai.org/____mailman/listinfo/xenomai
        <http://www.xenomai.org/__mailman/listinfo/xenomai>
                 <http://www.xenomai.org/__mailman/listinfo/xenomai
        <http://www.xenomai.org/mailman/listinfo/xenomai>>>>>



                                        --
                                        Philippe.





                               --
                               Philippe.





                      --
                      Philippe.





             --
             Philippe.





    --
    Philippe.





--
Philippe.



_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to