From: "Luck, Tony" <tony.luck@intel.com> To: <dhowells@redhat.com>, "Andrew Morton" <akpm@osdl.org> Cc: "Mark Lord" <lkml@rtr.ca>, <tglx@linutronix.de>, <alan@lxorguk.ukuu.org.uk>, <pj@sgi.com>, <mingo@elte.hu>, <hch@infradead.org>, <torvalds@osdl.org>, <arjan@infradead.org>, <matthew@wil.cx>, <linux-kernel@vger.kernel.org>, <linux-arch@vger.kernel.org> Subject: RE: [PATCH 1/19] MUTEX: Introduce simple mutex implementation Date: Thu, 15 Dec 2005 09:45:10 -0800 [thread overview] Message-ID: <B8E391BBE9FE384DAA4C5C003888BE6F0535A549@scsmsx401.amr.corp.intel.com> (raw) Okay, spinlocks are null ops when CONFIG_SMP and CONFIG_DEBUG_SPINLOCK are both disabled, but you still have to disable interrupts, and that slows things down, sometimes quite appreciably. It is, for example, something I really want to avoid doing on FRV as it takes a *lot* of cycles. There was a USENIX paper a couple of decades ago that described how to do a fast s/w disable of interrupts on machines where really disabling interrupts was expensive. The rough gist was that the spl[1-7]() functions would just set a flag in memory to hold the desired interrupt mask. If an interrupt actually occurred when it was s/w blocked, the handler would set a pending flag, and just rfi with interrupts disabled. Then the splx() code checked to see whether there was a pending interrupt and dealt with it if there was. -Tony
WARNING: multiple messages have this Message-ID (diff)
From: "Luck, Tony" <tony.luck@intel.com> To: dhowells@redhat.com, Andrew Morton <akpm@osdl.org> Cc: Mark Lord <lkml@rtr.ca>, tglx@linutronix.de, alan@lxorguk.ukuu.org.uk, pj@sgi.com, mingo@elte.hu, hch@infradead.org, torvalds@osdl.org, arjan@infradead.org, matthew@wil.cx, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org Subject: RE: [PATCH 1/19] MUTEX: Introduce simple mutex implementation Date: Thu, 15 Dec 2005 09:45:10 -0800 [thread overview] Message-ID: <B8E391BBE9FE384DAA4C5C003888BE6F0535A549@scsmsx401.amr.corp.intel.com> (raw) Okay, spinlocks are null ops when CONFIG_SMP and CONFIG_DEBUG_SPINLOCK are both disabled, but you still have to disable interrupts, and that slows things down, sometimes quite appreciably. It is, for example, something I really want to avoid doing on FRV as it takes a *lot* of cycles. There was a USENIX paper a couple of decades ago that described how to do a fast s/w disable of interrupts on machines where really disabling interrupts was expensive. The rough gist was that the spl[1-7]() functions would just set a flag in memory to hold the desired interrupt mask. If an interrupt actually occurred when it was s/w blocked, the handler would set a pending flag, and just rfi with interrupts disabled. Then the splx() code checked to see whether there was a pending interrupt and dealt with it if there was. -Tony
next reply other threads:[~2005-12-15 17:45 UTC|newest] Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top 2005-12-15 17:45 Luck, Tony [this message] 2005-12-15 17:45 ` [PATCH 1/19] MUTEX: Introduce simple mutex implementation Luck, Tony 2005-12-15 18:00 ` David Howells 2005-12-15 18:48 ` James Bottomley 2005-12-15 20:38 ` Jeff Dike 2005-12-15 23:45 ` Stephen Rothwell -- strict thread matches above, loose matches on Subject: below -- 2005-12-16 12:49 linux 2005-12-16 15:24 ` David Howells 2005-12-16 18:03 ` linux 2005-12-15 13:58 linux 2005-12-15 16:15 ` Linus Torvalds 2005-12-15 16:52 ` Erik Mouw 2005-12-15 17:23 ` Dick Streefland 2005-12-16 12:17 ` Erik Mouw 2005-12-17 10:59 ` Sander 2005-12-17 14:14 ` Douglas McNaught 2005-12-17 15:09 ` Sander 2005-12-19 10:44 ` Erik Mouw 2005-12-15 19:02 ` Nikita Danilov 2005-12-15 19:09 ` linux 2005-12-15 19:52 ` Linus Torvalds 2005-12-16 1:33 ` linux 2005-12-15 21:18 ` Steven Rostedt 2005-12-15 20:52 ` Steven Rostedt 2005-12-12 23:45 David Howells 2005-12-13 0:13 ` Nick Piggin 2005-12-13 0:19 ` Nick Piggin 2005-12-13 0:19 ` Andrew Morton 2005-12-13 7:54 ` Ingo Molnar 2005-12-13 7:58 ` Andi Kleen 2005-12-13 8:42 ` Andrew Morton 2005-12-13 8:49 ` Andi Kleen 2005-12-13 9:01 ` Andrew Morton 2005-12-13 9:01 ` Andrew Morton 2005-12-13 9:02 ` Andrew Morton 2005-12-13 10:07 ` Jakub Jelinek 2005-12-13 10:11 ` Andi Kleen 2005-12-13 10:15 ` Jakub Jelinek 2005-12-13 10:25 ` Andrew Morton 2005-12-13 10:25 ` Andrew Morton 2005-12-14 10:46 ` Russell King 2005-12-13 9:05 ` Andi Kleen 2005-12-13 9:15 ` Andrew Morton 2005-12-13 9:15 ` Andrew Morton 2005-12-13 9:24 ` Andi Kleen 2005-12-13 9:44 ` Andrew Morton 2005-12-13 9:44 ` Andrew Morton 2005-12-13 9:49 ` Andi Kleen 2005-12-13 10:28 ` Andreas Schwab 2005-12-13 10:30 ` Andi Kleen 2005-12-13 12:33 ` Matthew Wilcox 2005-12-13 22:18 ` Adrian Bunk 2005-12-13 22:25 ` Andi Kleen 2005-12-13 22:32 ` Adrian Bunk 2005-12-13 9:11 ` Ingo Molnar 2005-12-13 9:04 ` Christoph Hellwig 2005-12-13 9:13 ` Ingo Molnar 2005-12-13 10:11 ` Jakub Jelinek 2005-12-13 10:19 ` Christoph Hellwig 2005-12-13 10:27 ` Ingo Molnar 2005-12-15 4:53 ` Miles Bader 2005-12-15 5:05 ` Nick Piggin 2005-12-13 9:09 ` Ingo Molnar 2005-12-13 9:21 ` Andi Kleen 2005-12-13 16:16 ` Linus Torvalds 2005-12-13 9:03 ` Christoph Hellwig 2005-12-13 9:14 ` Andrew Morton 2005-12-13 9:14 ` Andrew Morton 2005-12-13 9:21 ` Christoph Hellwig 2005-12-13 8:00 ` Arjan van de Ven 2005-12-13 9:03 ` Ingo Molnar 2005-12-13 9:09 ` Andi Kleen 2005-12-13 9:34 ` Ingo Molnar 2005-12-13 14:33 ` Mark Lord 2005-12-13 14:45 ` Arjan van de Ven 2005-12-13 9:37 ` Ingo Molnar 2005-12-13 9:19 ` Arjan van de Ven 2005-12-13 9:02 ` Christoph Hellwig 2005-12-13 9:39 ` Ingo Molnar 2005-12-13 10:00 ` Ingo Molnar 2005-12-13 17:40 ` Paul Jackson 2005-12-13 18:34 ` David Howells 2005-12-13 22:31 ` Paul Jackson 2005-12-13 22:31 ` Paul Jackson 2005-12-14 11:02 ` David Howells 2005-12-14 11:12 ` David Howells 2005-12-14 11:18 ` Alan Cox 2005-12-14 12:35 ` David Howells 2005-12-14 12:35 ` David Howells 2005-12-14 13:58 ` Thomas Gleixner 2005-12-14 23:40 ` Mark Lord 2005-12-14 23:54 ` Andrew Morton 2005-12-15 13:41 ` Nikita Danilov 2005-12-15 14:56 ` Alan Cox 2005-12-15 15:52 ` Nikita Danilov 2005-12-15 16:50 ` Christopher Friesen 2005-12-15 20:53 ` Steven Rostedt 2005-12-15 15:55 ` David Howells 2005-12-15 16:22 ` linux-os (Dick Johnson) 2005-12-15 16:22 ` linux-os (Dick Johnson) 2005-12-15 16:28 ` Linus Torvalds 2005-12-15 17:04 ` Thomas Gleixner 2005-12-15 17:09 ` Paul Jackson 2005-12-15 17:17 ` David Howells 2005-12-15 16:51 ` David Howells 2005-12-15 16:56 ` Paul Jackson 2005-12-15 16:56 ` Paul Jackson 2005-12-15 17:28 ` David Howells 2005-12-15 17:48 ` Linus Torvalds 2005-12-15 18:20 ` Nikita Danilov 2005-12-15 20:58 ` Steven Rostedt 2005-12-15 19:21 ` Andrew Morton 2005-12-15 19:38 ` Linus Torvalds 2005-12-15 20:28 ` Steven Rostedt 2005-12-15 20:32 ` Geert Uytterhoeven 2005-12-16 21:41 ` Thomas Gleixner 2005-12-16 21:41 ` Linus Torvalds 2005-12-16 22:06 ` Thomas Gleixner 2005-12-16 22:19 ` Linus Torvalds 2005-12-16 22:32 ` Steven Rostedt 2005-12-16 22:42 ` Thomas Gleixner 2005-12-16 22:41 ` Linus Torvalds 2005-12-16 22:49 ` Steven Rostedt 2005-12-16 23:29 ` Thomas Gleixner 2005-12-17 0:29 ` Joe Korty 2005-12-17 1:00 ` Linus Torvalds 2005-12-17 3:13 ` Steven Rostedt 2005-12-17 7:34 ` Linus Torvalds 2005-12-17 23:43 ` Matthew Wilcox 2005-12-18 0:05 ` Lee Revell 2005-12-18 0:21 ` Matthew Wilcox 2005-12-18 1:25 ` Lee Revell 2005-12-22 12:27 ` Bill Huey 2005-12-19 16:08 ` Ingo Molnar 2005-12-22 12:40 ` Bill Huey 2005-12-22 12:45 ` Bill Huey 2005-12-19 23:46 ` Keith Owens 2005-12-15 14:41 ` Steven Rostedt 2005-12-14 23:57 ` Thomas Gleixner 2005-12-14 23:57 ` Mark Lord 2005-12-15 0:10 ` Thomas Gleixner 2005-12-15 2:46 ` Linus Torvalds 2005-12-15 15:53 ` David Howells 2005-12-15 15:37 ` David Howells 2005-12-15 19:28 ` Andrew Morton 2005-12-15 19:28 ` Andrew Morton 2005-12-15 20:18 ` Andrew Morton 2005-12-15 21:28 ` Steven Rostedt 2005-12-16 22:02 ` Thomas Gleixner 2005-12-16 10:45 ` David Howells 2005-12-13 9:55 ` Ingo Molnar 2005-12-13 0:30 ` Arnd Bergmann 2005-12-13 0:57 ` Daniel Walker 2005-12-13 3:23 ` Steven Rostedt 2005-12-13 2:57 ` Mark Lord 2005-12-13 3:17 ` Steven Rostedt 2005-12-13 9:06 ` Christoph Hellwig 2005-12-13 9:54 ` David Howells 2005-12-13 10:13 ` Ingo Molnar 2005-12-13 10:34 ` Ingo Molnar 2005-12-13 10:37 ` Ingo Molnar 2005-12-13 12:47 ` Oliver Neukum 2005-12-13 13:09 ` Alan Cox 2005-12-13 13:13 ` Matthew Wilcox 2005-12-13 14:04 ` Alan Cox 2005-12-13 13:24 ` Oliver Neukum 2005-12-14 1:00 ` Nick Piggin 2005-12-14 10:54 ` David Howells 2005-12-14 11:17 ` Nick Piggin 2005-12-14 11:46 ` David Howells 2005-12-14 21:23 ` Nick Piggin 2005-12-16 12:00 ` David Howells 2005-12-16 13:16 ` Nick Piggin 2005-12-16 15:53 ` David Howells 2005-12-16 23:41 ` Nick Piggin 2005-12-16 16:02 ` David Howells 2005-12-13 10:48 ` David Howells 2005-12-13 12:39 ` Matthew Wilcox 2005-12-13 10:54 ` Ingo Molnar 2005-12-13 11:23 ` David Howells 2005-12-13 11:24 ` David Howells 2005-12-13 13:45 ` Ingo Molnar 2005-12-13 11:34 ` David Howells 2005-12-13 13:05 ` Alan Cox 2005-12-13 13:15 ` Alan Cox 2005-12-13 23:21 ` Nikita Danilov 2005-12-13 13:32 ` David Howells 2005-12-13 14:00 ` Alan Cox 2005-12-13 14:35 ` Christopher Friesen 2005-12-13 14:44 ` Arjan van de Ven 2005-12-13 14:59 ` Christopher Friesen 2005-12-13 15:23 ` David Howells 2005-12-15 5:24 ` Miles Bader 2005-12-13 15:39 ` David Howells 2005-12-13 16:10 ` Alan Cox 2005-12-14 10:29 ` Arjan van de Ven 2005-12-14 11:03 ` Arjan van de Ven 2005-12-14 11:03 ` Alan Cox 2005-12-14 11:08 ` Arjan van de Ven 2005-12-14 11:24 ` Alan Cox 2005-12-14 11:35 ` Andrew Morton 2005-12-14 11:44 ` Arjan van de Ven 2005-12-14 11:52 ` Andi Kleen 2005-12-14 11:55 ` Arjan van de Ven 2005-12-14 11:57 ` David Howells 2005-12-14 12:19 ` Jakub Jelinek 2005-12-16 1:54 ` Nick Piggin 2005-12-16 11:02 ` David Howells 2005-12-16 13:01 ` Nick Piggin 2005-12-16 13:21 ` Russell King 2005-12-16 13:41 ` Nick Piggin 2005-12-16 13:46 ` Linh Dang 2005-12-16 14:31 ` Russell King 2005-12-16 15:24 ` Linh Dang 2005-12-16 15:35 ` Nick Piggin 2005-12-16 15:40 ` Kyle Moffett 2005-12-16 15:49 ` Linh Dang 2005-12-16 15:46 ` David Howells 2005-12-16 15:58 ` Russell King 2005-12-17 15:57 ` Nikita Danilov 2005-12-16 16:28 ` Linus Torvalds 2005-12-16 11:30 ` David Howells 2005-12-16 16:33 ` Linus Torvalds 2005-12-16 16:33 ` Linus Torvalds 2005-12-16 22:23 ` David S. Miller 2005-12-16 22:38 ` Linus Torvalds 2005-12-16 22:53 ` David S. Miller 2005-12-17 0:41 ` Jesse Barnes 2005-12-17 7:10 ` David S. Miller 2005-12-17 7:40 ` Linus Torvalds 2005-12-17 17:22 ` Jesse Barnes 2005-12-17 17:19 ` Jesse Barnes 2005-12-17 22:38 ` Richard Henderson 2005-12-17 23:05 ` David S. Miller 2005-12-14 12:17 ` Christoph Hellwig 2005-12-14 11:42 ` Arjan van de Ven 2005-12-14 8:31 ` Ingo Molnar 2005-12-13 20:04 ` Steven Rostedt 2005-12-13 21:03 ` David Howells
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=B8E391BBE9FE384DAA4C5C003888BE6F0535A549@scsmsx401.amr.corp.intel.com \ --to=tony.luck@intel.com \ --cc=akpm@osdl.org \ --cc=alan@lxorguk.ukuu.org.uk \ --cc=arjan@infradead.org \ --cc=dhowells@redhat.com \ --cc=hch@infradead.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lkml@rtr.ca \ --cc=matthew@wil.cx \ --cc=mingo@elte.hu \ --cc=pj@sgi.com \ --cc=tglx@linutronix.de \ --cc=torvalds@osdl.org \ /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: linkBe 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.