Re: [PATCH v0] add nano semaphore in kernel

Daniel Walker
2010-12-28T15:51:40Z

On Mon, 2010-12-27 at 22:15 +0100, Arnd Bergmann wrote:
> On Sunday 26 December 2010, Hillf Danton wrote:
> >
> > Based upon high resolution timer and idea borrowed from semaphore,
> > nano semaphore is created.
> >
> > Nano semaphore provides finer time resolution depending on system
> > configuration and capabilities.
> >
> > Nano semaphore is not to replace semaphore, but used in application
> > environments where nano seconds are required.
> >
> > Three methods, nano_semaphore_try_down, nano_semaphore_down and
> > nano_semaphore_up are implemented in a header file, and there is no
> > corresponding C file since nano semaphore is not complex.
> >
> > Signed-off-by: Hillf Danton <dhillf@gmail.com>
>
> There are very few users of real semaphores today, and we're trying to
> get rid of them. It's not clear what your requirements are, since you
> have not posted any new users of this, but instead of adding more
> locking primitives, I would recommend changing one of the existing
> ones (mutex, semaphore, rwsem) to have nanosecond timeouts instead
> of jiffies.
>
> The easiest way would certainly be to change the three users of
> down_timeout() to use nanoseconds.

We for sure don't want new semaphores, or new semaphore usage in the
kernel ..

It should also be noted that the rtmutex (kernel/rtmutex.c) already has
this capability. Although I don't think you can use an rtmutex from
inside the kernel.

If you really want this you should look into the rtmutex, and the
regular mutex API's .

Daniel

--
Sent by an consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
Forum.