Re: [Qemu-devel] [PATCH v2 1/4] coding_style: add point about 0x in trace-events
On 07/31/2017 04:19 AM, Stefan Hajnoczi wrote: > On Sat, Jul 29, 2017 at 04:11:56PM +0300, Vladimir Sementsov-Ogievskiy wrote: >> Signed-off-by: Vladimir Sementsov-Ogievskiy>> --- >> CODING_STYLE | 23 +++ >> 1 file changed, 23 insertions(+) >> >> diff --git a/CODING_STYLE b/CODING_STYLE >> index 2fa0c0b65b..2e6a0507be 100644 >> --- a/CODING_STYLE >> +++ b/CODING_STYLE >> @@ -123,3 +123,26 @@ We use traditional C-style /* */ comments and avoid // >> comments. >> >> Rationale: The // form is valid in C99, so this is purely a matter of >> consistency of style. The checkpatch script will warn you about this. >> + >> +8. trace-events style >> + >> +In trace-events files use '0x' prefix to specify hex numbers, as in: > > s/use '0x' prefix/use a '0x' prefix/ Also s/files/files,/ > >> + >> +some_trace(unsigned x, uint64_t y) "x 0x%x y 0x" PRIx64 >> + >> +The exclusion is a group of numbers, separated by symbols '.', '/', ':', ' >> ': > > A little bit more background helps make this exception clearer: > > "An exception is made for groups of numbers that are hexadecimal by > convention and separated by the symbols '.', '/', ':', or ' ' (such as > PCI bus addresses):" > >> + >> +some_other_trace(unsigned a, unsigned b, unsigned c) "num %x.%x.%x" >> + >> +However, you can use '0x' for such groups if you want. Anyway, be sure that >> +it is obvious that numbers are in hex, ex.: >> + >> +data_dump(uint8_t c1, uint8_t c2, uint8_t c3) "bytes (in hex): %02x %02x >> %02x" >> + >> +For consistency do not use printf flag '#', like '%#x'. >> + >> +Rationale: hex numbers are hard to read in logs when there no 0x prefix, The position of the rationale makes it sound like it applies to the last paragraph (about avoiding %#x) rather than the section; but %#x provides a 0x prefix (most of the time). Better might be to have the rationale on hex numbers being hard to read first, then the paragraph on avoiding %#x, with a second rationale that %#x omits the 0x for the value 0 which makes output inconsistent; or keep a single rationale paragraph, but add a sentence to it explaining why %#x is not as nice. > > s/there no/there is no/ > >> +especially when (occasionally) the representation doesn't contain any >> letters >> +and especially in one line with other decimal numbers. Number groups are >> +allowed to not use '0x' because for some things notations like %x.%x.%x are >> +used not only in Qemu. Also dumping raw data bytes with '0x' is less >> readable. >> -- >> 2.11.1 >> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH v2 1/4] coding_style: add point about 0x in trace-events
On Sat, Jul 29, 2017 at 04:11:56PM +0300, Vladimir Sementsov-Ogievskiy wrote: > Signed-off-by: Vladimir Sementsov-Ogievskiy> --- > CODING_STYLE | 23 +++ > 1 file changed, 23 insertions(+) > > diff --git a/CODING_STYLE b/CODING_STYLE > index 2fa0c0b65b..2e6a0507be 100644 > --- a/CODING_STYLE > +++ b/CODING_STYLE > @@ -123,3 +123,26 @@ We use traditional C-style /* */ comments and avoid // > comments. > > Rationale: The // form is valid in C99, so this is purely a matter of > consistency of style. The checkpatch script will warn you about this. > + > +8. trace-events style > + > +In trace-events files use '0x' prefix to specify hex numbers, as in: s/use '0x' prefix/use a '0x' prefix/ > + > +some_trace(unsigned x, uint64_t y) "x 0x%x y 0x" PRIx64 > + > +The exclusion is a group of numbers, separated by symbols '.', '/', ':', ' ': A little bit more background helps make this exception clearer: "An exception is made for groups of numbers that are hexadecimal by convention and separated by the symbols '.', '/', ':', or ' ' (such as PCI bus addresses):" > + > +some_other_trace(unsigned a, unsigned b, unsigned c) "num %x.%x.%x" > + > +However, you can use '0x' for such groups if you want. Anyway, be sure that > +it is obvious that numbers are in hex, ex.: > + > +data_dump(uint8_t c1, uint8_t c2, uint8_t c3) "bytes (in hex): %02x %02x > %02x" > + > +For consistency do not use printf flag '#', like '%#x'. > + > +Rationale: hex numbers are hard to read in logs when there no 0x prefix, s/there no/there is no/ > +especially when (occasionally) the representation doesn't contain any letters > +and especially in one line with other decimal numbers. Number groups are > +allowed to not use '0x' because for some things notations like %x.%x.%x are > +used not only in Qemu. Also dumping raw data bytes with '0x' is less > readable. > -- > 2.11.1 > signature.asc Description: PGP signature
[Qemu-devel] [PATCH v2 1/4] coding_style: add point about 0x in trace-events
Signed-off-by: Vladimir Sementsov-Ogievskiy--- CODING_STYLE | 23 +++ 1 file changed, 23 insertions(+) diff --git a/CODING_STYLE b/CODING_STYLE index 2fa0c0b65b..2e6a0507be 100644 --- a/CODING_STYLE +++ b/CODING_STYLE @@ -123,3 +123,26 @@ We use traditional C-style /* */ comments and avoid // comments. Rationale: The // form is valid in C99, so this is purely a matter of consistency of style. The checkpatch script will warn you about this. + +8. trace-events style + +In trace-events files use '0x' prefix to specify hex numbers, as in: + +some_trace(unsigned x, uint64_t y) "x 0x%x y 0x" PRIx64 + +The exclusion is a group of numbers, separated by symbols '.', '/', ':', ' ': + +some_other_trace(unsigned a, unsigned b, unsigned c) "num %x.%x.%x" + +However, you can use '0x' for such groups if you want. Anyway, be sure that +it is obvious that numbers are in hex, ex.: + +data_dump(uint8_t c1, uint8_t c2, uint8_t c3) "bytes (in hex): %02x %02x %02x" + +For consistency do not use printf flag '#', like '%#x'. + +Rationale: hex numbers are hard to read in logs when there no 0x prefix, +especially when (occasionally) the representation doesn't contain any letters +and especially in one line with other decimal numbers. Number groups are +allowed to not use '0x' because for some things notations like %x.%x.%x are +used not only in Qemu. Also dumping raw data bytes with '0x' is less readable. -- 2.11.1