Re: [PATCH] tight spin loop in release()

From: Dimitris Michailidis (dimitris@cthulhu.engr.sgi.com)
Date: Fri Aug 04 2000 - 19:18:16 EDT

  • Next message: List User: "2.2.* kernels w/ glibc-2.1.* allowing ngroups_max to be > 128?"

    "Pat O'Rourke" <orourke@mclinux.com> writes:

    > While debugging a problem on an SMP Alpha, I noticed that one process was
    > always in a tight loop in release(), waiting for its child to give up the
    > cpu. This was the cause of a significant amount of cache line "ping-ponging"
    > between the CPUs. It seems that the loop was rewritten between 2.2 and
    > 2.4 whereas the 2.2 version would wait for the has_cpu flag to be cleared
    > outside of the lock. This patch restores the loop to the 2.2 version to
    > avoid the problem described above.

    Presumably the ping-pong is due to the runqueue lock not due to has_cpu?
    If so, there are patches that remove the runqueue lock altogether from this
    path.

    -- 
    Dimitris Michailidis                    dimitris@engr.sgi.com
    

    - 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/



    This archive was generated by hypermail 2b29 : Fri Aug 04 2000 - 19:20:38 EDT