From: "Toralf Förster" <toralf.foerster@gmx.de>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Michele Ballabio <barra_cuda@katamail.com>,
linux-kernel@vger.kernel.org, fweisbec@gmail.com,
mingo@kernel.org, Steven Rostedt <rostedt@goodmis.org>,
David Cohen <david.a.cohen@linux.intel.com>,
Stefan Bader <stefan.bader@canonical.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Borislav Petkov <bp@alien8.de>
Subject: Re: Bisected KVM hang on x86-32 between v3.12 and v3.13
Date: Tue, 08 Apr 2014 22:28:26 +0200 [thread overview]
Message-ID: <53445BEA.1060702@gmx.de> (raw)
In-Reply-To: <20140408122128.GC13658@twins.programming.kicks-ass.net>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 04/08/2014 02:21 PM, Peter Zijlstra wrote:
> On Mon, Apr 07, 2014 at 08:56:58PM +0200, Peter Zijlstra wrote:
>> On Mon, Apr 07, 2014 at 08:16:24PM +0200, Toralf Förster wrote:
>>
>>> v3.14-10353-g2b3a8fd works fine AFAICS (BTW the fix is stable
>>> material, right ?)
>>
>> I'm fairly sure its not; its a rather invasive series; see:
>>
>> 2432e1364bbe x86: Nuke the supervisor_stack field in i386
>> thread_info b807902a88c4 x86: Nuke GET_THREAD_INFO_WITH_ESP()
>> macro for i386 0788aa6a23cb x86: Prepare removal of previous_esp
>> from i386 thread_info structure 198d208df437 x86: Keep
>> thread_info on thread stack in x86_32
>>
>> Let me see if there's anything 'simpler' we can stuff in .13+
>
> OK.. so could someone test the below patch to see if that makes
> things work for .13 and .14?
>
patch applied on 3.1.3.9 and 3.14.0 it fixed the issue AFAICT
> --- arch/x86/include/asm/preempt.h | 11 +++++++++++
> include/linux/preempt.h | 4 ++++
> include/linux/thread_info.h | 2 -- 3 files changed, 15
> insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/include/asm/preempt.h
> b/arch/x86/include/asm/preempt.h index c8b051933b1b..7ada46d8d4d8
> 100644 --- a/arch/x86/include/asm/preempt.h +++
> b/arch/x86/include/asm/preempt.h @@ -5,6 +5,17 @@ #include
> <asm/percpu.h> #include <linux/thread_info.h>
>
> +#ifdef CONFIG_X86_32 +/* + * i386's current_thread_info() depends
> on ESP and for interrupt/exception + * stacks this doesn't yield
> the actual task thread_info. + * + * We hard rely on the fact that
> all the TIF_NEED_RESCHED bits are + * the same, therefore use the
> slightly more expensive version below. + */ +#define
> tif_need_resched() test_tsk_thread_flag(current, TIF_NEED_RESCHED)
> +#endif + DECLARE_PER_CPU(int, __preempt_count);
>
> /* diff --git a/include/linux/preempt.h b/include/linux/preempt.h
> index de83b4eb1642..891c8f8b52fe 100644 ---
> a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -17,6
> +17,10 @@
>
> #include <asm/preempt.h>
>
> +#ifndef tif_need_resched +#define tif_need_resched()
> test_thread_flag(TIF_NEED_RESCHED) +#endif + #if
> defined(CONFIG_DEBUG_PREEMPT) || defined(CONFIG_PREEMPT_TRACER)
> extern void preempt_count_add(int val); extern void
> preempt_count_sub(int val); diff --git
> a/include/linux/thread_info.h b/include/linux/thread_info.h index
> fddbe2023a5d..a629e4b23217 100644 ---
> a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@
> -118,8 +118,6 @@ static inline __deprecated void
> set_need_resched(void) */ }
>
> -#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) -
> #if defined TIF_RESTORE_SIGMASK && !defined
> HAVE_SET_RESTORE_SIGMASK /* * An arch can define its own version of
> set_restore_sigmask() to get the
>
- --
MfG/Sincerely
Toralf Förster
pgp finger print:1A37 6F99 4A9D 026F 13E2 4DCF C4EA CDDE 0076 E94E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iF0EAREIAAYFAlNEW+EACgkQxOrN3gB26U5RkAD4ysUp9CrCajM7zXLsdWRLTZFi
oX0lYgrKo/gCrcS9UwD/ZdaRPlP6vTKApfxQ7F48KTTA+tNcyTD4xSyCdwI8l0Q=
=WeKZ
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2014-04-08 20:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-06 15:19 Bisected KVM hang on x86-32 between v3.12 and v3.13 Michele Ballabio
2014-04-06 15:52 ` Toralf Förster
2014-04-06 17:40 ` Michele Ballabio
2014-04-07 15:03 ` Peter Zijlstra
2014-04-07 15:07 ` Peter Zijlstra
2014-04-07 18:16 ` Toralf Förster
2014-04-07 18:56 ` Peter Zijlstra
2014-04-08 12:21 ` Peter Zijlstra
2014-04-08 19:14 ` Michele Ballabio
2014-04-08 19:51 ` Michele Ballabio
2014-04-08 20:28 ` Toralf Förster [this message]
2014-04-09 9:14 ` Stefan Bader
2014-04-09 9:45 ` Peter Zijlstra
2014-04-09 14:24 ` [PATCH -stable] x86,preempt: Fix preemption for i386 Peter Zijlstra
2014-04-09 14:36 ` Linus Torvalds
2014-04-09 19:19 ` Greg KH
2014-04-09 19:38 ` Peter Zijlstra
2014-04-09 19:57 ` Greg KH
2014-05-13 23:56 ` Greg KH
2014-04-07 18:59 ` Bisected KVM hang on x86-32 between v3.12 and v3.13 Frederic Weisbecker
2014-04-07 19:57 ` Toralf Förster
2014-04-07 22:43 ` Frederic Weisbecker
2014-04-07 19:49 ` Michele Ballabio
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=53445BEA.1060702@gmx.de \
--to=toralf.foerster@gmx.de \
--cc=barra_cuda@katamail.com \
--cc=bp@alien8.de \
--cc=david.a.cohen@linux.intel.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=stefan.bader@canonical.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 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.