Revision: 928 Author: teawater Date: Wed Feb 22 06:06:20 2012 Log: Add some unlikely to speed up http://code.google.com/p/kgtp/source/detail?r=928 Modified: /trunk/gtp.c /trunk/gtp_for_review.patch ======================================= --- /trunk/gtp.c Wed Feb 22 05:59:16 2012 +++ /trunk/gtp.c Wed Feb 22 06:06:20 2012 @@ -2822,7 +2822,7 @@ char *pbuf = __get_cpu_var(gtp_printf); ULONGEST *stack = __get_cpu_var(action_x_stack); - if (ae->u.exp.need_var_lock) + if (unlikely(ae->u.exp.need_var_lock)) spin_lock(>p_var_lock); if (ae->type == 'X') { @@ -3469,7 +3469,7 @@ } break; } - if (sp > STACK_MAX - 5) { + if (unlikely(sp > STACK_MAX - 5)) { printk(KERN_WARNING "gtp_action_x: stack " "overflow.\n"); gts->tpe->reason @@ -3486,14 +3486,14 @@ "action X get error in pc %u.\n", (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr, pc); out: - if (psize != GTP_PRINTF_MAX) { + if (unlikely(psize != GTP_PRINTF_MAX)) { unsigned long flags; local_irq_save(flags); printk("%s", pbuf - (GTP_PRINTF_MAX - psize)); local_irq_restore(flags); } - if (ae->u.exp.need_var_lock) + if (unlikely(ae->u.exp.need_var_lock)) spin_unlock(>p_var_lock); return ret; } ======================================= --- /trunk/gtp_for_review.patch Wed Feb 22 05:59:16 2012 +++ /trunk/gtp_for_review.patch Wed Feb 22 06:06:20 2012 @@ -4298,7 +4298,7 @@ + char *pbuf = __get_cpu_var(gtp_printf); + ULONGEST *stack = __get_cpu_var(action_x_stack); + -+ if (ae->u.exp.need_var_lock) ++ if (unlikely(ae->u.exp.need_var_lock)) + spin_lock(>p_var_lock); + + if (ae->type == 'X') { @@ -4945,7 +4945,7 @@ + } + break; + } -+ if (sp > STACK_MAX - 5) { ++ if (unlikely(sp > STACK_MAX - 5)) { + printk(KERN_WARNING "gtp_action_x: stack " + "overflow.\n"); + gts->tpe->reason @@ -4962,14 +4962,14 @@ + "action X get error in pc %u.\n", + (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr, pc); +out: -+ if (psize != GTP_PRINTF_MAX) { ++ if (unlikely(psize != GTP_PRINTF_MAX)) { + unsigned long flags; + + local_irq_save(flags); + printk("%s", pbuf - (GTP_PRINTF_MAX - psize)); + local_irq_restore(flags); + } -+ if (ae->u.exp.need_var_lock) ++ if (unlikely(ae->u.exp.need_var_lock)) + spin_unlock(>p_var_lock); + return ret; +}