[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.02.1109201121340.2723@ionos>
Date: Tue, 20 Sep 2011 11:51:51 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Eric Dumazet <eric.dumazet@...il.com>
cc: Andi Kleen <andi@...stfloor.org>,
LKML <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Andi Kleen <ak@...ux.intel.com>,
Peter Zijlstra <peterz@...radead.org>
Subject: Re: [PATCH 1/2] posix-timers: move global timer id management to
signal_struct v4
On Tue, 20 Sep 2011, Eric Dumazet wrote:
> Le mardi 20 septembre 2011 à 00:36 +0200, Andi Kleen a écrit :
> > > This means idr_pre_get() consumes 6528 bytes of spare space per process,
> > > even if only one posix timer is used.
> >
> > And? Given the now normal bloat level in the kernel that's small
> > potatoes.
That's not really a good excuse to create more bloat without spending
a few brain cycles.
> I see. Oh yes, you work for a known hardware vendor.
LOL
Aside of that this patch already adds sizeof(idr) + sizeof(mutex) to
every signal_struct unconditionally. There is no reason to do that. We
simply can have a pointer to
struct posix_timer_idr {
struct mutex lock;
struct idr idr;
};
and allocate that when a process creates the first posix timer.
Thinking more about that the question arises whether the global idr is
in fact a real scalability issue. The number of posix timers actually
used is usually pretty low and I doubt that they are created/deleted
with high frequency.
If it's just about limiting the per process posix timer allocation we
can achieve the same goal with a simple per process counter which
holds the number of allocated timers.
Thanks,
tglx
Powered by blists - more mailing lists