All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@osdl.org>,
	paul@linuxaudiosystems.com, rlrevell@joe-job.com,
	linux-audio-dev@music.columbia.edu, arjanv@redhat.com,
	linux-kernel@vger.kernel.org
Subject: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch
Date: Fri, 3 Sep 2004 00:03:01 +0200	[thread overview]
Message-ID: <20040902220301.GA18212@x30.random> (raw)
In-Reply-To: <20040719115952.GA13564@elte.hu>

Hi Ingo,

On Mon, Jul 19, 2004 at 01:59:52PM +0200, Ingo Molnar wrote:
> yes. Btw., i'm not sure whether you've noticed but last week i've also
> created a 'clean' variant of the patch. The latest version against -mm
> is:
> 
>  http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-clean-2.6.7-mm7-H4
> 
> this one doesnt have any of the debugging/development helpers and
> switches. I have still made it a .config option. Note how minimal the
> patch became this way.

as said in a part of a previous email might_sleep() just like BUG() can
be defined to noop.

cond_resched() is the API to use.

if you're scared that there are too many cond_resched (I'm not scared
and people should enable them anyways if they make a difference, they
still should be less than the number of spin_unlocks with preempt
enabled), then you should add a cond_resched_costly and add a config
option that turns it off. I think you don't even need to add the config
option, you can define cond_resched_costly as cond_resched, and to just
use it to mark the places that might be expensive.

Then you should change cond_resched to call might_sleep in the else
branch (as I discussed with Andrew last month).

this was the core of the patch I was playing with last month which
should be still valid and it solves the preprocessor issues with
cond_resched (and I hope the bug was not in the below code ;)

could you modify your patch accordingly? thanks!

Index: linux-2.5/include/linux/kernel.h
===================================================================
RCS file: /home/andrea/crypto/cvs/linux-2.5/include/linux/kernel.h,v
retrieving revision 1.53
diff -u -p -r1.53 kernel.h
--- linux-2.5/include/linux/kernel.h	27 Jun 2004 17:55:19 -0000	1.53
+++ linux-2.5/include/linux/kernel.h	13 Jul 2004 02:19:43 -0000
@@ -48,12 +48,23 @@ struct completion;
 #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
 void __might_sleep(char *file, int line);
 #define might_sleep() __might_sleep(__FILE__, __LINE__)
-#define might_sleep_if(cond) do { if (unlikely(cond)) might_sleep(); } while (0)
 #else
 #define might_sleep() do {} while(0)
-#define might_sleep_if(cond) do {} while (0)
 #endif
 
+#define need_resched() unlikely(test_thread_flag(TIF_NEED_RESCHED))
+
+extern void __cond_resched(void);
+#define cond_resched()				\
+do {						\
+	if (need_resched())			\
+		__cond_resched();		\
+	else					\
+		might_sleep();			\
+} while (0)
+
+#define cond_resched_if(cond) do { if (unlikely(cond)) cond_resched(); } while (0)
+
 #define abs(x) ({				\
 		int __x = (x);			\
 		(__x < 0) ? -__x : __x;		\
Index: linux-2.5/include/linux/sched.h
===================================================================
RCS file: /home/andrea/crypto/cvs/linux-2.5/include/linux/sched.h,v
retrieving revision 1.245
diff -u -p -r1.245 sched.h
--- linux-2.5/include/linux/sched.h	2 Jul 2004 17:31:23 -0000	1.245
+++ linux-2.5/include/linux/sched.h	13 Jul 2004 02:33:12 -0000
@@ -1012,18 +1013,6 @@ static inline int signal_pending(struct 
 {
 	return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING));
 }
-  
-static inline int need_resched(void)
-{
-	return unlikely(test_thread_flag(TIF_NEED_RESCHED));
-}
-
-extern void __cond_resched(void);
-static inline void cond_resched(void)
-{
-	if (need_resched())
-		__cond_resched();
-}
 
 /*
  * cond_resched_lock() - if a reschedule is pending, drop the given lock,

  reply	other threads:[~2004-09-02 22:10 UTC|newest]

Thread overview: 271+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-09 18:26 [announce] [patch] Voluntary Kernel Preemption Patch Ingo Molnar
2004-07-09 19:51 ` Christoph Hellwig
2004-07-09 23:50   ` Andrea Arcangeli
2004-07-10  0:52     ` Andrea Arcangeli
2004-07-10  1:02       ` Dave Jones
2004-07-12 10:17       ` Takashi Iwai
2004-07-12 19:36         ` Andrea Arcangeli
2004-07-13  7:43           ` Takashi Iwai
2004-07-10  6:32     ` Arjan van de Ven
2004-07-10  7:57     ` Ingo Molnar
2004-07-10  8:10       ` ismail dönmez
2004-07-10  8:28         ` Ingo Molnar
2004-07-19 10:36           ` [patch] voluntary-preempt 2.6.8-rc2-H4 Ingo Molnar
2004-07-20  1:38             ` Ramón Rey Vicente
2004-07-20  6:02               ` Ingo Molnar
2004-07-10 15:36       ` [announce] [patch] Voluntary Kernel Preemption Patch Andrea Arcangeli
2004-07-10 12:48   ` Ingo Molnar
2004-07-10 15:12     ` Con Kolivas
2004-07-10 15:14       ` Arjan van de Ven
2004-07-10 15:18         ` Con Kolivas
2004-07-11  7:07           ` Zwane Mwaikambo
2004-07-11  7:09             ` Con Kolivas
2004-07-11  7:16             ` [announce] [patch] " Zwane Mwaikambo
2004-07-11  9:18           ` Ingo Molnar
2004-07-11  9:29             ` Con Kolivas
2004-07-10 16:18       ` [announce] [patch] " Con Kolivas
2004-07-11  6:47         ` [ck] " Ingo Molnar
2004-07-11  6:59           ` Con Kolivas
2004-07-11 11:18             ` R. J. Wysocki
2004-07-11  7:09           ` [ck] Re: [announce] [patch] " Zwane Mwaikambo
2004-07-11 14:27           ` Con Kolivas
2004-07-11 14:29             ` Con Kolivas
2004-07-11 14:38             ` Ingo Molnar
2004-07-11 17:29               ` André Goddard Rosa
2004-07-11 17:49                 ` Grzegorz Kulewski
2004-07-11 21:20                   ` Con Kolivas
2004-07-11 21:25                     ` Grzegorz Kulewski
2004-07-11 20:17               ` Ingo Molnar
2004-07-12  8:23                 ` Voluntary Preemption + concurent games Aivils
2004-07-12  9:51                   ` Con Kolivas
2004-07-12 10:45                     ` Lenar Lõhmus
2004-07-12 11:52                     ` Aivils
2004-07-12 13:35                   ` Nick Piggin
2004-07-12 14:15               ` [ck] Re: [announce] [patch] Voluntary Kernel Preemption Patch Chris Friesen
2004-07-12 14:19                 ` Ingo Molnar
2004-07-10 15:58     ` Andrea Arcangeli
2004-07-09 21:13 ` Redeeman
2004-07-10  8:02   ` Ingo Molnar
2004-07-10  8:50     ` Ingo Molnar
2004-07-10 10:55       ` ismail dönmez
2004-07-10 11:26         ` Arjan van de Ven
2004-07-10 12:01           ` ismail dönmez
2004-07-10 12:05             ` Arjan van de Ven
2004-07-10 12:09             ` Nick Piggin
2004-07-10 12:35         ` Ingo Molnar
2004-07-10 12:58           ` ismail dönmez
2004-07-10 13:55             ` Ingo Molnar
2004-07-10 14:45               ` Nick Piggin
2004-07-10 14:57                 ` ismail dönmez
2004-07-12 10:48         ` Takashi Iwai
2004-07-12 13:09           ` ismail dönmez
2004-07-12 13:14             ` Takashi Iwai
2004-07-09 21:36 ` Torrey Hoffman
2004-07-10  8:23   ` Ingo Molnar
2004-07-10  1:00 ` Con Kolivas
2004-07-10  1:04   ` Dave Jones
2004-07-10 12:55     ` Ingo Molnar
2004-07-11  5:25 ` Andrew Morton
2004-07-11  9:32   ` Ingo Molnar
2004-07-11  9:45     ` Andrew Morton
2004-07-11  9:50       ` Ingo Molnar
2004-07-11  9:58         ` Andrew Morton
2004-07-11 10:30           ` Ingo Molnar
2004-07-11 10:42             ` Andrew Morton
2004-07-11 10:59               ` Arjan van de Ven
2004-07-11 11:13                 ` Andrew Morton
2004-07-11 18:07                   ` Mikulas Patocka
2004-07-12  7:08                 ` Zwane Mwaikambo
2004-07-19 10:20                   ` Ingo Molnar
2004-07-11 23:12             ` Robert Love
2004-07-12 22:40       ` Bill Davidsen
2004-07-12 13:24   ` John Stoffel
2004-07-12 22:56   ` [linux-audio-dev] " Lee Revell
2004-07-12 23:31     ` Andrew Morton
2004-07-12 23:58       ` Paul Davis
2004-07-13  0:06         ` Andrew Morton
2004-07-13  0:21           ` Con Kolivas
2004-07-13  1:01           ` [linux-audio-dev] Re: [announce] [patch] " Lee Revell
2004-07-13  7:49             ` Takashi Iwai
2004-07-13  8:12               ` Lee Revell
2004-07-13  0:01       ` Paul Davis
2004-07-13  0:08         ` Andrew Morton
2004-07-13 16:25           ` Andrea Arcangeli
2004-07-13 18:42             ` Lee Revell
2004-07-13 21:29               ` Andrew Morton
2004-07-13 21:45                 ` Lee Revell
2004-07-14  8:51                   ` Takashi Iwai
2004-07-14  9:36                     ` Lee Revell
2004-07-14 10:48                       ` Takashi Iwai
2004-07-14 14:52                         ` Lee Revell
2004-07-14 16:29                           ` Lee Revell
2004-07-14 10:26                     ` Benno Senoner
2004-07-13 18:48             ` Andrew Morton
2004-07-13 21:38               ` Andrea Arcangeli
2004-07-13 21:54                 ` Andrew Morton
2004-07-13 22:01                   ` Andrea Arcangeli
2004-07-13 22:25                     ` Andrew Morton
2004-07-13 22:37                       ` Andrea Arcangeli
2004-07-13 22:44                         ` Andrew Morton
2004-07-13 22:53                           ` Andrea Arcangeli
2004-07-13 23:06                             ` Andrew Morton
2004-07-13 23:18                               ` Andrea Arcangeli
2004-07-13 23:32                                 ` Andrew Morton
2004-07-14  0:40                                   ` Andrea Arcangeli
2004-07-14  0:45                                     ` Andrew Morton
2004-07-19 11:59                                 ` Ingo Molnar
2004-09-02 22:03                                   ` Andrea Arcangeli [this message]
2004-09-02 22:20                                     ` Andrew Morton
2004-09-02 23:03                                       ` Ingo Molnar
2004-09-02 23:21                                         ` Ingo Molnar
2004-07-13  7:58         ` Takashi Iwai
2004-07-13  0:17       ` Lee Revell
2004-07-13  0:46         ` Andrew Morton
2004-07-13  2:52           ` Lee Revell
2004-07-13  3:59             ` Andrew Morton
2004-07-13  7:57               ` Lee Revell
2004-07-19 10:48                 ` Ingo Molnar
2004-07-19 11:34                   ` Ingo Molnar
2004-07-20  5:38                   ` Lee Revell
2004-07-20  6:12                     ` Ingo Molnar
2004-07-20  6:59                       ` Lee Revell
2004-07-20  7:11                         ` Ingo Molnar
     [not found]                           ` <200407202011.20558.musical_snake@gmx.de>
2004-07-20 19:56                             ` Lee Revell
2004-07-20 23:49                               ` Benno Senoner
2004-07-21  0:32                                 ` [linux-audio-dev] " Lee Revell
2004-07-21  1:25                                   ` Timothy Miller
2004-07-21 21:38                                     ` Another dumb question about " Timothy Miller
2004-07-24  0:25                                       ` Lee Revell
2004-07-25 20:19                                         ` Timothy Miller
2004-07-25 20:13                                           ` Lee Revell
2004-07-21 10:53                                   ` [linux-audio-dev] Re: [announce] [patch] " Florian Schmidt
2004-07-21 11:18                                     ` Thomas Charbonnel
2004-07-21 12:04                                       ` pci gfx card / jack xruns / pci latencies (was: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch) Florian Schmidt
2004-07-21 17:49                                     ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Fernando Pablo Lopez-Lezcano
2004-07-22 22:25                                     ` Andrew McGregor
2004-07-22 23:16                                       ` Florian Schmidt
2004-07-21 14:27                                   ` Benno Senoner
2004-07-20 12:19                       ` Jens Axboe
2004-07-20 21:32                         ` Lee Revell
2004-07-24  4:07                         ` Lee Revell
2004-07-24  5:46                           ` Lee Revell
2004-07-24  6:33                             ` Lee Revell
2004-07-24  6:43                             ` Ingo Molnar
2004-07-24 22:49                               ` Lee Revell
2004-07-24 23:30                                 ` Lee Revell
2004-07-24 11:27                             ` max request size 1024KiB by default? Rudo Thomas
2004-07-24 22:58                               ` Lee Revell
2004-07-26 19:29                                 ` Johannes Stezenbach
2004-07-27  5:15                                 ` Jens Axboe
2004-07-24 12:41                           ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Mark Lord
2004-07-24  4:58                         ` Lee Revell
2004-07-13  8:31               ` Lee Revell
2004-07-13  8:43                 ` Andrew Morton
2004-07-13  8:53                   ` Lee Revell
2004-07-13  9:00                     ` Andrew Morton
2004-07-13  9:21                       ` Takashi Iwai
2004-07-13  9:25                         ` Andrew Morton
2004-07-13  9:33                           ` Takashi Iwai
2004-07-13  9:44                             ` Andrew Morton
2004-07-13  9:23                       ` Lee Revell
2004-07-13  9:29                         ` Andrew Morton
2004-07-13 20:37                           ` Lee Revell
2004-07-13 22:32                           ` Lee Revell
2004-07-13  8:07           ` Takashi Iwai
2004-07-13 22:40           ` Bill Davidsen
2004-07-13 23:47             ` Randy.Dunlap
2004-07-19 10:29           ` Ingo Molnar
2004-07-21  3:27             ` Lee Revell
2004-07-21  7:03               ` Andrew Morton
2004-07-21  4:58                 ` Lee Revell
2004-07-21  5:30                 ` Ingo Molnar
2004-07-21  6:03                   ` Lee Revell
2004-07-21  8:22                     ` Ingo Molnar
2004-07-21  8:52                       ` Ingo Molnar
2004-07-21 11:32                         ` Nick Piggin
2004-07-21 15:44                           ` Ingo Molnar
2004-07-22  4:56                             ` Nick Piggin
2004-07-22  7:07                               ` Ingo Molnar
2004-07-22 10:54                                 ` Nick Piggin
2004-07-22 16:23                                   ` Ingo Molnar
2004-07-22 22:11                                     ` Nick Piggin
2004-07-23  5:47                                       ` Ingo Molnar
2004-07-23  6:45                                         ` Nick Piggin
2004-07-23  6:55                                           ` Ingo Molnar
2004-07-23  7:11                                             ` Nick Piggin
2004-07-23  7:21                                               ` Ingo Molnar
2004-07-23  7:28                                                 ` Nick Piggin
2004-07-21 18:34                           ` Scott Wood
2004-07-21 18:46                             ` Ingo Molnar
2004-07-21 19:56                               ` Scott Wood
2004-07-21 21:08                                 ` Ingo Molnar
2004-07-22  2:47                                   ` Scott Wood
2004-07-21 21:45                                 ` Ingo Molnar
2004-07-22  2:28                                   ` Scott Wood
2004-07-22  7:40                                     ` Ingo Molnar
2004-07-22 18:53                                       ` Scott Wood
2004-07-22 19:45                                         ` Bill Huey
2004-07-28  6:45                                           ` Ingo Molnar
2004-07-28 20:52                                             ` Scott Wood
2004-07-29 18:21                                               ` Ingo Molnar
2004-07-29 18:36                                                 ` Bill Huey
2004-07-29 19:17                                                   ` Scott Wood
2004-07-29 19:25                                                     ` Bill Huey
2004-07-30  2:23                                             ` Eric St-Laurent
2004-07-29 20:26                                       ` Pavel Machek
2004-07-29 20:57                                         ` Scott Wood
2004-07-29 21:00                                           ` Pavel Machek
2004-07-29 21:07                                         ` Ingo Molnar
2004-07-21 22:52                             ` Nick Piggin
2004-07-21 18:32                         ` Scott Wood
2004-07-21 20:40                           ` Ingo Molnar
2004-07-21 18:30                       ` Scott Wood
2004-07-21 18:43                         ` Ingo Molnar
2004-07-22  2:32                           ` Scott Wood
2004-07-22  9:51                             ` Ingo Molnar
2004-07-22 18:36                               ` Scott Wood
2004-07-22 19:11                                 ` Robert Love
2004-07-21 21:00                         ` Scott Wood
2004-07-21 21:18                           ` Ingo Molnar
2004-07-21 22:14                             ` Bill Huey
2004-07-21 22:31                               ` Bill Huey
2004-07-21 22:37                             ` Scott Wood
2004-07-22 10:06                               ` [patch] voluntary-preempt-2.6.8-rc2-H9 Ingo Molnar
2004-07-22 16:00                                 ` scheduling while atomic (Re: voluntary-preempt-2.6.8-rc2-H9) Rudo Thomas
2004-07-22 16:19                                   ` Ingo Molnar
2004-07-22 17:24                                     ` voluntary-preempt I0: sluggish feel Rudo Thomas
2004-07-22 17:52                                       ` Matt Heler
2004-07-22 17:54                                       ` Rudo Thomas
2004-07-22 18:01                                         ` Ingo Molnar
2004-07-22 18:08                                           ` Ingo Molnar
2004-07-22 18:14                                             ` Ingo Molnar
2004-07-22 18:37                                               ` Rudo Thomas
2004-07-23 10:42                                               ` [patch] voluntary-preempt-2.6.8-rc2-I3 Ingo Molnar
2004-07-23 10:58                                                 ` Paolo Ciarrocchi
2004-07-23 11:04                                                   ` Ingo Molnar
2004-07-23 11:28                                                     ` [patch] voluntary-preempt-2.6.8-rc2-I4 Ingo Molnar
2004-07-24  0:16                                                       ` Lee Revell
2004-07-23 11:42                                                     ` [patch] voluntary-preempt-2.6.8-rc2-I3 Paolo Ciarrocchi
2004-07-23 12:00                                                       ` Ingo Molnar
2004-07-23 15:36                                                         ` Dang, Linh [CAR:2X23:EXCH]
2004-07-23 23:48                                                         ` Thomas Charbonnel
2004-07-26 11:10                                                           ` Ingo Molnar
2004-07-26 12:27                                                             ` Thomas Charbonnel
2004-07-22 18:31                                           ` voluntary-preempt I0: sluggish feel Robert Love
2004-07-22 18:32                                           ` Rudo Thomas
2004-07-22 18:38                                             ` Ingo Molnar
2004-07-22 18:00                                       ` Ingo Molnar
2004-07-21  6:07                 ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Lee Revell
2004-07-21 10:14                 ` Roger Luethi
2004-07-13  0:58         ` Jan Depner
2004-07-13  1:00           ` Andrew Morton
2004-07-13  3:31         ` Florin Andrei
2004-07-13  6:31           ` Paul Winkler
2004-07-13 13:26         ` Benno Senoner
2004-07-13 14:50           ` Paul Davis
2004-07-13 19:45           ` Lee Revell
2004-07-13 22:17           ` Bill Davidsen
2004-07-16  4:50   ` Florin Andrei
2004-07-16 12:49     ` Takashi Iwai
2004-07-13 21:53 ` Timothy Miller
  -- strict thread matches above, loose matches on Subject: below --
2004-07-13 15:16 [linux-audio-dev] " Shane Shrybman

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=20040902220301.GA18212@x30.random \
    --to=andrea@suse.de \
    --cc=akpm@osdl.org \
    --cc=arjanv@redhat.com \
    --cc=linux-audio-dev@music.columbia.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paul@linuxaudiosystems.com \
    --cc=rlrevell@joe-job.com \
    /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.