On Thu, Mar 31, 2016 at 09:20:07AM +0800, Yuxin Ren wrote: > Thank you all!! > > I agree URCU does timing quite well. > But are there any formal response time analysis for URCU/RCU (both > read and update path)?
Not that I know of. You could be the first! > Or could anyone guide me how to do RTA for URCU/RCU? Compile something with a simple RCU read-side critical section, and then count the instructions. QSBR will of course work best, but MB will also have good bounds. Signal-based will be a bit more complicated. Much depends on what type of RTA you want to do. Brandenburg's dissertation has quite a bit of info and many citations: http://www.cs.unc.edu/~bbb/diss/ You can also take an experimental approach, though a great many runs are required. OSADL (https://www.osadl.org/) does quite a bit of this work on -rt Linux. Thanx, Paul > Thanks again. > > On Fri, Mar 11, 2016 at 10:00 PM, Mathieu Desnoyers > <mathieu.desnoy...@efficios.com> wrote: > > ----- On Mar 11, 2016, at 6:45 AM, Paul E. McKenney > > paul...@linux.vnet.ibm.com wrote: > > > >> On Thu, Mar 10, 2016 at 08:53:05PM +0000, Mathieu Desnoyers wrote: > >>> ----- On Mar 10, 2016, at 3:33 PM, Yuxin Ren r...@gwmail.gwu.edu wrote: > >>> > >>> > Thank you for your reply. > >>> > > >>> > I want to generally understand how to apply urcu to real time systems. > >>> > I know real time system focus on predictability on both timing and > >>> > memory consumption. > >>> > So how does real time urcu support predictability? > >>> > Could you provide me some papers, documents or any materials about any > >>> > aspect of real time urcu? > >>> > >>> Adding Paul E. McKenney in CC, who may have some thoughts on this > >>> topic. > >> > >> URCU does timing quite well, given that the read-side primitives each > >> execute a fixed sequence of instructions. Updates using call_rcu() > >> can be used to minimize update-side latency, but if you need to bound > >> memory overhead, the best way to do that is to make sure that updates > >> are not on the critical path, and then use synchronize_rcu() instead > >> of call_rcu(). In that case, the total amount of memory waiting for > >> reclamation is bounded by the maximum size of an RCU-protected memory > >> block times the number of threads. > > > > An intermediate solution if both update throughput and bounded-memory > > are required (but the application would not have real-time constraints > > on updates) would be to use the defer_rcu() API in liburcu. It amortizes > > the cost of synchronize_rcu() over many defer_rcu() calls with a worker > > thread, but only up to an upper bound. When the upper bound is reached, > > the defer queue call empties the defer queue itself. > > > > Thanks, > > > > Mathieu > > > >> > >> So can you design your application so that updates are off the critical > >> path? If so, you can get both bounded read-side accesses and bounded > >> memory footprint. > >> > >> This of course assumes that your data structures are simple enough > >> that readers don't need to use retry techniques. > >> > >> The following info might be helpful: > >> > >> http://www2.rdrop.com/users/paulmck/realtime/paper/DetSyncRCU.2009.08.18a.pdf > >> http://www2.rdrop.com/users/paulmck/realtime/paper/DetSyncRCU.2009.09.29a.pdf > >> > >> http://www2.rdrop.com/users/paulmck/realtime/paper/RTLWS2012occcRT.2012.10.19e.pdf > >> > >> It also depends on your timeframe. Microseconds? Life is hard. > >> Milliseconds? Care is required, but you have a fair amount of freedom. > >> Seconds? Life is not so hard. Unless you need to do two seconds of > >> computation in one second or some such. ;-) > >> > >> Thanx, Paul > >> > >>> Thanks, > >>> > >>> Mathieu > >>> > >>> > > >>> > Thanks again! > >>> > > >>> > On Thu, Mar 10, 2016 at 1:52 PM, Michel Dagenais > >>> > <michel.dagen...@polymtl.ca> wrote: > >>> >> Real-time and embedded systems is an important current focus for the > >>> >> LTTng > >>> >> toolchain research. Do you have specific needs for userspace RCU? > >>> >> > >>> >> ----- Mail original ----- > >>> >>> Hi, > >>> >>> > >>> >>> Is there any work or research about Userspace RCU on real time or > >>> >>> embedded systems? > >>> >>> Any information is welcome. > >>> >>> > >>> >>> Thanks a lot! > >>> >>> Yuxin > >>> >>> _______________________________________________ > >>> >>> lttng-dev mailing list > >>> >>> lttng-dev@lists.lttng.org > >>> >>> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > >>> >>> > >>> > _______________________________________________ > >>> > lttng-dev mailing list > >>> > lttng-dev@lists.lttng.org > >>> > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > >>> > >>> -- > >>> Mathieu Desnoyers > >>> EfficiOS Inc. > >>> http://www.efficios.com > > > > -- > > Mathieu Desnoyers > > EfficiOS Inc. > > http://www.efficios.com > _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev