From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Keir Fraser <keir@xen.org>
Subject: Re: [PATCH 2/2] Xen/x86: Improve information from domain_crash_synchronous
Date: Thu, 5 Sep 2013 13:57:08 +0100 [thread overview]
Message-ID: <52287FA4.8020900@citrix.com> (raw)
In-Reply-To: <5228764A02000078000F0C31@nat28.tlf.novell.com>
On 05/09/13 11:17, Jan Beulich wrote:
>>> That shouldn't be happening - whether a symbol is local or global
>>> should not matter to symbol table generation and consumption.
>>> The matter would be different is the label started with .L...
>> Hmm - this was caught by my testing. I had initially assumed that
>> print_symbol() would DTRT, but it didn't. Perhaps it is been fed off
>> the global symbol table rather than the debug symbol table.
> The debug symbol table never gets used, but local symbols
> should always end up in the normal ELF symbol table. I just
> checked - they do here.
So they are. I have just double checked my debugging, and I was getting
mixed up with the issue from below, which would leave these .globl as
failed debugging. I shall remove them.
>
>>>>>> @@ -329,7 +330,12 @@ UNLIKELY_END(compat_bounce_failsafe)
>>>>>> movzwl TRAPBOUNCE_cs(%rdx),%eax
>>>>>> /* Null selectors (0-3) are not allowed. */
>>>>>> testl $~3,%eax
>>>>>> - jz domain_crash_synchronous
>>>>>> +.Lcompat_bounce_null_selector:
>>>>>> +UNLIKELY_START(z, compat_bounce_null_selector)
>>>>>> + lea .Lcompat_bounce_null_selector(%rip), %rdi
>>>>>> + jmp asm_domain_crash_synchronous
>>>>>> + ud2a
>>>>>> +UNLIKELY_END(compat_bounce_null_selector)
>>>>> Here and further down you don't really need the label at the
>>>>> start of the unlikely section - the place can as well be identified
>>>>> by using
>>>>>
>>>>> lea (%rip), %rdi
>>>>>
>>>>> inside that section (the place is still unique, just outside the
>>>>> original code stream, i.e. just slightly more difficult to
>>>>> re-associate).
>>>> But in an unlikely section, %rip is shifted quite a lot from %rip of the
>>>> code immediately before. This is also for the benefit of print_symbol()
>>>> which will pick up the {compat_,}create_bounce_frame rather than the
>>>> global symbol surrounding the unlikely section.
>>> I understand that, but stray labels are at clear risk of getting
>>> deleted by a subsequent cleanup patch anyway. Hence either
>>> we need a solution without stray labels, or live with the need
>>> to re-associate the address pointed to be the crash log
>>> messages to the original function.
>> That was eluded to in my patch 0 (perhaps not well enough), where I
>> intend to augment UNLIKELY_START() to automatically generate this
>> symbol, and provide an __UNLIKLEY_ENTRY_SYM() accessor. The code for
>> that was rather tangled with your UNLIKELY_DONE() patch, which is why I
>> left it and was going to fix up after your series is committed.
> I did realize those intentions, but whether an orphan label gets
> added here or in the macro doesn't matter - the label remains
> orphaned, and hence would be a likely subject to janitorial work.
>
> Jan
>
But any janitorial work which removes the proposed new label from
UNLIKELY_START() will cause a subsequent assemble error when
__UNLIKELY_ENTRY_SYM() references a non-existant label.
~Andrew
prev parent reply other threads:[~2013-09-05 12:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-04 18:18 [PATCH RFC 0/2] Improvements for domain_crash_synchronous Andrew Cooper
2013-09-04 18:18 ` [PATCH 1/2] x86/traps: Record last extable faulting address Andrew Cooper
2013-09-04 18:18 ` [PATCH 2/2] Xen/x86: Improve information from domain_crash_synchronous Andrew Cooper
2013-09-05 8:15 ` Jan Beulich
2013-09-05 9:44 ` Andrew Cooper
2013-09-05 9:51 ` Jan Beulich
2013-09-05 9:57 ` Andrew Cooper
2013-09-05 10:17 ` Jan Beulich
2013-09-05 12:57 ` Andrew Cooper [this message]
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=52287FA4.8020900@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=keir@xen.org \
--cc=xen-devel@lists.xenproject.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.