Messages in this thread | | | Date | Mon, 12 Sep 2005 02:47:47 -0700 | From | Paul Jackson <> | Subject | Re: [PATCH] cpuset semaphore depth check deadlock fix |
| |
Nikita wrote: > I am somewhat concerned that new fields are added to the struct > task_struct all the time: it's already over 1.3KB.
A reasonable concern.
In this case, I got sneaky, and lined up a short counter with a short that was in the previous slot, so probably didn't actually grow the task struct (until someone adds something in between ...).
But that's a thin excuse.
I had thought about both having a global cpuset_sem_owner, and about having the cpuset_sem_depth as a single global rather than a per task counter.
The owner by itself was insufficient because it didn't track the depth. The global owner was insufficient because it wasn't guarded atomically with the cpuset_sem semaphore.
It never occurred to me to try the combination. Sweet.
I'll run this through my custom cpuset sausage grinder and stress test, and see if the computer is equally delighted.
-- I won't rest till it's the best ... Programmer, Linux Scalability Paul Jackson <pj@sgi.com> 1.925.600.0401 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |