From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH] x86/traps: Misc tweaks to several printk()s
Date: Wed, 15 Jul 2015 10:48:09 +0100 [thread overview]
Message-ID: <55A62C59.2080802@citrix.com> (raw)
In-Reply-To: <55A63E0F0200007800091296@mail.emea.novell.com>
On 15/07/15 10:03, Jan Beulich wrote:
>>>> On 14.07.15 at 19:54, <andrew.cooper3@citrix.com> wrote:
>> @@ -626,8 +626,9 @@ static void do_trap(struct cpu_user_regs *regs, int use_error_code)
>>
>> if ( likely((fixup = search_exception_table(regs->eip)) != 0) )
>> {
>> - dprintk(XENLOG_ERR, "Trap %d: %p -> %p\n",
>> - trapnr, _p(regs->eip), _p(fixup));
>> + printk(XENLOG_INFO "Exception [#%d, ec=%04x] (%s): %ps %p -> %p\n",
>> + trapnr, use_error_code ? regs->error_code : 0, trapstr(trapnr),
>> + _p(regs->eip), _p(regs->eip), _p(fixup));
> But why the transition dprintk() -> printk()?
The file/line reference here is not useful, but now that you point it
out I had forgotten to consider that dprintk() now only exists in debug
builds.
It would be nice to have a variant on printk() which is restricted to
debug builds, but doesn't have a file/line reference.
>
>> @@ -2677,9 +2678,9 @@ static int emulate_privileged_op(struct cpu_user_regs *regs)
>>
>> if ( (rdmsr_safe(regs->ecx, val) != 0) || (msr_content != val) )
>> invalid:
>> - gdprintk(XENLOG_WARNING, "Domain attempted WRMSR %p from "
>> - "0x%016"PRIx64" to 0x%016"PRIx64".\n",
>> - _p(regs->ecx), val, msr_content);
>> + gprintk(XENLOG_WARNING,
>> + "attempted WRMSR 0x%08x: 0x%016"PRIx64" -> 0x%016"PRIx64"\n",
>> + regs->_ecx, val, msr_content);
> In cases where the values can't usefully be taken to be decimal I'd
> prefer the 0x prefixes to be omitted.
>
>> @@ -2813,10 +2814,11 @@ static int emulate_privileged_op(struct cpu_user_regs *regs)
>> case MSR_EFER:
>> rdmsr_normal:
>> /* Everyone can read the MSR space. */
>> - /* gdprintk(XENLOG_WARNING,"Domain attempted RDMSR %p.\n",
>> - _p(regs->ecx));*/
>> if ( rdmsr_safe(regs->ecx, val) )
>> + {
>> + gprintk(XENLOG_WARNING, "attempted RDMSR 0x%08x\n", regs->_ecx);
>> goto fail;
>> + }
> Do you really see this to be useful in production builds?
There is currently an asymmetry between the WRMSR and RDMSR paths, which
shouldn't exist IMO.
Guest warning is rate limited by default, and anecdotally, this path
doesn't trigger by default on any of my test boxes with a 3.10 pvops kernel.
~Andrew
next prev parent reply other threads:[~2015-07-15 9:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-14 17:54 [PATCH] x86/traps: Misc tweaks to several printk()s Andrew Cooper
2015-07-15 9:03 ` Jan Beulich
2015-07-15 9:48 ` Andrew Cooper [this message]
2015-07-15 10:01 ` Jan Beulich
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=55A62C59.2080802@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--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 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).