Re: [ltt-dev] Re: [PATCH] LTT for 2.5.38 1/9: Core infrastructure

bob
2002-09-22T22:58:17Z

> > [...] On a technical note: a cache-line ping-ponging is bad - a global
> > spinlock is horrendous. They're different - the lock-less MP scheme gets
> > rid of them both.
>
> (on the contrary - a global spinlock is bad for exactly that reason,
> because it causes a cacheline ping-pong. So if two CPUs are trying to
> write trace events at once, you'll get the same effect as if they were
> using a global spinlock.)
>
> Ingo

Just want to be clear that we are going to a per-CPU buffer scheme.

However, for sake of argument, the above is still not true. A global lock
has a different (worse) performance problem then the lock-free atomic
operation even given a global queue. The difference is 1) the Linux global
lock is very expensive and interacts with potential other processes, and 2)
you have to hold the lock for the entire duration of logging the event;
with the atomic operation you are finished once you've reserved you space.
If you didn't use the expensive Linux global lock and just a global lock,
you could be interrupted in the middle of holding the lock and performance
would fall off the map.

-bob

Robert Wisniewski
The K42 MP OS Project
Advanced Operating Systems
Scalable Parallel Systems
IBM T.J. Watson Research Center
914-945-3181
http://www.research.ibm.com/K42/
bob@watson.ibm.com