All of lore.kernel.org
 help / color / mirror / Atom feed
From: Clark Williams <williams@redhat.com>
To: Clark Williams <williams@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-rt-users <linux-rt-users@vger.kernel.org>
Subject: Re: [ANNOUNCE] 3.6.11-rt26
Date: Mon, 4 Feb 2013 10:59:00 -0600	[thread overview]
Message-ID: <20130204105900.63bd5fae@riff.lan> (raw)
In-Reply-To: <20130204095438.41376edb@riff.lan>

[-- Attachment #1: Type: text/plain, Size: 4969 bytes --]

On Mon, 4 Feb 2013 09:54:38 -0600
Clark Williams <williams@redhat.com> wrote:

> On Mon, 4 Feb 2013 15:58:26 +0100 (CET)
> Thomas Gleixner <tglx@linutronix.de> wrote:
> 
> > Dear RT Folks,
> > 
> > I'm pleased to announce the 3.6.11-rt26 release.
> > 
> > Changes since 3.6.11-rt25:
> > 
> >    1) Fix the RT highmem implementation on x86
> > 
> >    2) Support highmem + RT on ARM
> > 
> >    3) Fix an one off error in the generic highmem code (upstream fix
> >       did not make it into 3.6.stable)
> > 
> >    4) Upstream SLUB fixes (Christoph Lameter)
> > 
> >    5) Fix a few RT issues in mmc and amba drivers
> > 
> >    6) Initialize local locks in mm/swap.c early
> > 
> >    7) Use simple wait queues for completions. This is a performance
> >       improvement.
> > 
> >       Completions do not have complex callbacks and the wakeup path is
> >       disabling interrupts anyway. So using simple wait locks with the
> >       raw spinlock is not a latency problem, but the "sleeping lock"
> >       in the normal waitqueue is a source for lock bouncing:
> > 
> >       T1  	 	   T2
> >       lock(WQ)
> >       wakeup(T2)
> >       ---> preemption
> > 			   lock(WQ)
> > 			   pi_boost(T1)
> > 			   wait_for_lock(WQ)
> >       unlock(WQ)
> >       deboost(T1)
> >       ---> preemption
> > 			   ....
> > 
> >       The simple waitqueue reduces this to:
> > 		   
> >       T1  	 	   T2
> >       raw_lock(WQ)
> >       wakeup(T2)
> >       raw_unlock(WQ)
> >       ---> preemption
> > 			   raw_lock(WQ)	
> > 			   ....
> > 
> > @Steven: Sorry, I forgot the stable tags on:
> > 	 drivers-tty-pl011-irq-disable-madness.patch
> > 	 mmci-remove-bogus-irq-save.patch
> > 	 idle-state.patch
> > 	 might-sleep-check-for-idle.patch
> > 	 mm-swap-fix-initialization.patch
> > 
> > I'm still digging through my mail backlog, so I have not yet decided
> > whether this is the last RT release for 3.6.
> > 
> > 
> > The delta patch against 3.6.11-rt25 is appended below and can be found
> > here:
> > 
> >   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/incr/patch-3.6.11-rt25-rt26.patch.xz
> > 
> > The RT patch against 3.6.11 can be found here:
> > 
> >   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patch-3.6.11-rt26.patch.xz
> > 
> > The split quilt queue is available at:
> > 
> >   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patches-3.6.11-rt26.tar.xz
> > 
> > Enjoy,
> > 
> > 	tglx
> > 
> 
> 
> Thomas,
> 
> I needed this change to build:
> 
> diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
> index efe4b33..3d5231f 100644
> --- a/include/linux/uprobes.h
> +++ b/include/linux/uprobes.h
> @@ -26,6 +26,7 @@
>  
>  #include <linux/errno.h>
>  #include <linux/rbtree.h>
> +#include <linux/wait.h>
>  
>  struct vm_area_struct;
>  struct mm_struct;
> 
> 
> Clark


More changes; I was running into a collision with the name kmap_prot.

This is not stacked on the above patch, it supercedes it.

Clark

diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h
index dc7b47e..1004f7d 100644
--- a/arch/x86/include/asm/highmem.h
+++ b/arch/x86/include/asm/highmem.h
@@ -69,7 +69,7 @@ void *kmap_atomic_pfn(unsigned long pfn);
 void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot);
 struct page *kmap_atomic_to_page(void *ptr);
 #else
-void *kmap_prot(struct page *page, pgprot_t prot);
+void *__kmap_prot(struct page *page, pgprot_t prot);
 # define kmap_atomic(page)                     \
        ({ pagefault_disable(); kmap(page); })
 
@@ -80,10 +80,10 @@ void *kmap_prot(struct page *page, pgprot_t prot);
        do { kunmap(kmap_to_page(kvaddr)); pagefault_enable(); } while(0)
 
 # define kmap_atomic_prot(page, prot)          \
-       ({ pagefault_disable(); kmap_prot(page, prot); })
+       ({ pagefault_disable(); __kmap_prot(page, prot); })
 
 # define kmap_atomic_prot_pfn(pfn, prot)       \
-       ({ pagefault_disable(); kmap_prot(pfn_to_page(pfn), prot); })
+       ({ pagefault_disable(); __kmap_prot(pfn_to_page(pfn), prot); })
 
 # define kmap_atomic_to_page(kvaddr)           \
        kmap_to_page(kvaddr)
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 98f84e2..9a85340 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -59,7 +59,7 @@ static inline void *kmap(struct page *page)
        return page_address(page);
 }
 
-#define kmap_prot(page, prot)  kmap(page)
+#define __kmap_prot(page, prot)        kmap(page)
 
 static inline void kunmap(struct page *page)
 {
diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
index efe4b33..3d5231f 100644
--- a/include/linux/uprobes.h
+++ b/include/linux/uprobes.h
@@ -26,6 +26,7 @@
 
 #include <linux/errno.h>
 #include <linux/rbtree.h>
+#include <linux/wait.h>
 
 struct vm_area_struct;
 struct mm_struct;

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

  reply	other threads:[~2013-02-04 16:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-04 14:58 [ANNOUNCE] 3.6.11-rt26 Thomas Gleixner
2013-02-04 15:02 ` Thomas Gleixner
2013-02-04 15:54 ` Clark Williams
2013-02-04 16:59   ` Clark Williams [this message]
2013-02-04 17:16     ` Thomas Gleixner
2013-02-05  7:31 ` Qiang Huang
2013-02-05 10:18   ` Thomas Gleixner
2013-02-07 17:11 ` [ANNOUNCE] 3.6.11-rt26 - interrupts again Tim Sander

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=20130204105900.63bd5fae@riff.lan \
    --to=williams@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --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.