* [ANNOUNCE] v4.11.12-rt15
@ 2017-10-11 10:35 Sebastian Andrzej Siewior
2017-10-11 18:57 ` Gene Heskett
0 siblings, 1 reply; 8+ messages in thread
From: Sebastian Andrzej Siewior @ 2017-10-11 10:35 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: LKML, linux-rt-users, Steven Rostedt
Dear RT folks!
I'm pleased to announce the v4.11.12-rt15 patch set.
Changes since v4.11.12-rt14:
- Programmed wake ups (nanosleep, clock_nanosleep, …) by a task with
RT priority will still be carried out in the hardirq context
(nothing changes). If it is programmed by task with a normal
priority then the wake up will be carried out in the softirq
context via the ktimersoftd thread.
The advantage is that multiple wake ups of non-RT tasks won't
disturb the RT task. Reported by Gratian Crisan.
- Paul Gortmaker reported splat during boot when TSC (on x86) becomes
unstable and kernel switches to an alternative. This has been fixed
by cherry-picking a patch from upstream.
- After the hrtimer rework, certain wake ups (like those programmed in
the past using the softirq context) won't fire. Reported by Mike
Galbraith, patched by Anna-Maria Gleixner.
- After the hrtimer rework, wake ups using CLOCK_REALTIME and a
relative delay were affected by clock_settime() (they should have
not been). Reported by Mike Galbraith.
Known issues
None
The delta patch against v4.11.12-rt14 is appended below and can be found here:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.11/incr/patch-4.11.12-rt14-rt15.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.11.12-rt15
The RT patch against v4.11.12 can be found here:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patch-4.11.12-rt15.patch.xz
The split quilt queue is available at:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patches-4.11.12-rt15.tar.xz
Sebastian
diff --git a/kernel/sched/clock.c b/kernel/sched/clock.c
--- a/kernel/sched/clock.c
+++ b/kernel/sched/clock.c
@@ -124,6 +124,12 @@ int sched_clock_stable(void)
return static_branch_likely(&__sched_clock_stable);
}
+static void __scd_stamp(struct sched_clock_data *scd)
+{
+ scd->tick_gtod = ktime_get_ns();
+ scd->tick_raw = sched_clock();
+}
+
static void __set_sched_clock_stable(void)
{
struct sched_clock_data *scd;
@@ -148,8 +154,37 @@ static void __set_sched_clock_stable(void)
tick_dep_clear(TICK_DEP_BIT_CLOCK_UNSTABLE);
}
+/*
+ * If we ever get here, we're screwed, because we found out -- typically after
+ * the fact -- that TSC wasn't good. This means all our clocksources (including
+ * ktime) could have reported wrong values.
+ *
+ * What we do here is an attempt to fix up and continue sort of where we left
+ * off in a coherent manner.
+ *
+ * The only way to fully avoid random clock jumps is to boot with:
+ * "tsc=unstable".
+ */
static void __sched_clock_work(struct work_struct *work)
{
+ struct sched_clock_data *scd;
+ int cpu;
+
+ /* take a current timestamp and set 'now' */
+ preempt_disable();
+ scd = this_scd();
+ __scd_stamp(scd);
+ scd->clock = scd->tick_gtod + __gtod_offset;
+ preempt_enable();
+
+ /* clone to all CPUs */
+ for_each_possible_cpu(cpu)
+ per_cpu(sched_clock_data, cpu) = *scd;
+
+ printk(KERN_INFO "sched_clock: Marking unstable (%lld, %lld)<-(%lld, %lld)\n",
+ scd->tick_gtod, __gtod_offset,
+ scd->tick_raw, __sched_clock_offset);
+
static_branch_disable(&__sched_clock_stable);
}
@@ -157,27 +192,11 @@ static DECLARE_WORK(sched_clock_work, __sched_clock_work);
static void __clear_sched_clock_stable(void)
{
- struct sched_clock_data *scd = this_scd();
-
- /*
- * Attempt to make the stable->unstable transition continuous.
- *
- * Trouble is, this is typically called from the TSC watchdog
- * timer, which is late per definition. This means the tick
- * values can already be screwy.
- *
- * Still do what we can.
- */
- __gtod_offset = (scd->tick_raw + __sched_clock_offset) - (scd->tick_gtod);
-
- printk(KERN_INFO "sched_clock: Marking unstable (%lld, %lld)<-(%lld, %lld)\n",
- scd->tick_gtod, __gtod_offset,
- scd->tick_raw, __sched_clock_offset);
+ if (!sched_clock_stable())
+ return;
tick_dep_set(TICK_DEP_BIT_CLOCK_UNSTABLE);
-
- if (sched_clock_stable())
- schedule_work(&sched_clock_work);
+ schedule_work(&sched_clock_work);
}
void clear_sched_clock_stable(void)
@@ -364,8 +383,7 @@ void sched_clock_tick(void)
* XXX arguably we can skip this if we expose tsc_clocksource_reliable
*/
scd = this_scd();
- scd->tick_raw = sched_clock();
- scd->tick_gtod = ktime_get_ns();
+ __scd_stamp(scd);
if (!sched_clock_stable() && likely(sched_clock_running))
sched_clock_local(scd);
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -562,8 +562,14 @@ static inline ktime_t hrtimer_update_base(struct hrtimer_cpu_base *base)
ktime_t *offs_boot = &base->clock_base[HRTIMER_BASE_BOOTTIME].offset;
ktime_t *offs_tai = &base->clock_base[HRTIMER_BASE_TAI].offset;
- return ktime_get_update_offsets_now(&base->clock_was_set_seq,
+ ktime_t now = ktime_get_update_offsets_now(&base->clock_was_set_seq,
offs_real, offs_boot, offs_tai);
+
+ base->clock_base[HRTIMER_BASE_REALTIME_SOFT].offset = *offs_real;
+ base->clock_base[HRTIMER_BASE_BOOTTIME_SOFT].offset = *offs_boot;
+ base->clock_base[HRTIMER_BASE_TAI_SOFT].offset = *offs_tai;
+
+ return now;
}
/*
@@ -1252,6 +1258,8 @@ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
clock_id = CLOCK_MONOTONIC;
else if (clock_id == CLOCK_REALTIME_SOFT)
clock_id = CLOCK_MONOTONIC_SOFT;
+ else if (clock_id == CLOCK_REALTIME_HARD)
+ clock_id = CLOCK_MONOTONIC_HARD;
}
base = hrtimer_clockid_to_base(clock_id);
@@ -1622,14 +1630,31 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
return HRTIMER_NORESTART;
}
+#ifdef CONFIG_PREEMPT_RT_FULL
+static bool task_is_elevated(struct task_struct *tsk)
+{
+ int policy = tsk->policy;
+
+ if (policy == SCHED_FIFO || policy == SCHED_RR)
+ return true;
+ if (policy == SCHED_DEADLINE)
+ return true;
+ return false;
+}
+#endif
+
static void __hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
clockid_t clock_id,
enum hrtimer_mode mode,
struct task_struct *task)
{
#ifdef CONFIG_PREEMPT_RT_FULL
- if (!(clock_id & HRTIMER_BASE_SOFT_MASK))
- clock_id |= HRTIMER_BASE_HARD_MASK;
+ if (!(clock_id & (HRTIMER_BASE_HARD_MASK | HRTIMER_BASE_SOFT_MASK))) {
+ if (task_is_elevated(current) || system_state != SYSTEM_RUNNING)
+ clock_id |= HRTIMER_BASE_HARD_MASK;
+ else
+ clock_id |= HRTIMER_BASE_SOFT_MASK;
+ }
#endif
__hrtimer_init(&sl->timer, clock_id, mode);
sl->timer.function = hrtimer_wakeup;
diff --git a/localversion-rt b/localversion-rt
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt14
+-rt15
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-11 10:35 [ANNOUNCE] v4.11.12-rt15 Sebastian Andrzej Siewior
@ 2017-10-11 18:57 ` Gene Heskett
2017-10-11 19:16 ` Gene Heskett
0 siblings, 1 reply; 8+ messages in thread
From: Gene Heskett @ 2017-10-11 18:57 UTC (permalink / raw)
To: linux-rt-users
On Wednesday 11 October 2017 06:35:33 Sebastian Andrzej Siewior wrote:
> Dear RT folks!
>
> I'm pleased to announce the v4.11.12-rt15 patch set.
>
> Changes since v4.11.12-rt14:
>
> - Programmed wake ups (nanosleep, clock_nanosleep, …) by a task with
> RT priority will still be carried out in the hardirq context
> (nothing changes). If it is programmed by task with a normal
> priority then the wake up will be carried out in the softirq
> context via the ktimersoftd thread.
> The advantage is that multiple wake ups of non-RT tasks won't
> disturb the RT task. Reported by Gratian Crisan.
>
> - Paul Gortmaker reported splat during boot when TSC (on x86)
> becomes unstable and kernel switches to an alternative. This has been
> fixed by cherry-picking a patch from upstream.
>
> - After the hrtimer rework, certain wake ups (like those programmed
> in the past using the softirq context) won't fire. Reported by Mike
> Galbraith, patched by Anna-Maria Gleixner.
>
> - After the hrtimer rework, wake ups using CLOCK_REALTIME and a
> relative delay were affected by clock_settime() (they should have
> not been). Reported by Mike Galbraith.
>
> Known issues
> None
>
> The delta patch against v4.11.12-rt14 is appended below and can be
> found here:
>
>
> https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.11/incr/patch-4.
>11.12-rt14-rt15.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.11.12-rt15
>
> The RT patch against v4.11.12 can be found here:
>
>
> https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patch-4
>.11.12-rt15.patch.xz
>
> The split quilt queue is available at:
>
>
> https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patches
>-4.11.12-rt15.tar.xz
>
> Sebastian
> diff --git a/kernel/sched/clock.c b/kernel/sched/clock.c
> --- a/kernel/sched/clock.c
> +++ b/kernel/sched/clock.c
> @@ -124,6 +124,12 @@ int sched_clock_stable(void)
> return static_branch_likely(&__sched_clock_stable);
> }
>
> +static void __scd_stamp(struct sched_clock_data *scd)
> +{
> + scd->tick_gtod = ktime_get_ns();
> + scd->tick_raw = sched_clock();
> +}
> +
> static void __set_sched_clock_stable(void)
> {
> struct sched_clock_data *scd;
> @@ -148,8 +154,37 @@ static void __set_sched_clock_stable(void)
> tick_dep_clear(TICK_DEP_BIT_CLOCK_UNSTABLE);
> }
>
> +/*
> + * If we ever get here, we're screwed, because we found out --
> typically after + * the fact -- that TSC wasn't good. This means all
> our clocksources (including + * ktime) could have reported wrong
> values.
> + *
> + * What we do here is an attempt to fix up and continue sort of where
> we left + * off in a coherent manner.
> + *
> + * The only way to fully avoid random clock jumps is to boot with:
> + * "tsc=unstable".
> + */
> static void __sched_clock_work(struct work_struct *work)
> {
> + struct sched_clock_data *scd;
> + int cpu;
> +
> + /* take a current timestamp and set 'now' */
> + preempt_disable();
> + scd = this_scd();
> + __scd_stamp(scd);
> + scd->clock = scd->tick_gtod + __gtod_offset;
> + preempt_enable();
> +
> + /* clone to all CPUs */
> + for_each_possible_cpu(cpu)
> + per_cpu(sched_clock_data, cpu) = *scd;
> +
> + printk(KERN_INFO "sched_clock: Marking unstable (%lld, %lld)<-(%lld,
> %lld)\n", + scd->tick_gtod, __gtod_offset,
> + scd->tick_raw, __sched_clock_offset);
> +
> static_branch_disable(&__sched_clock_stable);
> }
>
> @@ -157,27 +192,11 @@ static DECLARE_WORK(sched_clock_work,
> __sched_clock_work);
>
> static void __clear_sched_clock_stable(void)
> {
> - struct sched_clock_data *scd = this_scd();
> -
> - /*
> - * Attempt to make the stable->unstable transition continuous.
> - *
> - * Trouble is, this is typically called from the TSC watchdog
> - * timer, which is late per definition. This means the tick
> - * values can already be screwy.
> - *
> - * Still do what we can.
> - */
> - __gtod_offset = (scd->tick_raw + __sched_clock_offset) -
> (scd->tick_gtod); -
> - printk(KERN_INFO "sched_clock: Marking unstable (%lld, %lld)<-(%lld,
> %lld)\n", - scd->tick_gtod, __gtod_offset,
> - scd->tick_raw, __sched_clock_offset);
> + if (!sched_clock_stable())
> + return;
>
> tick_dep_set(TICK_DEP_BIT_CLOCK_UNSTABLE);
> -
> - if (sched_clock_stable())
> - schedule_work(&sched_clock_work);
> + schedule_work(&sched_clock_work);
> }
>
> void clear_sched_clock_stable(void)
> @@ -364,8 +383,7 @@ void sched_clock_tick(void)
> * XXX arguably we can skip this if we expose
> tsc_clocksource_reliable */
> scd = this_scd();
> - scd->tick_raw = sched_clock();
> - scd->tick_gtod = ktime_get_ns();
> + __scd_stamp(scd);
>
> if (!sched_clock_stable() && likely(sched_clock_running))
> sched_clock_local(scd);
> diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
> --- a/kernel/time/hrtimer.c
> +++ b/kernel/time/hrtimer.c
> @@ -562,8 +562,14 @@ static inline ktime_t hrtimer_update_base(struct
> hrtimer_cpu_base *base) ktime_t *offs_boot =
> &base->clock_base[HRTIMER_BASE_BOOTTIME].offset; ktime_t *offs_tai =
> &base->clock_base[HRTIMER_BASE_TAI].offset;
>
> - return ktime_get_update_offsets_now(&base->clock_was_set_seq,
> + ktime_t now = ktime_get_update_offsets_now(&base->clock_was_set_seq,
> offs_real, offs_boot, offs_tai);
> +
> + base->clock_base[HRTIMER_BASE_REALTIME_SOFT].offset = *offs_real;
> + base->clock_base[HRTIMER_BASE_BOOTTIME_SOFT].offset = *offs_boot;
> + base->clock_base[HRTIMER_BASE_TAI_SOFT].offset = *offs_tai;
> +
> + return now;
> }
>
> /*
> @@ -1252,6 +1258,8 @@ static void __hrtimer_init(struct hrtimer
> *timer, clockid_t clock_id, clock_id = CLOCK_MONOTONIC;
> else if (clock_id == CLOCK_REALTIME_SOFT)
> clock_id = CLOCK_MONOTONIC_SOFT;
> + else if (clock_id == CLOCK_REALTIME_HARD)
> + clock_id = CLOCK_MONOTONIC_HARD;
> }
>
> base = hrtimer_clockid_to_base(clock_id);
> @@ -1622,14 +1630,31 @@ static enum hrtimer_restart
> hrtimer_wakeup(struct hrtimer *timer) return HRTIMER_NORESTART;
> }
>
> +#ifdef CONFIG_PREEMPT_RT_FULL
> +static bool task_is_elevated(struct task_struct *tsk)
> +{
> + int policy = tsk->policy;
> +
> + if (policy == SCHED_FIFO || policy == SCHED_RR)
> + return true;
> + if (policy == SCHED_DEADLINE)
> + return true;
> + return false;
> +}
> +#endif
> +
> static void __hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
> clockid_t clock_id,
> enum hrtimer_mode mode,
> struct task_struct *task)
> {
> #ifdef CONFIG_PREEMPT_RT_FULL
> - if (!(clock_id & HRTIMER_BASE_SOFT_MASK))
> - clock_id |= HRTIMER_BASE_HARD_MASK;
> + if (!(clock_id & (HRTIMER_BASE_HARD_MASK | HRTIMER_BASE_SOFT_MASK)))
> { + if (task_is_elevated(current) || system_state != SYSTEM_RUNNING)
> + clock_id |= HRTIMER_BASE_HARD_MASK;
> + else
> + clock_id |= HRTIMER_BASE_SOFT_MASK;
> + }
> #endif
> __hrtimer_init(&sl->timer, clock_id, mode);
> sl->timer.function = hrtimer_wakeup;
> diff --git a/localversion-rt b/localversion-rt
> --- a/localversion-rt
> +++ b/localversion-rt
> @@ -1 +1 @@
> --rt14
> +-rt15
> --
> To unsubscribe from this list: send the line "unsubscribe
> linux-rt-users" in the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Neat, and newer than the kernel.org release by several steps, its
4.10-rc3, so where can I get the whole thing, ready for a make menu|x|g|
config?
I am trying to make linuxcnc run on a rock64, its so new you can still
smell the paint.
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-11 18:57 ` Gene Heskett
@ 2017-10-11 19:16 ` Gene Heskett
2017-10-12 4:42 ` Ralf Mardorf
2017-10-13 13:28 ` Sebastian Andrzej Siewior
0 siblings, 2 replies; 8+ messages in thread
From: Gene Heskett @ 2017-10-11 19:16 UTC (permalink / raw)
To: linux-rt-users
On Wednesday 11 October 2017 14:57:36 Gene Heskett wrote:
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
v4.11.12-rt15
does not exist.
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-11 19:16 ` Gene Heskett
@ 2017-10-12 4:42 ` Ralf Mardorf
2017-10-12 14:28 ` Gene Heskett
2017-10-13 13:28 ` Sebastian Andrzej Siewior
1 sibling, 1 reply; 8+ messages in thread
From: Ralf Mardorf @ 2017-10-12 4:42 UTC (permalink / raw)
To: Gene Heskett; +Cc: linux-rt-users
On Wed, 11 Oct 2017 15:16:35 -0400, Gene Heskett wrote:
>git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
>v4.11.12-rt15
>
>does not exist.
Hi Gene,
I'll download and build from
https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.11.tar.xz
https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.11.tar.sign
https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.11.12.xz
https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.11.12.sign
https://www.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patch-4.11.12-rt15.patch.xz
https://www.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patch-4.11.12-rt15.patch.sign
Regards,
Ralf
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-12 4:42 ` Ralf Mardorf
@ 2017-10-12 14:28 ` Gene Heskett
0 siblings, 0 replies; 8+ messages in thread
From: Gene Heskett @ 2017-10-12 14:28 UTC (permalink / raw)
To: linux-rt-users, EMC developers
On Thursday 12 October 2017 00:42:08 Ralf Mardorf wrote:
> On Wed, 11 Oct 2017 15:16:35 -0400, Gene Heskett wrote:
> >git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
> >v4.11.12-rt15
> >
> >does not exist.
>
> Hi Gene,
>
> I'll download and build from
>
> https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.11.tar.xz
> https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.11.tar.sign
> https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.11.12.xz
> https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.11.12.sign
> https://www.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patch-4
>.11.12-rt15.patch.xz
> https://www.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patch-4
>.11.12-rt15.patch.sign
>
> Regards,
> Ralf
All links worked.
Full rt-preempt build underway, _on_ the rock64. Thanks Ralf. Est 2 hours
for kernel. I note this "make help" is much more "helpfull". Last time
thru I didn't understand that making the dtsb's was a separate step, so
of course the make install wasn't complete and the reboot was to the
older kernel. I might even copy all this to the pi3b, but I expect a
build on it will take most of a day. They use a /boot/config.txt to
control which of several installed kernels to boot. I'm not 100% sure I
have the rock64's boot selection mechanism understood yet.
Question you might know about: These logitech "unifying" keyboard/mouse
buttons for wireless keyboards & mice, does one button handle both
keyboard and mouse if dmesg reports it as unifying? I am wondering if
that might be my missed events problem on the pi, which is driving my
attempts to bring up the much faster rock64 as an lcnc controller.
This is something I've not seen discussed on any of the lists I'm subbed
to.
Thanks again.
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-11 19:16 ` Gene Heskett
2017-10-12 4:42 ` Ralf Mardorf
@ 2017-10-13 13:28 ` Sebastian Andrzej Siewior
2017-10-13 14:57 ` Gene Heskett
1 sibling, 1 reply; 8+ messages in thread
From: Sebastian Andrzej Siewior @ 2017-10-13 13:28 UTC (permalink / raw)
To: Gene Heskett; +Cc: linux-rt-users
On 2017-10-11 15:16:35 [-0400], Gene Heskett wrote:
> On Wednesday 11 October 2017 14:57:36 Gene Heskett wrote:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
> v4.11.12-rt15
>
> does not exist.
The URL is correct, the tag exists. What is the problem?
> Cheers, Gene Heskett
Sebastian
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-13 13:28 ` Sebastian Andrzej Siewior
@ 2017-10-13 14:57 ` Gene Heskett
2017-10-13 17:26 ` Gene Heskett
0 siblings, 1 reply; 8+ messages in thread
From: Gene Heskett @ 2017-10-13 14:57 UTC (permalink / raw)
To: linux-rt-users
On Friday 13 October 2017 09:28:19 Sebastian Andrzej Siewior wrote:
> On 2017-10-11 15:16:35 [-0400], Gene Heskett wrote:
> > On Wednesday 11 October 2017 14:57:36 Gene Heskett wrote:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
> > v4.11.12-rt15
> >
> > does not exist.
>
> The URL is correct, the tag exists. What is the problem?
>
"site does not exist"
Its moot now, Ralf sent me a recipe that worked. Built ok but not yet
installed, the Dell running my mill has committed suicide. So thats
project #1 ATM.
What I've built is 4.11.12-rt15. So its the same version.
> > Cheers, Gene Heskett
>
> Sebastian
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANNOUNCE] v4.11.12-rt15
2017-10-13 14:57 ` Gene Heskett
@ 2017-10-13 17:26 ` Gene Heskett
0 siblings, 0 replies; 8+ messages in thread
From: Gene Heskett @ 2017-10-13 17:26 UTC (permalink / raw)
To: linux-rt-users
On Friday 13 October 2017 10:57:20 Gene Heskett wrote:
> On Friday 13 October 2017 09:28:19 Sebastian Andrzej Siewior wrote:
> > On 2017-10-11 15:16:35 [-0400], Gene Heskett wrote:
> > > On Wednesday 11 October 2017 14:57:36 Gene Heskett wrote:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.gi
> > >t v4.11.12-rt15
> > >
> > > does not exist.
> >
> > The URL is correct, the tag exists. What is the problem?
>
> "site does not exist"
>
> Its moot now, Ralf sent me a recipe that worked. Built ok but not yet
> installed, the Dell running my mill has committed suicide. So thats
> project #1 ATM.
>
> What I've built is 4.11.12-rt15. So its the same version.
>
> > > Cheers, Gene Heskett
> >
> > Sebastian
>
> Cheers, Gene Heskett
Update, the tail-less rodent on that machine died, and that killed
keyboard and everything. So I'm off to get a couple more mice at
wallies.
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-10-13 17:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-11 10:35 [ANNOUNCE] v4.11.12-rt15 Sebastian Andrzej Siewior
2017-10-11 18:57 ` Gene Heskett
2017-10-11 19:16 ` Gene Heskett
2017-10-12 4:42 ` Ralf Mardorf
2017-10-12 14:28 ` Gene Heskett
2017-10-13 13:28 ` Sebastian Andrzej Siewior
2017-10-13 14:57 ` Gene Heskett
2017-10-13 17:26 ` Gene Heskett
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.