public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: paul@linuxaudiosystems.com, rlrevell@joe-job.com,
	linux-audio-dev@music.columbia.edu, mingo@elte.hu,
	arjanv@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch
Date: Wed, 14 Jul 2004 01:18:03 +0200	[thread overview]
Message-ID: <20040713231803.GP974@dualathlon.random> (raw)
In-Reply-To: <20040713160628.596b96a3.akpm@osdl.org>

On Tue, Jul 13, 2004 at 04:06:28PM -0700, Andrew Morton wrote:
> Andrea Arcangeli <andrea@suse.de> wrote:
> >
> > What I'm doing is basically to replace all might_sleep with cond_resched
> 
> I cannot see a lot of point in that.  They are semantically different
> things and should look different in the source.
> 
> And it's currently OK to add a might_sleep() to (say) an inline path which
> is expended a zillion times because we know it'll go away for production
> builds.  If those things become cond_resched() calls instead, the code
> increase will be permanent.

this is exactly why I'm making this change: so you can still add
might_sleep in a inline path expected to run a zillion times. With
Ingo's change you would be doing cond_sched internally to might_sleep, I
do the other way around so might_sleep remains a debugging statement.

As Ingo basically showed (and I agree), all current might_sleep seems
suitable to be converted to cond_resched. I checked all them and there's
none that seems to be called in a loop for no good reason. the ones in
the semaphore are quite nice too since it's better to schedule right
before taking the semaphore than after getting it. The one in the
semaphore and in the copy-user are the only place where preempt seems to
be lower overhead but in most other places a spinlock is being taken
very near to the cond_resched.

> > cond_resched_lock is another story of course.
> 
> cond_resched_lock() doesn't work on SMP.  I'll probably be removing it in
> favour of unconditionally dropping the lock every N times around the loop,
> to allow the other CPU (the one with need_resched() true) to get in there
> and take it.
> 
> And please let me repeat: preemption is the way in which we wish to provide
> low-latency.  At this time, patches which sprinkle cond_resched() all over
> the place are unwelcome.  After 2.7 forks we can look at it again.

I think it's a mistake to believe people that leaves preempt off don't
care about lowlatency (this is also why I always keep this change in my
tree)

Index: linux-2.5/mm/memory.c
===================================================================
RCS file: /home/andrea/crypto/cvs/linux-2.5/mm/memory.c,v
retrieving revision 1.178
diff -u -p -r1.178 memory.c
--- linux-2.5/mm/memory.c	30 Jun 2004 02:21:13 -0000	1.178
+++ linux-2.5/mm/memory.c	13 Jul 2004 03:33:45 -0000
@@ -479,20 +479,13 @@ static void unmap_page_range(struct mmu_
 }
 
 /* Dispose of an entire struct mmu_gather per rescheduling point */
-#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT)
+#if defined(CONFIG_SMP)
 #define ZAP_BLOCK_SIZE	(FREE_PTE_NR * PAGE_SIZE)
-#endif
-
+#else
 /* For UP, 256 pages at a time gives nice low latency */
-#if !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT)
 #define ZAP_BLOCK_SIZE	(256 * PAGE_SIZE)
 #endif
 
-/* No preempt: go for improved straight-line efficiency */
-#if !defined(CONFIG_PREEMPT)
-#define ZAP_BLOCK_SIZE	(1024 * PAGE_SIZE)
-#endif
-
 /**
  * unmap_vmas - unmap a range of memory covered by a list of vma's
  * @tlbp: address of the caller's struct mmu_gather


having a CONFIG_PREEMPT in the above code, means you believe the people
who leaves preempt off don't care about lowlatency and that's really not
true. Ingo's effort as well shows people care about lowlatency even with
preempt off.

The people who leaves preempt off simply thinks they can get the same
lowlatency but with less overhead in the locks (though there will be
cond_resched in the semaphore, but semaphore is less performance
critical than the spinlock normally, and semaphore is usually hold for a
longer period of time, short critical sections would better go with the
spinlock anyways to avoid overscheduling).

> I've yet to go through Arjan's patch - I suspect a lot of it is not needed.

Arjan's or Ingo's? I've seen Ingo's patch but maybe I missed Arjan's one.

  reply	other threads:[~2004-07-13 23:18 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 [this message]
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
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=20040713231803.GP974@dualathlon.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox