Re: [PATCH v2 1/3] hw/block/pflash: Remove dynamic field width from trace events

2019-11-18 Thread Philippe Mathieu-Daudé

On 11/18/19 8:21 PM, Eric Blake wrote:

On 11/14/19 3:26 PM, Philippe Mathieu-Daudé wrote:


-    trace_pflash_data_read(offset, width << 1, ret);
+    trace_pflash_data_read(offset, width << 3, ret);


Umm, why is width changing?  That's not mentioned in the commit message.


Previously it was used to set the format width: [1, 2, 4] -> [2, 4, 8].

We usually log the width in byte (accessed at memory location) or bits 
(used by the bus). When using this device I'm custom to think in bus 
access width.


Regardless whichever format we prefer, a change is needed.





Do you prefer using a "-bit" suffix? As

"offset:0x%04"PRIx64" width:%d-bit value:0x%04x cmd:0x%02x wcycle:%u"

I can also simply remove this information. Ideally I'd revert this 
patch once the we get this format parsable by the SystemTap backend.


Reporting either 'width:8-bit'/'width:16-bit' (explicit bits) or 
'width:1'/'width:2' (implying byte) is fine by me.  Showing a bus width 
in bytes adequately explains why you are using <<3 (aka converting bits 
to bytes), and how it compares to the previous <<1 (converting bits to 
number of hex characters).  But whichever you pick (tracing bit width 
vs. byte width, and how it differs from previous usage of width as 
output-character count), documenting it in the commit message will make 
life easier to understand the change.


Yes you are right, I should have documented to avoid wasting review time 
clearing the confusion.





Re: [PATCH v2 1/3] hw/block/pflash: Remove dynamic field width from trace events

2019-11-18 Thread Eric Blake

On 11/14/19 3:26 PM, Philippe Mathieu-Daudé wrote:


-    trace_pflash_data_read(offset, width << 1, ret);
+    trace_pflash_data_read(offset, width << 3, ret);


Umm, why is width changing?  That's not mentioned in the commit message.


Previously it was used to set the format width: [1, 2, 4] -> [2, 4, 8].

We usually log the width in byte (accessed at memory location) or bits 
(used by the bus). When using this device I'm custom to think in bus 
access width.


Regardless whichever format we prefer, a change is needed.





Do you prefer using a "-bit" suffix? As

"offset:0x%04"PRIx64" width:%d-bit value:0x%04x cmd:0x%02x wcycle:%u"

I can also simply remove this information. Ideally I'd revert this patch 
once the we get this format parsable by the SystemTap backend.


Reporting either 'width:8-bit'/'width:16-bit' (explicit bits) or 
'width:1'/'width:2' (implying byte) is fine by me.  Showing a bus width 
in bytes adequately explains why you are using <<3 (aka converting bits 
to bytes), and how it compares to the previous <<1 (converting bits to 
number of hex characters).  But whichever you pick (tracing bit width 
vs. byte width, and how it differs from previous usage of width as 
output-character count), documenting it in the commit message will make 
life easier to understand the change.


--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




Re: [PATCH v2 1/3] hw/block/pflash: Remove dynamic field width from trace events

2019-11-14 Thread Philippe Mathieu-Daudé

Hi Eric,

On 11/8/19 4:56 PM, Eric Blake wrote:

On 11/8/19 8:40 AM, Philippe Mathieu-Daudé wrote:

Since not all trace backends support dynamic field width in
format (dtrace via stap does not), replace by a static field
width instead.

Reported-by: Eric Blake 
Buglink: https://bugs.launchpad.net/qemu/+bug/1844817
Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/block/pflash_cfi01.c | 8 
  hw/block/pflash_cfi02.c | 8 
  hw/block/trace-events   | 8 
  3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index 566c0acb77..787d1196f2 100644
--- a/hw/block/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
@@ -276,7 +276,7 @@ static uint32_t pflash_data_read(PFlashCFI01 *pfl, 
hwaddr offset,

  DPRINTF("BUG in %s\n", __func__);
  abort();
  }
-    trace_pflash_data_read(offset, width << 1, ret);
+    trace_pflash_data_read(offset, width << 3, ret);


Umm, why is width changing?  That's not mentioned in the commit message.


Previously it was used to set the format width: [1, 2, 4] -> [2, 4, 8].

We usually log the width in byte (accessed at memory location) or bits 
(used by the bus). When using this device I'm custom to think in bus 
access width.


Regardless whichever format we prefer, a change is needed.



@@ -389,7 +389,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, 
hwaddr offset,

  break;
  }
-    trace_pflash_io_read(offset, width, width << 1, ret, pfl->cmd, 
pfl->wcycle);
+    trace_pflash_io_read(offset, width << 3, ret, pfl->cmd, 
pfl->wcycle);


And even this one is odd.  Matching up to the trace messages:


-pflash_io_read(uint64_t offset, int width, int fmt_width, uint32_t 
value, uint8_t cmd, uint8_t wcycle) "offset:0x%04"PRIx64" width:%d 
value:0x%0*x cmd:0x%02x wcycle:%u"


+pflash_io_read(uint64_t offset, int width, uint32_t value, uint8_t 
cmd, uint8_t wcycle) "offset:0x%04"PRIx64" width:%d value:0x%04x 
cmd:0x%02x wcycle:%u"


you are changing from:

"%04"PRIx64" %d %0*x...", offset, width, width << 1, ret,...

(where width<<1, ret matches *x)

into

"%04"PRIx64" %d %04x...", offset, width << 3, ret,...

where you are now printing a different value for width.


Do you prefer using a "-bit" suffix? As

"offset:0x%04"PRIx64" width:%d-bit value:0x%04x cmd:0x%02x wcycle:%u"

I can also simply remove this information. Ideally I'd revert this patch 
once the we get this format parsable by the SystemTap backend.





Re: [PATCH v2 1/3] hw/block/pflash: Remove dynamic field width from trace events

2019-11-08 Thread Eric Blake

On 11/8/19 8:40 AM, Philippe Mathieu-Daudé wrote:

Since not all trace backends support dynamic field width in
format (dtrace via stap does not), replace by a static field
width instead.

Reported-by: Eric Blake 
Buglink: https://bugs.launchpad.net/qemu/+bug/1844817
Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/block/pflash_cfi01.c | 8 
  hw/block/pflash_cfi02.c | 8 
  hw/block/trace-events   | 8 
  3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index 566c0acb77..787d1196f2 100644
--- a/hw/block/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
@@ -276,7 +276,7 @@ static uint32_t pflash_data_read(PFlashCFI01 *pfl, hwaddr 
offset,
  DPRINTF("BUG in %s\n", __func__);
  abort();
  }
-trace_pflash_data_read(offset, width << 1, ret);
+trace_pflash_data_read(offset, width << 3, ret);


Umm, why is width changing?  That's not mentioned in the commit message.


@@ -389,7 +389,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr offset,
  
  break;

  }
-trace_pflash_io_read(offset, width, width << 1, ret, pfl->cmd, 
pfl->wcycle);
+trace_pflash_io_read(offset, width << 3, ret, pfl->cmd, pfl->wcycle);


And even this one is odd.  Matching up to the trace messages:



-pflash_io_read(uint64_t offset, int width, int fmt_width, uint32_t value, uint8_t cmd, uint8_t 
wcycle) "offset:0x%04"PRIx64" width:%d value:0x%0*x cmd:0x%02x wcycle:%u"



+pflash_io_read(uint64_t offset, int width, uint32_t value, uint8_t cmd, uint8_t wcycle) 
"offset:0x%04"PRIx64" width:%d value:0x%04x cmd:0x%02x wcycle:%u"


you are changing from:

"%04"PRIx64" %d %0*x...", offset, width, width << 1, ret,...

(where width<<1, ret matches *x)

into

"%04"PRIx64" %d %04x...", offset, width << 3, ret,...

where you are now printing a different value for width.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org