[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/traps: Misc tweaks to several printk()s



>>> On 15.07.15 at 11:48, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 15/07/15 10:03, Jan Beulich wrote:
>>>>> On 14.07.15 at 19:54, <andrew.cooper3@xxxxxxxxxx> 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.

But otoh the file/line pair shouldn't cause a lot of confusion - debug
build users can certainly be expected to cope with that. Which isn't
to say that I'd even consider making dprintk() by default not print
file/line, and instead have a dprintk_at() or DPRINTK() doing so for
those who really can't write distinguishable messages.

>>> @@ -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.

I'm of the opposite opinion: Knowing that (just like we do) guest
kernels may access MSRs being prepared to get a #GP, and this
(naturally) being more likely on RDMSR (why would one try to write
an MSR one can't read?), the asymmetry has a reason.

> 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.

Which is nice to know, but not nearly enough to assume we won't get
flooded (ignoring the rate limiting) by these for other guest kernels.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.