From: Michael H. <ma...@ma...> - 2014-01-30 11:44:16
|
Am 30.01.2014 um 11:42 schrieb Lars Segerlund <lar...@gm...>: > It depends on the driver implementation, ie. if the kernel code is > using preempt disable or disable interrupts. The kernel execution path is _much_ longer than just the driver, and depending on the system call all sorts of issues happen well before a driver is invoked. Priority inversion, memory allocation which might block, the whole nine yards. The gist of what Nicolas said was: it's the kernel execution path of a particular syscall - meaning: no matter how bright your driver is you might well be hosed before you get there. > ALL preempt-rt performance is to a large extent dependent on the > quality of the device drivers. Can you back up that assertion with facts? the case at hand was the 7i80 UDP I/O effort. That means the whole kernel IP stack gets traversed. There obviously is a reason why Xenomai employs the RTnet stack for such jobs. For instance, it might make sense to ask Jan Kiska, the author. > If you look at osadl.org there is an effort on realtime device drivers ... What I am suggesting against: trying such approaches in isolation and hope for results based on some homegrown theory. What I am suggesting: talk to the relevant community, test your theory, listen to alternative suggestions. That has paid off hugely in the Xenomai case already. In the RT-PRREMPT case the gist I took away so far was: the UIO framework might be a solution to bypass kernel execution paths in RT - resullting in: lower latency, card dependency, no sharing with kernel stack, userland UDP handling, likely extra kernel modules, and out-of-tree support modules like uio_dma . - Michael > > / Lars > > > 2014-01-30 Michael Haberler <ma...@ma...>: >> Michal is trying hard to get the 7i80/hm2_eth.c driver working for RT-PREEMPT using normal socket I/O from an RT thread. >> >> The hopes with RT-PREEMPT are obviously pegged on the assumption: 'the kernel is hardened, so I'm free to use any system calls from an RT thread and still get decent latency, so we can leverage of the stock linux driver universe'. >> >> This might not be a valid assumption. >> >> I just had a long offline discussion with Nicholas Mc Guire from the rt-preempt effort on a related issue (signaling a non-RT thread from an RT thread; the method I proposed uses a write(2) system call on an eventfd(2) file descriptor; one of the most efficient ways to signal a poll(2) compatible event between threads). >> >> Nicholas pointed me to the fact that almost all system system calls might be spoilers for RT threads; _including write(2)_ , hardened kernel or not. While I didnt fully understand every detail he said, the message was clear: the above assumption might not hold. >> >> He also pointed at that hoping for low latency when using the kernel IP stack may be a lost cause to start with. He hinted towards a UIO-based userland stack being worked on for exactly this purpose. I am still searching for details on this. >> >> My recommendation is: >> >> peer-review your assumptions to avoid a time waster here. >> Get in touch with lin...@vg..., describe what you intend, get advice straight from the people who make it happen. >> >> >> - Michael >> >> >> -- >> >> ps: IMV the search for a low-latency network I/O method is still on. Note that we already have a userland PCI framework thanks to Charles, which might be >> a startng point. >> >> See also: >> http://static.mah.priv.at/public/rtlws-proceedings/rtlws-2012/proc/Yang.pdf >> http://os.inf.tu-dresden.de/ddekit/dde_rtlws11.pdf. >> >> semi-related: anyone looking into RT-PREEMPT on ARM CPU's should read: http://lwn.net/images/conf/rtlws11/papers/proc/p11.pdf >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> Emc-developers mailing list >> Emc...@li... >> https://lists.sourceforge.net/lists/listinfo/emc-developers > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Emc-developers mailing list > Emc...@li... > https://lists.sourceforge.net/lists/listinfo/emc-developers |