From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: TimDeegan <tim@xen.org>, Keir Fraser <keir@xen.org>,
Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH RFC 5/9] x86/traps: Functional prep work
Date: Thu, 15 May 2014 13:42:34 +0100 [thread overview]
Message-ID: <5374B63A.30305@citrix.com> (raw)
In-Reply-To: <5374CBFE0200007800012A22@mail.emea.novell.com>
On 15/05/14 13:15, Jan Beulich wrote:
>>>> On 15.05.14 at 12:45, <andrew.cooper3@citrix.com> wrote:
>> On 15/05/14 11:36, Jan Beulich wrote:
>>>>>> On 15.05.14 at 11:48, <andrew.cooper3@citrix.com> wrote:
>>>> --- a/xen/arch/x86/setup.c
>>>> +++ b/xen/arch/x86/setup.c
>>>> @@ -558,6 +558,12 @@ void __init noreturn __start_xen(unsigned long mbi_p)
>>>> .stop_bits = 1
>>>> };
>>>>
>>>> + set_processor_id(0);
>>>> + set_current((struct vcpu *)0xfffff000); /* debug sanity */
>>>> + this_cpu(curr_vcpu) = idle_vcpu[0] = current;
>>> The this_cpu() part wasn't there in the original code - is that really
>>> needed, and ...
>> I was attempting to go for similarity between __start_xen and
>> start_secondary, which reminds me I need a further fix regarding cr4,
>> which still loads CR4.MCE on APs before having a TRAP_machine_check
>> handler available.
>>
>>>> +
>>>> + sort_exception_tables();
>>>> +
>>>> percpu_init_areas();
>>> ... is that really safe/meaningful before this function got called?
>> There is no specific relationship between sort_exception_tables() and
>> percpu_init_areas(), both of which are tweaking well defined state
>> inside the .data section.
>>
>> sort_excetpion_tables() is a prerequisite for getting extable fixups to
>> work in the trap handlers, but as indicated, it would be nice to turn it
>> into something more like "assert exception tables are sorted" and making
>> the linker do the work.
> The comment wasn't about sort_exception_tables(), but about the
> (at least apparent) conflict of this_cpu() getting used before
> percpu_init_areas().
>
> Jan
>
Ah - I see what you mean.
The BSP per_cpu_offset is 0, so the code as patched does work correctly.
It would however become a latent bug if the implementation of per_cpu
variables changed such that the BSP didn't use the copy of the per_cpu
data in the .data section.
I shall just drop the this_cpu() bit. Consistency with start_secondary
is not worth this latent bug.
~Andrew
next prev parent reply other threads:[~2014-05-15 12:42 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-15 9:48 [PATCH RFC 0/9] x86: Improvements to trap handling Andrew Cooper
2014-05-15 9:48 ` [PATCH RFC 1/9] x86/traps: Names for system descriptor types Andrew Cooper
2014-05-15 9:56 ` Andrew Cooper
2014-05-15 10:08 ` Jan Beulich
2014-05-15 10:26 ` Andrew Cooper
2014-05-15 12:10 ` Jan Beulich
2014-05-15 9:48 ` [PATCH RFC 2/9] x86/traps: Make panic and reboot paths safe during early boot Andrew Cooper
2014-05-15 10:19 ` Jan Beulich
2014-05-15 10:53 ` Andrew Cooper
2014-05-15 12:12 ` Jan Beulich
2014-05-15 15:46 ` Andrew Cooper
2014-05-15 15:59 ` Jan Beulich
2014-05-15 9:48 ` [PATCH RFC 3/9] x86/traps: Make the main trap handlers safe for use early during Xen boot Andrew Cooper
2014-05-15 10:20 ` Jan Beulich
2014-05-15 9:48 ` [PATCH RFC 4/9] x86/misc: Early cleanup Andrew Cooper
2014-05-15 10:32 ` Jan Beulich
2014-05-15 10:38 ` Andrew Cooper
2014-05-15 9:48 ` [PATCH RFC 5/9] x86/traps: Functional prep work Andrew Cooper
2014-05-15 10:36 ` Jan Beulich
2014-05-15 10:45 ` Andrew Cooper
2014-05-15 12:15 ` Jan Beulich
2014-05-15 12:42 ` Andrew Cooper [this message]
2014-05-15 9:48 ` [PATCH RFC 6/9] x86/boot: Install trap handlers much earlier on boot Andrew Cooper
2014-05-15 10:53 ` Jan Beulich
2014-05-15 11:05 ` Andrew Cooper
2014-05-15 12:21 ` Jan Beulich
2014-05-15 9:48 ` [PATCH RFC 7/9] x86/boot: Drop pre-C IDT patching Andrew Cooper
2014-05-15 9:48 ` [PATCH RFC 8/9] x86/irqs: Move interrupt-stub generation out of C Andrew Cooper
2014-05-15 13:06 ` Jan Beulich
2014-05-15 9:48 ` [PATCH RFC 9/9] x86/misc: Post cleanup Andrew Cooper
2014-05-15 13:14 ` Jan Beulich
2014-05-15 13:17 ` Andrew Cooper
2014-05-16 8:49 ` [PATCH RFC 0/9] x86: Improvements to trap handling Wu, Feng
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=5374B63A.30305@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=keir@xen.org \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.org \
/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.