Messages in this thread | | | Date | Wed, 20 Sep 2006 16:19:07 +0200 | From | Ingo Molnar <> | Subject | 2.6.18-rt1 |
| |
I'm pleased to announce the 2.6.18-rt1 tree, which can be downloaded from the usual place:
http://redhat.com/~mingo/realtime-preempt/
This port to the 2.6.18 codebase was very complex (given that 5 major features moved from -rt into 2.6.18: rtmutex, pi-futex, genirq, gtod and lockdep), so it took quite some time to finish, but in exchange it includes nice new features and also lots of bugfixes.
In particular, a nasty softirq performance bug has been fixed, which caused the "5x slowdown under TCP" bug reported to lkml - those TCP performance figures are now on par with vanilla performance.
The biggest new features are:
- Dynticks (a tickless kernel). This is a new feature we implemented ontop of hrtimers for the -hrt patchqueue and now we merged it to -rt too. There's a new config option: CONFIG_NO_HZ, which if enabled, produces a system with fewer timer interrupts. Currently i686 and x86_64 are tested, but in general a hrtimers-ready platform needs minimal changes to support dynticks too. (from Thomas Gleixner and me, the x86_64 port is from Arjan van de Ven)
- Timer expiry statistics feature from Thomas Gleixner: CONFIG_TIMER_STATS. Enable/disable via "echo 1[0] > /proc/tstats", display via "cat /proc/stats".
This kernel feature tracks the starting site (and expiry function) of expired timers (both timer_list timers and hrtimers), and the number of times they expired. This is a nice tool for those who'd like to minimize the amount of timer ticks on their battery-based systems. Sample output:
Timerstats sample period: 3.888770 s 12, 0 swapper hrtimer_stop_sched_tick (hrtimer_sched_tick) 15, 1 swapper hcd_submit_urb (rh_timer_func) 4, 959 kedac schedule_timeout (process_timeout) 1, 0 swapper page_writeback_init (wb_timer_fn) 28, 0 swapper hrtimer_stop_sched_tick (hrtimer_sched_tick) 22, 2948 IRQ 4 tty_flip_buffer_push (delayed_work_timer_fn) 3, 3100 bash schedule_timeout (process_timeout) 1, 1 swapper queue_delayed_work_on (delayed_work_timer_fn) 1, 1 swapper queue_delayed_work_on (delayed_work_timer_fn) 1, 1 swapper neigh_table_init_no_netlink (neigh_periodic_timer) 1, 2292 ip __netdev_watchdog_up (dev_watchdog) 1, 23 events/1 do_cache_clean (delayed_work_timer_fn) 90 total events, 30.0 events/sec
- There's also a new runtime-configurable kernel option under /proc/sys/kernel/timeout_granularity that allows the coarser expiry of timer_list timers, and hence better batching of timer expiry. (hrtimers are not affected) The value of this option gives a 'multiplier' to the standard HZ granularity.
- Lock validator ported to -rt: it now checks all the sleeping lock variants in -rt too. This helps us catch not only deadlocks but also raw-lock candidates, sooner than before.
- The latest High Resolution Timers queue from Thomas Gleixner with initial support for ARM and PPC. (Kevin Hilman, Deepak Saksena, Sergei Shtylyov)
- The latest GTOD (Generic Time Of Day) queue from John Stultz, including NTP cleanups from Roman Zippel.
- The latest genirq queue: more irq-chip-ization of i686 and x86_64, MSI cleanups from Eric W. Biederman et al.
- The latest preemptible-RCU queue from Paul E McKenney and Dipankar Sarma.
- (assorted fixes and improvements.)
Right now i686 and x86_64 are boot-tested, and ARM is compile-tested. The other architectures likely wont even build yet. This being the first 2.6.18 based release of -rt, some tester caution is called for.
to build a 2.6.18-rt1 tree, the following patches should be applied:
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 http://redhat.com/~mingo/realtime-preempt/patch-2.6.18-rt1
as usual, bugreports, fixes and suggestions are welcome,
Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |