Mark Hounschell wrote:I understand your scepticism but it's quite easy to do these days. Yes there are certain restrictions on how RT applications have to be designed, but definitely not a rocket science. It can be summed up in a few words: "cpu isolation, lock-free communication and memory management, and direct HW access" In other words you want to talk using lock-free queues and mempools between soft- and hard- RT components and use something like libe1000.sf.net to talk to the outside world. There are other approaches of course, those involve RT kernels, Xenomai, etc. As I mentioned awhile ago we (here at Qualcomm) actually implemented full blown UMB (one of the 4G broadband technologies) basestation that runs entire MAC and part of PHY layers in the user-space using CPU isolation techniques. Vanilla 2.6.17 to .24 kernel + cpuisol and off-the-shelf dual-Opteron and Core2Duo based machines. We have very very tight deadlines and yet everything works just fine. And no we don't have to do any special tong holding or other rituals :) for it to work. In fact quite the opposite. I can do full SW (kernel, etc) builds and do just about anything else while our basestation application is running. Worst case latencies in the RT thread running on the isolated CPU is about ~1.5usec. Now I switched to 8way Core2Quad machines. I can run 7 RT engines on 7 isolated CPUs and load cpu0. Latencies are a bit higher 5-6 usec (I guessing due to shared caches and stuff) but otherwise it works fine. This is with the 2.6.25.4-cpuisol2 and syspart (syspart is a set of scripts for setting up system partitions). I'll release both either later today or early next week. So I think you're underestimating the power of Linux and CPU isolation ;-). Yes it may seem that way. But as I explained in the previous email. In order to actually implement something like that we'd need to do reimplement parts of the cpusets and cpu hotplug. I'm not sure if you noticed or not but my original patch actually relied on the cpu hotplug anyway. Just because it makes no sense not to awesome powers of hotplug that can migrate _everything_ running on one cpu to an other cpu. And cpuset.sched_load_balance flag provides equivalent functionality for controlling scheduler domains and load balancer. Other stuff like workqueue have to be dealt with in either case. So what I'm getting at is that you get equivalent functionality. Max --
| Scott Preece | Re: Linux Foundation Technical Advisory Board Elections |
| Luis R. Rodriguez | Re: [Announce] Linux-tiny project revival |
| Andrew Morton | 2.6.23-rc1-mm2 |
| Dave Hansen | [PATCH 02/24] rearrange may_open() to be r/o friendly |
git: | |
| David Miller | [GIT]: Networking |
| David Miller | Re: [BUG] New Kernel Bugs |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
