Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  1. Nov 18, 2015
  2. Nov 07, 2015
  3. Nov 04, 2015
  4. Oct 31, 2015
  5. Oct 17, 2015
    • Thomas Gleixner's avatar
      [ANNOUNCE] 4.1.10-rt10 · 13909722
      Thomas Gleixner authored
      Dear RT folks!
      
      I'm pleased to announce the v4.1.10-rt10 patch set. v4.1.10-rt9 is a
      non-announced update to incorporate the linux-4.1.y stable tree
      changes.
      
      Changes since v4.1.10-rt9:
      
       Ben Hutchings (1):
            work-simple: Add missing #include <linux/export.h>
      
       Grygorii Strashko (1):
            net/core/cpuhotplug: Drain input_pkt_queue lockless
      
       Thomas Gleixner (2):
            arm64/xen: Make XEN depend on !RT
            v4.1.10-rt10
      
       Yang Shi (2):
            arm64: Convert patch_lock to raw lock
            arm64: Replace read_lock to rcu lock in call_break_hook
      
      Known issues:
      
       - bcache stays disabled
      
       - CPU hotplug is not better than before
      
       - The netlink_release() OOPS, reported by Clark, is still on the
         list, but unsolved due to lack of information
      
      The delta patch against 4.1.10-rt10 is appended below and can be found here:
      
         https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/incr/patch-4.1.10-rt9-rt10.patch.xz
      
      You can get this release via the git tree at:
      
         git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.1.10-rt10
      
      The RT patch against 4.1.10 can be found here:
      
         https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patch-4.1.10-rt10.patch.xz
      
      The split quilt queue is available at:
      
         https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patches-4.1.10-rt10.tar.xz
      
      
      
      Enjoy!
      
       	tglx
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      
      diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
      index 2cc65a6f4bbd..09a41259b984 100644
      --- a/arch/arm64/Kconfig
      +++ b/arch/arm64/Kconfig
      @@ -601,7 +601,7 @@ config XEN_DOM0
      
       config XEN
       	bool "Xen guest support on ARM64"
      -	depends on ARM64 && OF
      +	depends on ARM64 && OF && !PREEMPT_RT_FULL
       	select SWIOTLB_XEN
       	help
       	  Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
      diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
      index b056369fd47d..70654d843d9b 100644
      --- a/arch/arm64/kernel/debug-monitors.c
      +++ b/arch/arm64/kernel/debug-monitors.c
      @@ -271,20 +271,21 @@ static int single_step_handler(unsigned long addr, unsigned int esr,
        * Use reader/writer locks instead of plain spinlock.
        */
       static LIST_HEAD(break_hook);
      -static DEFINE_RWLOCK(break_hook_lock);
      +static DEFINE_SPINLOCK(break_hook_lock);
      
       void register_break_hook(struct break_hook *hook)
       {
      -	write_lock(&break_hook_lock);
      -	list_add(&hook->node, &break_hook);
      -	write_unlock(&break_hook_lock);
      +	spin_lock(&break_hook_lock);
      +	list_add_rcu(&hook->node, &break_hook);
      +	spin_unlock(&break_hook_lock);
       }
      
       void unregister_break_hook(struct break_hook *hook)
       {
      -	write_lock(&break_hook_lock);
      -	list_del(&hook->node);
      -	write_unlock(&break_hook_lock);
      +	spin_lock(&break_hook_lock);
      +	list_del_rcu(&hook->node);
      +	spin_unlock(&break_hook_lock);
      +	synchronize_rcu();
       }
      
       static int call_break_hook(struct pt_regs *regs, unsigned int esr)
      @@ -292,11 +293,11 @@ static int call_break_hook(struct pt_regs *regs, unsigned int esr)
       	struct break_hook *hook;
       	int (*fn)(struct pt_regs *regs, unsigned int esr) = NULL;
      
      -	read_lock(&break_hook_lock);
      -	list_for_each_entry(hook, &break_hook, node)
      +	rcu_read_lock();
      +	list_for_each_entry_rcu(hook, &break_hook, node)
       		if ((esr & hook->esr_mask) == hook->esr_val)
       			fn = hook->fn;
      -	read_unlock(&break_hook_lock);
      +	rcu_read_unlock();
      
       	return fn ? fn(regs, esr) : DBG_HOOK_ERROR;
       }
      diff --git a/arch/arm64/kernel/insn.c b/arch/arm64/kernel/insn.c
      index 924902083e47..30eb88e5b896 100644
      --- a/arch/arm64/kernel/insn.c
      +++ b/arch/arm64/kernel/insn.c
      @@ -77,7 +77,7 @@ bool __kprobes aarch64_insn_is_nop(u32 insn)
       	}
       }
      
      -static DEFINE_SPINLOCK(patch_lock);
      +static DEFINE_RAW_SPINLOCK(patch_lock);
      
       static void __kprobes *patch_map(void *addr, int fixmap)
       {
      @@ -124,13 +124,13 @@ static int __kprobes __aarch64_insn_write(void *addr, u32 insn)
       	unsigned long flags = 0;
       	int ret;
      
      -	spin_lock_irqsave(&patch_lock, flags);
      +	raw_spin_lock_irqsave(&patch_lock, flags);
       	waddr = patch_map(addr, FIX_TEXT_POKE0);
      
       	ret = probe_kernel_write(waddr, &insn, AARCH64_INSN_SIZE);
      
       	patch_unmap(FIX_TEXT_POKE0);
      -	spin_unlock_irqrestore(&patch_lock, flags);
      +	raw_spin_unlock_irqrestore(&patch_lock, flags);
      
       	return ret;
       }
      diff --git a/kernel/sched/work-simple.c b/kernel/sched/work-simple.c
      index c996f755dba6..e57a0522573f 100644
      --- a/kernel/sched/work-simple.c
      +++ b/kernel/sched/work-simple.c
      @@ -10,6 +10,7 @@
       #include <linux/kthread.h>
       #include <linux/slab.h>
       #include <linux/spinlock.h>
      +#include <linux/export.h>
      
       #define SWORK_EVENT_PENDING     (1 << 0)
      
      diff --git a/localversion-rt b/localversion-rt
      index 22746d6390a4..d79dde624aaa 100644
      --- a/localversion-rt
      +++ b/localversion-rt
      @@ -1 +1 @@
      --rt9
      +-rt10
      diff --git a/net/core/dev.c b/net/core/dev.c
      index 4969c0d3dd67..f8c23dee5ae9 100644
      --- a/net/core/dev.c
      +++ b/net/core/dev.c
      @@ -7217,7 +7217,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
       		netif_rx_ni(skb);
       		input_queue_head_incr(oldsd);
       	}
      -	while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) {
      +	while ((skb = __skb_dequeue(&oldsd->input_pkt_queue))) {
       		netif_rx_ni(skb);
       		input_queue_head_incr(oldsd);
       	}
      13909722
  6. Sep 21, 2015
  7. Sep 02, 2015
  8. Aug 16, 2015
  9. Jul 25, 2015
  10. Dec 31, 2014
    • Sebastian Andrzej Siewior's avatar
      [ANNOUNCE] 4.1.2-rt1 · 96f1ac50
      Sebastian Andrzej Siewior authored
      Dear RT folks!
      
      I'm pleased to announce the v4.1.2-rt1 patch set.
      
      The move from 4.0 to 4.1 was rather smooth, so we took the time for
      some overdue cleanups and restructuring of the patch queue.
      
      1) Patch folding
      
         - Fold all fixlets into the proper patches
      
         - Consolidate the patches which change the same piece of code over
           and over (e.g. add/revert/redo).
      
         These patches were mostly kept to be easily picked up for stable.
      
      2) Dropping obsolete patches
      
         Some patches have been superseeded by different upstream changes,
         so the RT variant is redundant.
      
      3) Changelogs
      
         Quite some patches had no or useless changelogs. We updated them
         all. Each patch has now a From+Subject+Date field. That means "git
         quiltimport" will produce now the same commit id for each patch (as
         long as the commit author and date remain unchanged).
      
      4) Reordering
      
         The patches got reordered in topics, so patches related to the same
         subsystem or problem space are grouped together.
      
      5) Ability to build and boot
      
         Each step in the queue now builds with RT=n and RT=y. All steps
         boot with RT=n. With RT=y the functionality is obviously dependent
         on all patches, so a boot bisectability can not be achieved.
      
      As of now we provide a git tree with the RT changes as well. The tree
      is similar structured as Stevens stable RT tree. For each kernel
      version we provide 3 branches:
      
       linux-m.n.y-rt
      
      	This branch starts when we move to a new kernel version. After
      	the first release this branch gets only incremental updates
      	(either from the mainline stable tree or from updates to the
      	rt patch queue)
      
       linux-m.n.y-rt-rebase
      
      	This branch is rebased when a new stable version or a new RT
      	patch queue is available. The RT patch queue is applied on top
      	of the latest mainline stable version.
      
       linux-m.n.y-queue
      
      	This branch contains the revisions of the rt patch queue -
      	patches and series file.
      
      Known issues:
      
      - My AMD box throws a lot of "cpufreq_stat_notifier_trans: No
        policy found" warnings after boot. It is gone after manually
        setting the policy (to something else than reported).
      
      - bcache is disabled.
      
      - CPU hotplug works in general. Steven's test script however
        deadlocks usually on the second invocation.
      
      - xor / raid_pq
        I had max latency jumping up to 67563us on one CPU while the next
        lower max was 58us. I tracked it down to module's init code of
        xor and raid_pq. Both disable preemption while measuring the
        performance of the individual implementation.
      
      The git URLs for this release are
      
          git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt
          git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt-rebase
          git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt-queue
      
      The RT patch against 4.1.2 can be found here:
      
          https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/patch-4.1.2-rt1.patch.xz
      
      The split quilt queue is available at:
      
          https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/patches-4.1.2-rt1.tar.xz
      
      
      
      Sebastian
      
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>