All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Gregory Haskins <ghaskins@novell.com>
Cc: mingo@elte.hu, a.p.zijlstra@chello.nl, tglx@linutronix.de,
	rostedt@goodmis.org, linux-rt-users@vger.kernel.org,
	linux-kernel@vger.kernel.org, bill.huey@gmail.com,
	kevin@hilman.org, cminyard@mvista.com, dsingleton@mvista.com,
	dwalker@mvista.com, npiggin@suse.de, dsaxena@plexity.net,
	ak@suse.de, gregkh@suse.de, sdietrich@novell.com,
	pmorreale@novell.com, mkohari@novell.com
Subject: Re: [PATCH [RT] 07/14] adaptive real-time lock support
Date: Fri, 22 Feb 2008 20:14:20 +0100	[thread overview]
Message-ID: <20080222191419.GD6060@ucw.cz> (raw)
In-Reply-To: <20080221152701.4804.80776.stgit@novell1.haskins.net>

Hi!

> @@ -192,6 +192,26 @@ config RCU_TRACE
>  	  Say Y/M here if you want to enable RCU tracing in-kernel/module.
>  	  Say N if you are unsure.
>  
> +config ADAPTIVE_RTLOCK
> +        bool "Adaptive real-time locks"
> +	default y

tabs vs. spaces.

> +	 If unsure, say Y

Missing dot?

> @@ -7,6 +7,7 @@
>   *  Copyright (C) 2005-2006 Timesys Corp., Thomas Gleixner <tglx@timesys.com>
>   *  Copyright (C) 2005 Kihon Technologies Inc., Steven Rostedt
>   *  Copyright (C) 2006 Esben Nielsen
> + *  Copyright (C) 2008 Novell, Inc.

It would be nice to list some names, too.

> --- /dev/null
> +++ b/kernel/rtmutex_adaptive.h
> @@ -0,0 +1,134 @@
> +/*
> + * Adaptive RT lock support
> + *
> + * There are pros and cons when deciding between the two basic forms of
> + * locking primitives (spinning vs sleeping).  Without going into great
> + * detail on either one, we note that spinlocks have the advantage of
> + * lower overhead for short hold locks.  However, they also have a
> + * con in that they create indeterminate latencies since preemption
> + * must traditionally be disabled while the lock is held (to prevent deadlock).
> + *
> + * We want to avoid non-deterministic critical sections in -rt. Therefore,
> + * when realtime is enabled, most contexts are converted to threads, and
> + * likewise most spinlock_ts are converted to sleepable rt-mutex derived
> + * locks.  This allows the holder of the lock to remain fully preemptible,
> + * thus reducing a major source of latencies in the kernel.
> + *
> + * However, converting what was once a true spinlock into a sleeping lock
> + * may also decrease performance since the locks will now sleep under
> + * contention.  Since the fundamental lock used to be a spinlock, it is
> + * highly likely that it was used in a short-hold path and that release
> + * is imminent.  Therefore sleeping only serves to cause context-thrashing.
> + *
> + * Adaptive RT locks use a hybrid approach to solve the problem.  They
> + * spin when possible, and sleep when necessary (to avoid deadlock, etc).
> + * This significantly improves many areas of the performance of the -rt
> + * kernel.
> + *
> + * Copyright (C) 2008 Novell, Inc.,
> + *          Sven Dietrich, Peter Morreale, and Gregory Haskins

GPL?

> +/*
> + * Adaptive-rtlocks will busywait when possible, and sleep only if
> + * necessary. Note that the busyloop looks racy, and it is....but we do
> + * not care. If we lose any races it simply means that we spin one more
> + * time before seeing that we need to break-out on the next iteration.
> + *
> + * We realize this is a relatively large function to inline, but note that
> + * it is only instantiated 1 or 2 times max, and it makes a measurable
> + * performance different to avoid the call.
> + *
> + * Returns 1 if we should sleep
> + *
> + */

Kerneldoc?

							Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

  reply	other threads:[~2008-02-22 19:21 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-21 15:26 [PATCH [RT] 00/14] RFC - adaptive real-time locks Gregory Haskins
2008-02-21 15:26 ` [PATCH [RT] 01/14] spinlocks: fix preemption feature when PREEMPT_RT is enabled Gregory Haskins
2008-02-21 15:26 ` [PATCH [RT] 02/14] spinlock: make preemptible-waiter feature a specific config option Gregory Haskins
2008-02-22 19:09   ` Pavel Machek
2008-02-21 15:26 ` [PATCH [RT] 03/14] x86: FIFO ticket spinlocks Gregory Haskins
2008-02-21 15:26 ` [PATCH [RT] 04/14] disable PREEMPT_SPINLOCK_WAITERS when x86 ticket/fifo spins are in use Gregory Haskins
2008-02-21 15:26 ` [PATCH [RT] 05/14] rearrange rt_spin_lock sleep Gregory Haskins
2008-02-22 13:29   ` Gregory Haskins
2008-02-22 13:35     ` Steven Rostedt
2008-02-22 13:40       ` Peter Zijlstra
2008-02-22 13:35     ` Ingo Molnar
2008-02-22 13:43       ` Steven Rostedt
2008-02-22 13:46       ` Steven Rostedt
2008-02-21 15:26 ` [PATCH [RT] 06/14] optimize rt lock wakeup Gregory Haskins
2008-02-21 15:27 ` [PATCH [RT] 07/14] adaptive real-time lock support Gregory Haskins
2008-02-22 19:14   ` Pavel Machek [this message]
2008-02-21 15:27 ` [PATCH [RT] 08/14] add a loop counter based timeout mechanism Gregory Haskins
2008-02-21 16:41   ` Andi Kleen
2008-02-21 17:02     ` Gregory Haskins
2008-02-21 17:04     ` Peter W. Morreale
2008-02-21 17:06     ` Sven-Thorsten Dietrich
2008-02-22 19:08     ` Paul E. McKenney
2008-02-22 19:19       ` Bill Huey (hui)
2008-02-22 19:21         ` Bill Huey (hui)
2008-02-22 19:43           ` Paul E. McKenney
2008-02-22 19:55             ` Sven-Thorsten Dietrich
2008-02-22 20:23               ` Paul E. McKenney
2008-02-22 22:03                 ` Gregory Haskins
2008-02-23 12:31                   ` Andi Kleen
2008-02-23 16:32                     ` Paul E. McKenney
2008-02-25 23:52                   ` Sven-Thorsten Dietrich
2008-02-22 20:36               ` Peter W. Morreale
2008-02-23  7:36                 ` Sven-Thorsten Dietrich
2008-02-22 20:15             ` Peter W. Morreale
2008-02-21 15:27 ` [PATCH [RT] 09/14] adaptive mutexes Gregory Haskins
2008-02-21 15:27 ` [PATCH [RT] 10/14] adjust pi_lock usage in wakeup Gregory Haskins
2008-02-21 16:48   ` Steven Rostedt
2008-02-21 17:09     ` Peter W. Morreale
2008-02-21 15:27 ` [PATCH [RT] 11/14] optimize the !printk fastpath through the lock acquisition Gregory Haskins
2008-02-21 16:36   ` Andi Kleen
2008-02-21 16:47     ` Gregory Haskins
2008-02-22 19:18   ` Pavel Machek
2008-02-22 22:20     ` Gregory Haskins
2008-02-23  0:43       ` Bill Huey (hui)
2008-02-25  5:20         ` Gregory Haskins
2008-02-25  6:21           ` Bill Huey (hui)
2008-02-25  9:02             ` Bill Huey (hui)
2008-02-21 15:27 ` [PATCH [RT] 12/14] remove the extra call to try_to_take_lock Gregory Haskins
2008-02-21 15:27 ` [PATCH [RT] 13/14] allow rt-mutex lock-stealing to include lateral priority Gregory Haskins
2008-02-21 15:27 ` [PATCH [RT] 14/14] sysctl for runtime-control of lateral mutex stealing Gregory Haskins
2008-02-21 16:05 ` [PATCH [RT] 00/14] RFC - adaptive real-time locks Gregory Haskins
2008-02-21 21:24 ` Ingo Molnar
2008-02-21 21:33   ` Bill Huey (hui)
     [not found]     ` <20080221214219.GA27209@elte.hu>
2008-02-21 21:56       ` Gregory Haskins
2008-02-21 22:53       ` Bill Huey (hui)
2008-02-21 21:40   ` Gregory Haskins
2008-02-21 22:12   ` Peter W. Morreale
2008-02-21 22:42     ` Peter W. Morreale
2008-02-23  8:03   ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080222191419.GD6060@ucw.cz \
    --to=pavel@ucw.cz \
    --cc=a.p.zijlstra@chello.nl \
    --cc=ak@suse.de \
    --cc=bill.huey@gmail.com \
    --cc=cminyard@mvista.com \
    --cc=dsaxena@plexity.net \
    --cc=dsingleton@mvista.com \
    --cc=dwalker@mvista.com \
    --cc=ghaskins@novell.com \
    --cc=gregkh@suse.de \
    --cc=kevin@hilman.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mkohari@novell.com \
    --cc=npiggin@suse.de \
    --cc=pmorreale@novell.com \
    --cc=rostedt@goodmis.org \
    --cc=sdietrich@novell.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.