Skip to contentSkip to conversation

mod_timer improvement

DISCUSSION Steve Modica 2 participants 3 messages Oct 2, 2003 – Oct 3, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

This improves mod_timer scaling quite drastically. It's already in the 2.6 kernel. I've been testing with 8 cpus, 8 threads and 8 cards and mod_timer ends up taking up more time than tg_poll without this change.

*** /hosts/bonnie.engr.sgi.com//proj/sgilinux/lbs/isms/linux/linux/kernel/timer.c 2003/08/11 20:16:19 1.23 --- /hosts/bonnie.engr.sgi.com//proj/sgilinux/lbs/isms/linux/linux/kernel/timer.c 2003/10/01 21:09:20 1.24 *************** *** 207,212 **** --- 207,220 ----

	int ret; 
	unsigned long flags; 

+ /* + * This is a common optimization triggered by the + * networking code - if the timer is re-modified + * to be the same thing then just return: + */ + if (timer->expires == expires && timer_pending(timer)) + return 1; +

	spin_lock_irqsave(&timerlist_lock, flags); 
	timer->expires = expires; 
	ret = detach_timer(timer);
Signature · 6 lines
Steve Modica
work: 651-683-3224
mobile: 651-261-3201
MTS-Technical Lead
"Give a man a fish, and he will eat for a day, hit him with a fish and
he leaves you alone" - me
#1 lore raw

D'OH! Sorry about the formatting. I think this is better:

@@ -207,6 +207,14 @@

        int ret;
        unsigned long flags;
+        /*
+        * This is a common optimization triggered by the
+        * networking code - if the timer is re-modified
+        * to be the same thing then just return:
+        */
+        if (timer->expires == expires && timer_pending(timer))
+               return 1;
+
        spin_lock_irqsave(&timerlist_lock, flags);
        timer->expires = expires;
        ret = detach_timer(timer);
Signature · 6 lines
Steve Modica
work: 651-683-3224
mobile: 651-261-3201
MTS-Technical Lead
"Give a man a fish, and he will eat for a day, hit him with a fish and
he leaves you alone" - me
#2 lore raw
Quoted 1 line · On Thu, 02 Oct 2003 12:15:14 -0500 Steve Modica <[email protected]> wrote:

D'OH! Sorry about the formatting. I think this is better:

Probably the networking development list isn't the place to post patches that modify generic code such as the timer stuff you are modifying here.