softirq performance fixes, cleanups, 2.4.10.

softirq performance fixes, cleanups, 2.4.10.

Post by Andrea Arcangel » Sat, 29 Sep 2001 09:10:09




> --- 2.4.10-softirq-A7/kernel/softirq.c.orig        Thu Sep 27 22:31:06 2001
> +++ 2.4.10-softirq-A7/kernel/softirq.c     Thu Sep 27 22:54:37 2001

>  {
>    int max_restart = MAX_SOFTIRQ_RESTART;
>    int cpu = smp_processor_id();
> -  __u32 pending, mask;
> +  __u32 pending;
>    long flags;

>    if (in_interrupt())

>    if (pending) {
>            struct softirq_action *h;

> -          mask = ~pending;
>            local_bh_disable();
>  restart:
>            /* Reset the pending bitmask before enabling irqs */

correct.


>  #endif

>    current->nice = 19;
> -  schedule();
> -  __set_current_state(TASK_INTERRUPTIBLE);

buggy (check cpus_allowed).

- Show quoted text -

Quote:>    for (;;) {
> -back:
> +          schedule();
> +          __set_current_state(TASK_INTERRUPTIBLE);
> +
>            do {
>                    do_softirq();
>                    if (current->need_resched)
>                            goto preempt;
>            } while (softirq_pending(cpu));
> -          schedule();
> -          __set_current_state(TASK_INTERRUPTIBLE);
> -  }

> +          continue;
>  preempt:
> -  __set_current_state(TASK_RUNNING);
> -  schedule();
> -  __set_current_state(TASK_INTERRUPTIBLE);
> -  goto back;
> +          __set_current_state(TASK_RUNNING);
> +  }
>  }

you dropped Ingo's optimization (but you resurrected the strictier /proc
statistics).

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

1. VM: 2.4.10 vs. 2.4.10-ac2 and qsort()

Just rip it off NetBSD and there you go. (FreeBSD's breaks on machines
like SPARC, NetBSD's does not.)

http://www.de.freebsd.org/cgi/cvsweb.cgi/basesrc/lib/libc/stdlib/merg...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

2. Help: Problems booting Solaris 2 from a Micropolis 3243

3. __alloc_pages cleanup -R6 Was: Re: Memory Problem in 2.4.10-pre2 / __alloc_pages failed

4. Question about libraries

5. Swapping in 2.4.10.SuSE-3 (2.4.10aa1 + some patches).

6. G/W P4D66, PCI/IDE card: unable to mount root - HELP!!!

7. Poor floppy performance in kernel 2.4.10

8. tar/cpio usage

9. kernel 2.4.10 masquerading (debian)

10. Analog joystick fails on 2.4.10

11. Compiling kernel 2.4.10

12. 2.4.10-ac12 compile error