Messages in this thread | | | Date | Mon, 6 Dec 1999 11:59:59 -0500 (EST) | From | William Montgomery <> | Subject | Re: setitimer lowlatency-2.2.13-A1 questions |
| |
On Mon, 6 Dec 1999, Ingo Molnar wrote: > On Mon, 6 Dec 1999, William Montgomery wrote: > > I tried using setitimer as a scheduling source for lowlatency testing > > with generally good results. I left my test running over the weekend > > and found some large latencies had occurred. It appears that since > > the signal generation occurs in timer_bh, it is possible for a user > > task to run between when the timer_interrupt occurs and when timer_bh > > runs (~2msec in my case). > > that should not be possible (except on SMP where there might be a window). > You are not running SMP, right? The TIMER_BH is run right when the IRQ > handler returns to non-irq context (which might be user-space or kernel > space), so it's not possible to 'lose' a TIMER_BH event due to some task > running. BHs might get delayed due to interrupts though, so you might want > to profile how long various interrupt sources execute. > The following ktrace shows the behavior I describe: 120792.42 0.35 do_IRQ pid(6801) 120792.78 2.17 do_8259A_IRQ pid(6801) 120794.95 0.41 handle_IRQ_event pid(6801) 120795.36 6.18 timer_interrupt pid(6801) 120801.55 0.59 do_timer pid(6801) 120802.14 0.94 enable_8259A_irq pid(6801) 120803.08 0.14 do_IRQ pid(6801) 120803.22 0.16 do_bottom_half pid(6801) ^^^---- seems like timer_bh should run right after this 120803.38 2.53 do_IRQ pid(6801) 120805.91 2.31 kmem_cache_free pid(6801) 120808.22 0.87 del_timer pid(6801) 120809.09 0.19 __kfree_skb pid(6801) 120809.28 0.26 sock_rfree pid(6801) 120809.54 0.16 kfree_skbmem pid(6801) 120809.71 0.55 kfree pid(6801) 120810.26 1.53 kmem_cache_free pid(6801) 120811.79 2079.30 do_IRQ pid(6801) ^^^-- I think pid(6801) is running now *prior* to timer_bh 122891.09 0.53 system_call pid(6801) 122891.62 0.81 sys_sigsuspend pid(6801) 122892.44 0.59 schedule pid(6801) 122893.03 0.30 do_bottom_half pid(6801) 122893.33 0.89 timer_bh pid(6801) 122894.21 0.42 update_wall_time pid(6801) 122894.63 0.86 update_wall_time_one_tick pid(6801) 122895.49 0.41 update_process_times pid(6801) 122895.90 1.76 update_one_process pid(6801) 122897.66 0.24 it_real_fn pid(6801) 122897.90 0.41 send_sig pid(6801) 122898.31 0.87 send_sig_info pid(6801) 122899.18 0.58 ignored_signal pid(6801) 122899.75 0.54 wake_up_process pid(6801) 122900.29 0.45 reschedule_idle pid(6801) 122900.75 2.79 add_timer pid(6801->6790) 122903.54 3.65 __switch_to pid(6790)
Am I interpreting this correctly?
Wm
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |