From: Jeff Webb <jeff.webb@nta-inc.net>
To: xenomai@xenomai.org, rtnet-users@lists.sourceforge.net
Subject: Re: [Xenomai] Add cards parameter to rt_e1000e module?
Date: Tue, 16 Dec 2014 15:43:04 -0600 [thread overview]
Message-ID: <5490A768.7040605@nta-inc.net> (raw)
In-Reply-To: <548f3ed0cc1f95.52388489@wp.pl>
On 12/15/2014 02:04 PM, Mariusz Janiak wrote:
>>>> Certainly a well behaved driver would not touch a device already handled
>>>> by a linux driver. It should be possible to just issue an unbind request
>>>> to the linux driver for the desired device and then a bind request to
>>>> the rtnet driver to take over that device.
>>
>> Thanks for sharing this information. It sounds like that might work.
>>
>>> The problem with the
>>> bind/unbind solution is that the driver that will get all the cards
>>> first depends on the drivers initialization order. With the "cards"
>>> parameter, you do not have this issue.
>>
>> Maybe one could create a script that would attempt to unbind both the rt and non-rt drivers (or check to see which one is bound and then unbind it), and then make the desired "bind" calls. It would be better if the incorrect binding were not made in the first place, however. I think the ideal solution would be to have a file that contains device/driver pairs that would keep the kernel from passing the specified devices to any other drivers. I wonder how hard that would be to implement.
>
> The RTnet configuration file rtnet.conf has already instrumentation for binding/unbinding devices. The REBIND_RT_NICS variable has to be set up with the correct NIC PCI addresses. If you have more then one NIC, you can identity PCI address of respective eth's using ethtool
>
> ethtool -i eth0
> ethtool -i eth1
>
> etc.
>
> The bus-info field contains device pci addres that you can directly insert to REBIND_RT_NICS. If you don't know which eth menage with physical interface, you can blink LED port of the NIC using, eg.
>
> ethtool -p eth0
(I am cross-posting this message to rtnet-users from the xenomai mailing list, since this is even more relevant there. I apologize to those who receive duplicate e-mails.)
Thank you again, Mariusz. All of this information is helpful. I was following the instructions to start the RTnet core manually (as documented in the README file), since I am not using RTmac in my application. I saw some references to REBIND_RT_NICS, but I didn't look into it very closely, since rtnet.conf and the "rtnet" script appeared to associated with RTmac.
After looking at the "rtnet" script, I see that it does indeed use bind/unbind in exactly the way we were discussing. The script works very works well to switch an interface between standard and real-time networking, but unfortunately it does not support running without the RTmac layer. I made some minor modifications to the script to add this support. With my modifications, if TDMA_MODE = "none" (instead of "master" or "slave"), the script skips all of the rtmac/rtcfg/tmda initialization. I have attached patches for both the rtnet and xenomai-3.git/next repositories. I hope that they will be accepted, since I believe others have asked for this functionality in the past.
Gilles, it appears that the "cards" parameter may not be needed anymore, unless there are some other situations in which bind/unbind won't work. I can see how that would make maintaining the RT drivers simpler.
-Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtnet-no-tdma-git.patch
Type: text/x-patch
Size: 888 bytes
Desc: not available
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20141216/a7cf8f8a/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtnet-no-tdma-xeno3.patch
Type: text/x-patch
Size: 617 bytes
Desc: not available
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20141216/a7cf8f8a/attachment-0001.bin>
next prev parent reply other threads:[~2014-12-16 21:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-15 20:04 [Xenomai] Add cards parameter to rt_e1000e module? Mariusz Janiak
2014-12-16 21:43 ` Jeff Webb [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-12-12 22:10 Jeff Webb
2014-12-12 23:56 ` Gilles Chanteperdrix
2014-12-15 15:01 ` Jeff Webb
2014-12-15 15:29 ` Jeff Webb
2014-12-13 1:03 ` Gilles Chanteperdrix
2014-12-13 2:12 ` Lennart Sorensen
2014-12-13 5:11 ` Gilles Chanteperdrix
2014-12-13 17:14 ` Lennart Sorensen
2014-12-15 15:27 ` Jeff Webb
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5490A768.7040605@nta-inc.net \
--to=jeff.webb@nta-inc.net \
--cc=rtnet-users@lists.sourceforge.net \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.