Ok, here is a patch. See what you think. This patch assumes that Lee's patch has been merged (although it eliminates all of it). George George Anzinger wrote: > Lee Revell wrote: > >> On Fri, 2005-03-04 at 12:58 -0800, George Anzinger wrote: >> >>> Lee Revell wrote: >>> >>>> On Fri, 2005-03-04 at 02:28 -0800, George Anzinger wrote: >>>> The thing that brought this code to my attention is that with >>>> PREEMPT_RT >>>> this happens to be the longest non-preemptible code path in the kernel. >>>> On my 1.3 Ghz machine set_rtc_mmss takes about 50 usecs, combined with >>>> the rest of timer irq we end up disabling preemption for about 90 >>>> usecs. >>>> Unfortunately I don't have the trace anymore. >>>> >>>> Anyway the upshot is if we hung this off a timer it looks like we would >>>> improve the worst case latency with PREEMPT_RT by almost 50%. Unless >>>> there is some reason it has to be done synchronously of course. >>> >>> >>> Well, it does have to be done at the right WRT the second, but I >>> suspect we can hit that as well with a timer as it is hit now. Also, >>> if we are _really_ off the mark, this can be defered till the next >>> second. >>> >> >> >> Do you have a patch? > > > Not at the moment, but I will work one up. > >> >> Andrew merged my trivial patch to clean up the logic, but a real fix >> would be better. >> >> Lee >> > -- George Anzinger george@mvista.com High-res-timers: http://sourceforge.net/projects/high-res-timers/