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

Re: [for-4.17] xen/arm: domain_build: Do not use dprintk unconditionally





On 16/09/2022 09:32, Michal Orzel wrote:
Hi Julien,

Hi Michal,

On 16/09/2022 10:08, Julien Grall wrote:


Hi,

On 16/09/2022 08:19, Michal Orzel wrote:
Using dprintk results in printing additionally file name and line
number. This is something we do not want when printing regular
information unconditionally as it looks like as if there was some issue.
I am OK if you want to switch to a printk() but I disagree with this
argument. dprintk() is not about error, it is about anything that
doesn't matter in release build.

In the vast majority of cases, dprintk is used conditionally. That is why
in the debug build you cannot spot a single line of log starting with
a file name + line number. That is why I assume this behaviorto be abnormal
compared to all the other logs.

If someone adds a printk starting with e.g. "$$$" this is also not a bad
usage of printk but would result in an inconsistent behavior.
Every lines are different, so it is not clear what you mean by inconsistent here. For instance, we have quite a few lines starting with the subsystem (your $$$) but not all of them. Would that be inconsistent to you?



I don't think we should just switch to printk() because dprintk() add
the line/file. There are message we don't necessarily want to have in
release build. So dprintk(XENLOG_INFO, ...) would be right for them.

I think this is a matter of being consistent.

You can't really argue about consistency without explaining what is a consistent line.

As I wrote above, a message is mostly a free form. Some may use 'rc=%d' other 'error %d'...

Yes it would be good if all the errors are printed the same way. However, this needs to be a tree-wide decision rather than localized and something really not worth the argument.

Personally, I find them useful as there no grep required and/or
confusion (but that's a matter of taste). If it were me, I would add the
line/file everywhere. But I understand this takes space in the binary
(hence why this is not present in release build).

A better argument to switch to printk() is this information is useful to
the user even outside of the debug build.


Fix this by switching to printk because this information may also be
helpful on the release builds (it would still require setting loglvl to
"info" or lower level).

I think we should drop XENLOG_INFO to be consistent with the other
printk() in domain_build.c (after all this is a domain information like
the other) or use XENLOG_INFO everywhere.

My preference will be the former because otherwise most of the
information will not printed in release build by default.


Fixes: 5597f32f409c ("xen/arm: assign static shared memory to the default owner 
dom_io")

Fixes should only be used for bugs. This is not one.

Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
---
Rationale for taking this patch for 4.17:
Current code results in an abnormal behavior [1] and was introduced by

It is not abnormal (see above). This is an expected behavior when you
use dprintk().

I did not mean abnormal behavior of dprintk but abnormal behavior of logging
even on debug builds. As I said before, I could not spot any message like this
booting Xen at all. This is why I took this as a reference for "normal" 
behavior.

To me "abnormal" is quite a strong word and in this situation really a matter of taste.

Anyway, there are way to write the commit message in a more objective way. Some like:

xen/arm: domain_build: Always print the static memory region

At the moment, the static memory region are only printed during debug build. The information could be helpful for the end user (which may not be the same as the person building the package). So switch to printk().

Cheers,

--
Julien Grall



 


Rackspace

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