public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: John Kacur <jkacur@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	lkml <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>,
	Clark Williams <williams@redhat.com>
Subject: Re: [PATCH 00/26] Convert locks that can't sleep in -rt to raw_spinlock
Date: Tue, 12 Jan 2010 04:24:29 +0100	[thread overview]
Message-ID: <20100112032428.GE5243@nowhere> (raw)
In-Reply-To: <1263245216-14754-1-git-send-email-jkacur@redhat.com>

On Mon, Jan 11, 2010 at 10:26:30PM +0100, John Kacur wrote:
> Thomas:
> 
> Now that your changes that free up the raw_spinlock name are upstream.
> (described below for other readers)
> 
> http://lwn.net/Articles/365863/
> http://lwn.net/Articles/366608/
> 
> I wanted to forward port the preempt-rt patches that convert locks to
> atomic_spinlocks (rt tree only) to the new scheme.
> 
> The patches below are a result of that effort.
> Please queue these up for 2.6.34 upstream, and please pull for preempt-rt
> 
> You can pull them from
> git://git.kernel.org/pub/scm/linux/kernel/git/jkacur/jk-2.6.git
> jk/v2.6.33-rc3-raw-spinlocks
> 
> Thanks
> 
> John Kacur (25):
>   xtime_lock: Convert atomic_seqlock to raw_seqlock, fix up all users
>   x86: Convert tlbstate_lock to raw_spinlock
>   sched: Convert thread_group_cputimer lock to raw_spinlock
>   x86: Convert ioapic_lock and vector_lock to raw_spinlocks
>   x86: Convert i8259A_lock to raw_spinlock
>   x86: Convert pci_config_lock to raw_spinlock
>   i8253: Convert i8253_lock to raw_spinlock
>   x86: Convert set_atomicity_lock to raw_spinlock
>   ACPI: Convert c3_lock to raw_spinlock
>   rtmutex: Convert wait_lock and pi_lock to raw_spinlock
>   printk: Convert lock to raw_spinlock
>   genirq: Convert locks to raw_spinlocks
>   trace: Convert various locks to raw_spinlock
>   clocksource: Convert watchdog_lock to raw_spinlock
>   timer_stats: Convert to raw_spinlocks
>   x86: kvm: Convert i8254/i8259 locks to raw_spinlock
>   x86 - nmi: Convert nmi_lock to raw_spinlock
>   cgroups: Convert cgroups release_list_lock to raw_spinlock
>   proportions: Convert spinlocks to raw_spinlocks.
>   percpu_counter: Convert to raw_spinlock
>   oprofile: Convert to raw_spinlock
>   vgacon: Convert vga console lock to raw_spinlock
>   pci-access: Convert pci_lock to raw_spinlock
>   kprobes: Convert to raw_spinlocks
>   softlockup: Convert to raw_spinlocks
> 
> Thomas Gleixner (1):
>   seqlock: Create raw_seqlock
> 
>  arch/alpha/kernel/time.c            |    4 +-
>  arch/arm/kernel/time.c              |   12 ++--
>  arch/arm/oprofile/common.c          |    4 +-
>  arch/arm/oprofile/op_model_mpcore.c |    4 +-
>  arch/blackfin/kernel/time.c         |    4 +-
>  arch/cris/kernel/time.c             |    4 +-
>  arch/frv/kernel/time.c              |    4 +-
>  arch/h8300/kernel/time.c            |    4 +-
>  arch/ia64/kernel/time.c             |    4 +-
>  arch/ia64/xen/time.c                |    4 +-
>  arch/m32r/kernel/time.c             |    4 +-
>  arch/m68knommu/kernel/time.c        |    4 +-
>  arch/mips/include/asm/i8253.h       |    2 +-
>  arch/mips/kernel/i8253.c            |   14 ++--
>  arch/mn10300/kernel/time.c          |    4 +-
>  arch/parisc/kernel/time.c           |    8 +-
>  arch/powerpc/kernel/time.c          |    4 +-
>  arch/sparc/kernel/pcic.c            |    8 +-
>  arch/sparc/kernel/time_32.c         |   12 ++--
>  arch/x86/include/asm/i8253.h        |    2 +-
>  arch/x86/include/asm/i8259.h        |    2 +-
>  arch/x86/include/asm/pci_x86.h      |    2 +-
>  arch/x86/kernel/apic/io_apic.c      |  106 +++++++++++++++++-----------------
>  arch/x86/kernel/apic/nmi.c          |    6 +-
>  arch/x86/kernel/apm_32.c            |    4 +-
>  arch/x86/kernel/cpu/mtrr/generic.c  |    6 +-
>  arch/x86/kernel/i8253.c             |   14 ++--
>  arch/x86/kernel/i8259.c             |   30 +++++-----
>  arch/x86/kernel/time.c              |    4 +-
>  arch/x86/kernel/visws_quirks.c      |    6 +-
>  arch/x86/kvm/i8254.c                |   10 ++--
>  arch/x86/kvm/i8254.h                |    2 +-
>  arch/x86/kvm/i8259.c                |   30 +++++-----
>  arch/x86/kvm/irq.h                  |    2 +-
>  arch/x86/kvm/x86.c                  |    8 +-
>  arch/x86/mm/tlb.c                   |    8 +-
>  arch/x86/oprofile/nmi_int.c         |    4 +-
>  arch/x86/pci/common.c               |    2 +-
>  arch/x86/pci/direct.c               |   16 +++---
>  arch/x86/pci/mmconfig_32.c          |    8 +-
>  arch/x86/pci/numaq_32.c             |    8 +-
>  arch/x86/pci/pcbios.c               |    8 +-
>  arch/xtensa/kernel/time.c           |    4 +-
>  drivers/acpi/processor_idle.c       |   10 ++--
>  drivers/block/hd.c                  |    4 +-
>  drivers/input/gameport/gameport.c   |    4 +-
>  drivers/input/joystick/analog.c     |    4 +-
>  drivers/input/misc/pcspkr.c         |    6 +-
>  drivers/oprofile/event_buffer.c     |    4 +-
>  drivers/oprofile/oprofilefs.c       |    6 +-
>  drivers/pci/access.c                |   34 ++++++------
>  drivers/video/console/vgacon.c      |   42 +++++++-------
>  include/linux/init_task.h           |    2 +-
>  include/linux/kprobes.h             |    2 +-
>  include/linux/oprofile.h            |    2 +-
>  include/linux/percpu_counter.h      |    2 +-
>  include/linux/proportions.h         |    6 +-
>  include/linux/ratelimit.h           |    4 +-
>  include/linux/rtmutex.h             |    2 +-
>  include/linux/sched.h               |    4 +-
>  include/linux/seqlock.h             |   86 +++++++++++++++++++++++++++-
>  include/linux/time.h                |    2 +-
>  kernel/cgroup.c                     |   18 +++---
>  kernel/hrtimer.c                    |    8 +-
>  kernel/kprobes.c                    |   34 ++++++------
>  kernel/posix-cpu-timers.c           |    8 +-
>  kernel/printk.c                     |   42 +++++++-------
>  kernel/sched_stats.h                |   12 ++--
>  kernel/softlockup.c                 |    6 +-
>  kernel/time.c                       |    8 +-
>  kernel/time/clocksource.c           |   26 ++++----
>  kernel/time/ntp.c                   |    8 +-
>  kernel/time/tick-common.c           |    8 +-
>  kernel/time/tick-sched.c            |   12 ++--
>  kernel/time/timekeeping.c           |   50 ++++++++--------
>  kernel/time/timer_stats.c           |    6 +-
>  kernel/trace/ring_buffer.c          |   52 +++++++++---------
>  kernel/trace/trace.c                |   10 ++--
>  kernel/trace/trace_irqsoff.c        |    6 +-
>  lib/percpu_counter.c                |   18 +++---
>  lib/proportions.c                   |   12 ++--
>  lib/ratelimit.c                     |    4 +-
>  sound/drivers/pcsp/pcsp.h           |    2 +-
>  sound/drivers/pcsp/pcsp_input.c     |    4 +-
>  sound/drivers/pcsp/pcsp_lib.c       |   12 ++--
>  85 files changed, 535 insertions(+), 457 deletions(-)



Looking at this whole patchset. I have the feeling the
changelogs don't tell us much about why we do that.

I mean, I understand the general purpose of this patchset,
but taken invidually, some of them make me stuck into
existential questions.

Could you just at least put a one liner detailed and
individual clue in the changelogs that tells us why a
pointed spinlock can not sleep in preempt_rt? And may
be a comment in the code? There are places where it
is pretty obvious, such as the rq lock. But some
others...

Or may be I'm just too ignorant and these sleeping
in rt places are just simply damn too obvious to deserve
any individual words... :-)

Thanks.


  parent reply	other threads:[~2010-01-12  3:24 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-11 21:26 [PATCH 00/26] Convert locks that can't sleep in -rt to raw_spinlock John Kacur
2010-01-11 21:26 ` [PATCH 01/26] xtime_lock: Convert atomic_seqlock to raw_seqlock, fix up all users John Kacur
2010-01-11 21:26   ` [PATCH 02/26] seqlock: Create raw_seqlock John Kacur
2010-01-11 21:26     ` [PATCH 03/26] x86: Convert tlbstate_lock to raw_spinlock John Kacur
2010-01-11 21:26       ` [PATCH 04/26] sched: Convert thread_group_cputimer lock " John Kacur
2010-01-11 21:26         ` [PATCH 05/26] x86: Convert ioapic_lock and vector_lock to raw_spinlocks John Kacur
2010-01-11 21:26           ` [PATCH 06/26] x86: Convert i8259A_lock to raw_spinlock John Kacur
2010-01-11 21:26             ` [PATCH 07/26] x86: Convert pci_config_lock " John Kacur
2010-01-11 21:26               ` [PATCH 08/26] i8253: Convert i8253_lock " John Kacur
2010-01-11 21:26                 ` [PATCH 09/26] x86: Convert set_atomicity_lock " John Kacur
2010-01-11 21:26                   ` [PATCH 10/26] ACPI: Convert c3_lock " John Kacur
2010-01-11 21:26                     ` [PATCH 11/26] rtmutex: Convert wait_lock and pi_lock " John Kacur
2010-01-11 21:26                       ` [PATCH 12/26] printk: Convert lock " John Kacur
2010-01-11 21:26                         ` [PATCH 13/26] genirq: Convert locks to raw_spinlocks John Kacur
2010-01-11 21:26                           ` [PATCH 14/26] trace: Convert various locks to raw_spinlock John Kacur
2010-01-11 21:26                             ` [PATCH 15/26] clocksource: Convert watchdog_lock " John Kacur
2010-01-11 21:26                               ` [PATCH 16/26] timer_stats: Convert to raw_spinlocks John Kacur
2010-01-11 21:26                                 ` [PATCH 17/26] x86: kvm: Convert i8254/i8259 locks to raw_spinlock John Kacur
2010-01-11 21:26                                   ` [PATCH 18/26] x86 - nmi: Convert nmi_lock " John Kacur
2010-01-11 21:26                                     ` [PATCH 19/26] cgroups: Convert cgroups release_list_lock " John Kacur
2010-01-11 21:26                                       ` [PATCH 20/26] proportions: Convert spinlocks to raw_spinlocks John Kacur
2010-01-11 21:26                                         ` [PATCH 21/26] percpu_counter: Convert to raw_spinlock John Kacur
2010-01-11 21:26                                           ` [PATCH 22/26] oprofile: " John Kacur
2010-01-11 21:26                                             ` [PATCH 23/26] vgacon: Convert vga console lock " John Kacur
2010-01-11 21:26                                               ` [PATCH 24/26] pci-access: Convert pci_lock " John Kacur
2010-01-11 21:26                                                 ` [PATCH 25/26] kprobes: Convert to raw_spinlocks John Kacur
2010-01-11 21:26                                                   ` [PATCH 26/26] softlockup: " John Kacur
2010-01-12  3:54                                                   ` [PATCH 25/26] kprobes: " Frederic Weisbecker
2010-01-11 21:50                                       ` [PATCH 19/26] cgroups: Convert cgroups release_list_lock to raw_spinlock Paul Menage
2010-01-11 22:11                                         ` John Kacur
2010-01-12  3:39                             ` [PATCH 14/26] trace: Convert various locks " Frederic Weisbecker
2010-01-13 15:28                               ` Steven Rostedt
2010-01-13 15:36                                 ` John Kacur
2010-01-13 15:41                                   ` Steven Rostedt
2010-01-13 18:09                                     ` John Kacur
2010-01-17 13:00                                       ` Frederic Weisbecker
2010-01-12  3:24 ` Frederic Weisbecker [this message]
2010-01-12  3:49   ` [PATCH 00/26] Convert locks that can't sleep in -rt " Frederic Weisbecker

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=20100112032428.GE5243@nowhere \
    --to=fweisbec@gmail.com \
    --cc=jkacur@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=williams@redhat.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