xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xenproject.org, tim@xen.org,
	stefano.stabellini@citrix.com
Subject: Re: [PATCH v2] xen/arm: Correctly support WARN_ON
Date: Mon, 08 Sep 2014 12:19:04 -0700	[thread overview]
Message-ID: <540E0128.8070506@linaro.org> (raw)
In-Reply-To: <1410181281.3680.3.camel@kazak.uk.xensource.com>

Hi Ian,

On 08/09/14 06:01, Ian Campbell wrote:
>> +    /* PC is always 4-byte align, as Xen is using ARM instruction set */
>
> "aligned"

Ok.

> Is it worth a check here? I presume the nested fault if PC were
> misaligned would be pretty exciting, print+goto die would seem
> appropriate.

I don't think so. The "undefined instruction" is only used when the 
processor is unable to decode the instruction. If it fails to load the 
instruction (because a wrong memory address, pc misaligned), Xen would 
have received a "prefetch abort".

>> +    instr = *((uint32_t *)regs->pc);
>> +    if ( instr != BUG_OPCODE )
>> +        goto die;
>> +
>> +    if ( do_bug_frame(regs, regs->pc) )
>> +        goto die;
>> +
>> +    regs->pc += 4;
>> +    return;
>> +
>> +die:
>> +    do_unexpected_trap("undefined instruction", regs);
>
> No need to change the case of this message.

Ok.

>>   }> +#ifdef CONFIG_ARM_64
>> +static void do_trap_brk(struct cpu_user_regs *regs, union hsr hsr)
>> +{
>> +    /* HCR_EL2.TGE and MDCR_EL2.TDE are not set so we never receive
>> +     * software breakpoint exception for EL1 and EL0 here
>> +     */
>
> BUG_ON? ;-O

Sounds a good plan.

>> +die:
>> +        do_unexpected_trap("undefined breakpoint value", regs);
>
> Please can you capitilise this to match the other callers.

Will do.

>
>> +/* Many version of GCC doesn't support the asm %c parameter which would
>
> "versions".
>
>> + * be preferable to this unpleasantness. We use mergeable string
>> + * sections to avoid multiple copies of the string appearing in the
>> + * Xen image.
>
> OOI what is the size increase of the final (stripped) binary with this patch?
	
I compared the file xen/xen and on both arm32/arm64 the binary is 
smaller of about 2%.

I think this is because previously gcc wasn't merge the string when 
BUG_ON was used in inline function.

Regards,

-- 
Julien Grall

  reply	other threads:[~2014-09-08 19:19 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05 16:32 [PATCH v2] xen/arm: Correctly support WARN_ON Julien Grall
2014-09-08 13:01 ` Ian Campbell
2014-09-08 19:19   ` Julien Grall [this message]
2014-09-08 19:24     ` Julien Grall
2014-09-09  9:19       ` Ian Campbell
2014-09-09 20:25         ` Julien Grall
2014-09-09  9:17     ` Ian Campbell
2014-09-09 18:31       ` Julien Grall
2014-09-10  9:35         ` Ian Campbell
2014-09-10 19:02           ` Julien Grall

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=540E0128.8070506@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=tim@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).