Patchwork build with trace enabled is broken by the commit c572f23a3e7180dbeab5e86583e43ea2afed6271 hw/9pfs: Introduce tracing for 9p pdu handlers

login
register
mail settings
Submitter Max Filippov
Date Oct. 20, 2011, 7:20 p.m.
Message ID <201110202320.54504.jcmvbkbc@gmail.com>
Download mbox | patch
Permalink /patch/120865/
State New
Headers show

Comments

Max Filippov - Oct. 20, 2011, 7:20 p.m.
Hi.

Current git head build with trace enabled is broken by the commit c572f23a3e7180dbeab5e86583e43ea2afed6271 hw/9pfs: Introduce tracing for 9p pdu handlers.
Error messages:

In file included from trace.c:2:0:
trace.h: In function ‘trace_v9fs_attach’:
trace.h:2850:9: error: too many arguments for format [-Werror=format-extra-args]
trace.h: In function ‘trace_v9fs_wstat’:
trace.h:3039:9: error: too many arguments for format [-Werror=format-extra-args]
trace.h: In function ‘trace_v9fs_mkdir’:
trace.h:3088:9: error: too many arguments for format [-Werror=format-extra-args]
trace.h: In function ‘trace_v9fs_mkdir_return’:
trace.h:3095:9: error: too many arguments for format [-Werror=format-extra-args]
cc1: all warnings being treated as errors

Prototypes in the trace-events do not match format strings, e.g.

v9fs_attach(uint16_t tag, uint8_t id, int32_t fid, int32_t afid, char* uname, char* aname) "tag %d id %d fid %d afid %d aname %s"

The following patch fixes it, but I'm not sure the format lines are appropriate.



Thanks.
-- Max
Stefan Weil - Oct. 20, 2011, 7:24 p.m.
Am 20.10.2011 21:20, schrieb Max Filippov:
> Hi.
>
> Current git head build with trace enabled is broken by the commit c572f23a3e7180dbeab5e86583e43ea2afed6271 hw/9pfs: Introduce tracing for 9p pdu handlers.
> Error messages:
>
> In file included from trace.c:2:0:
> trace.h: In function ‘trace_v9fs_attach’:
> trace.h:2850:9: error: too many arguments for format [-Werror=format-extra-args]
> trace.h: In function ‘trace_v9fs_wstat’:
> trace.h:3039:9: error: too many arguments for format [-Werror=format-extra-args]
> trace.h: In function ‘trace_v9fs_mkdir’:
> trace.h:3088:9: error: too many arguments for format [-Werror=format-extra-args]
> trace.h: In function ‘trace_v9fs_mkdir_return’:
> trace.h:3095:9: error: too many arguments for format [-Werror=format-extra-args]
> cc1: all warnings being treated as errors
>

I noticed that, too, and I'm just preparing a patch.

Stefan W.
Aneesh Kumar K.V - Oct. 21, 2011, 3:10 p.m.
On Thu, 20 Oct 2011 23:20:54 +0400, Max Filippov <jcmvbkbc@gmail.com> wrote:
> Hi.
> 
> Current git head build with trace enabled is broken by the commit c572f23a3e7180dbeab5e86583e43ea2afed6271 hw/9pfs: Introduce tracing for 9p pdu handlers.
> Error messages:
> 
> In file included from trace.c:2:0:
> trace.h: In function ‘trace_v9fs_attach’:
> trace.h:2850:9: error: too many arguments for format [-Werror=format-extra-args]
> trace.h: In function ‘trace_v9fs_wstat’:
> trace.h:3039:9: error: too many arguments for format [-Werror=format-extra-args]
> trace.h: In function ‘trace_v9fs_mkdir’:
> trace.h:3088:9: error: too many arguments for format [-Werror=format-extra-args]
> trace.h: In function ‘trace_v9fs_mkdir_return’:
> trace.h:3095:9: error: too many arguments for format [-Werror=format-extra-args]
> cc1: all warnings being treated as errors
> 
> Prototypes in the trace-events do not match format strings, e.g.
> 
> v9fs_attach(uint16_t tag, uint8_t id, int32_t fid, int32_t afid, char* uname, char* aname) "tag %d id %d fid %d afid %d aname %s"
> 
> The following patch fixes it, but I'm not sure the format lines are appropriate.

Can you send the patch with signed-off-by: I will add it in the next
pull request.

-aneesh
Jan Kiszka - Oct. 23, 2011, 1:54 p.m.
On 2011-10-21 17:10, Aneesh Kumar K.V wrote:
> On Thu, 20 Oct 2011 23:20:54 +0400, Max Filippov <jcmvbkbc@gmail.com> wrote:
>> Hi.
>>
>> Current git head build with trace enabled is broken by the commit c572f23a3e7180dbeab5e86583e43ea2afed6271 hw/9pfs: Introduce tracing for 9p pdu handlers.
>> Error messages:
>>
>> In file included from trace.c:2:0:
>> trace.h: In function ‘trace_v9fs_attach’:
>> trace.h:2850:9: error: too many arguments for format [-Werror=format-extra-args]
>> trace.h: In function ‘trace_v9fs_wstat’:
>> trace.h:3039:9: error: too many arguments for format [-Werror=format-extra-args]
>> trace.h: In function ‘trace_v9fs_mkdir’:
>> trace.h:3088:9: error: too many arguments for format [-Werror=format-extra-args]
>> trace.h: In function ‘trace_v9fs_mkdir_return’:
>> trace.h:3095:9: error: too many arguments for format [-Werror=format-extra-args]
>> cc1: all warnings being treated as errors
>>
>> Prototypes in the trace-events do not match format strings, e.g.
>>
>> v9fs_attach(uint16_t tag, uint8_t id, int32_t fid, int32_t afid, char* uname, char* aname) "tag %d id %d fid %d afid %d aname %s"
>>
>> The following patch fixes it, but I'm not sure the format lines are appropriate.
> 
> Can you send the patch with signed-off-by: I will add it in the next
> pull request.

There are more breakages with tracing enabled:

  CC    libhw64/9pfs/virtio-9p.o
cc1: warnings being treated as errors
/data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_create’:
/data/qemu/hw/9pfs/virtio-9p.c:2225:9: error: ‘iounit’ may be used uninitialized in this function                                                                                                                                            
/data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_readdir’:
/data/qemu/hw/9pfs/virtio-9p.c:2063:13: error: ‘count’ may be used uninitialized in this function                                                                                                                                            
/data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_xattrwalk’:
/data/qemu/hw/9pfs/virtio-9p.c:3103:13: error: ‘size’ may be used uninitialized in this function                                                                                                                                             
/data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_lcreate’:
/data/qemu/hw/9pfs/virtio-9p.c:1730:13: error: ‘iounit’ may be used uninitialized in this function                                                                                                                                           
/data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_open’:
/data/qemu/hw/9pfs/virtio-9p.c:1651:9: error: ‘iounit’ may be used uninitialized in this function                                                                                                                                            

Not sure what the undefined variables are supposed to contain for the
trace output, so I refrain from writing any patch.

Jan
Aneesh Kumar K.V - Oct. 24, 2011, 6:16 a.m.
On Sun, 23 Oct 2011 15:54:59 +0200, Jan Kiszka <jan.kiszka@web.de> wrote:
> On 2011-10-21 17:10, Aneesh Kumar K.V wrote:
> > On Thu, 20 Oct 2011 23:20:54 +0400, Max Filippov <jcmvbkbc@gmail.com> wrote:
> >> Hi.
> >>
> >> Current git head build with trace enabled is broken by the commit c572f23a3e7180dbeab5e86583e43ea2afed6271 hw/9pfs: Introduce tracing for 9p pdu handlers.
> >> Error messages:
> >>
> >> In file included from trace.c:2:0:
> >> trace.h: In function ‘trace_v9fs_attach’:
> >> trace.h:2850:9: error: too many arguments for format [-Werror=format-extra-args]
> >> trace.h: In function ‘trace_v9fs_wstat’:
> >> trace.h:3039:9: error: too many arguments for format [-Werror=format-extra-args]
> >> trace.h: In function ‘trace_v9fs_mkdir’:
> >> trace.h:3088:9: error: too many arguments for format [-Werror=format-extra-args]
> >> trace.h: In function ‘trace_v9fs_mkdir_return’:
> >> trace.h:3095:9: error: too many arguments for format [-Werror=format-extra-args]
> >> cc1: all warnings being treated as errors
> >>
> >> Prototypes in the trace-events do not match format strings, e.g.
> >>
> >> v9fs_attach(uint16_t tag, uint8_t id, int32_t fid, int32_t afid, char* uname, char* aname) "tag %d id %d fid %d afid %d aname %s"
> >>
> >> The following patch fixes it, but I'm not sure the format lines are appropriate.
> > 
> > Can you send the patch with signed-off-by: I will add it in the next
> > pull request.
> 
> There are more breakages with tracing enabled:
> 
>   CC    libhw64/9pfs/virtio-9p.o
> cc1: warnings being treated as errors
> /data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_create’:
> /data/qemu/hw/9pfs/virtio-9p.c:2225:9: error: ‘iounit’ may be used uninitialized in this function                                                                                                                                            
> /data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_readdir’:
> /data/qemu/hw/9pfs/virtio-9p.c:2063:13: error: ‘count’ may be used uninitialized in this function                                                                                                                                            
> /data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_xattrwalk’:
> /data/qemu/hw/9pfs/virtio-9p.c:3103:13: error: ‘size’ may be used uninitialized in this function                                                                                                                                             
> /data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_lcreate’:
> /data/qemu/hw/9pfs/virtio-9p.c:1730:13: error: ‘iounit’ may be used uninitialized in this function                                                                                                                                           
> /data/qemu/hw/9pfs/virtio-9p.c: In function ‘v9fs_open’:
> /data/qemu/hw/9pfs/virtio-9p.c:1651:9: error: ‘iounit’ may be used uninitialized in this function                                                                                                                                            
> 
> Not sure what the undefined variables are supposed to contain for the
> trace output, so I refrain from writing any patch.

Ok i am testing VirtFS tracing and will send a patch that should fix these
issues. Sorry for all inconvenience. Even though i do test on
three different distros, all of them were done without tracing enabled.

-aneesh

Patch

diff --git a/trace-events b/trace-events
index fc13733..d04fe3e 100644
--- a/trace-events
+++ b/trace-events
@@ -557,7 +557,7 @@  open_eth_desc_write(uint32_t addr, uint32_t v) "DESC[%04x] <- %08x"
 complete_pdu(uint16_t tag, uint8_t id, int err) "tag %d id %d err %d"
 v9fs_version(uint16_t tag, uint8_t id, int32_t msize, char* version) "tag %d id %d msize %d version %s"
 v9fs_version_return(uint16_t tag, uint8_t id, int32_t msize, char* version) "tag %d id %d msize %d version %s"
-v9fs_attach(uint16_t tag, uint8_t id, int32_t fid, int32_t afid, char* uname, char* aname) "tag %d id %d fid %d afid %d aname %s"
+v9fs_attach(uint16_t tag, uint8_t id, int32_t fid, int32_t afid, char* uname, char* aname) "tag %d id %d fid %d afid %d uname %s aname %s"
 v9fs_attach_return(uint16_t tag, uint8_t id, int8_t type, int32_t version, int64_t path) "tag %d id %d type %d version %d path %"PRId64""
 v9fs_stat(uint16_t tag, uint8_t id, int32_t fid) "tag %d id %d fid %d"
 v9fs_stat_return(uint16_t tag, uint8_t id, int32_t mode, int32_t atime, int32_t mtime, int64_t length) "tag %d id %d stat={mode %d atime %d mtime %d length %"PRId64"}"
@@ -584,15 +584,15 @@  v9fs_symlink_return(uint16_t tag, uint8_t id, int8_t type, int32_t version, int6
 v9fs_flush(uint16_t tag, uint8_t id, int16_t flush_tag) "tag %d id %d flush_tag %d"
 v9fs_link(uint16_t tag, uint8_t id, int32_t dfid, int32_t oldfid, char* name) "tag %d id %d dfid %d oldfid %d name %s"
 v9fs_remove(uint16_t tag, uint8_t id, int32_t fid) "tag %d id %d fid %d"
-v9fs_wstat(uint16_t tag, uint8_t id, int32_t fid, int32_t mode, int32_t atime, int32_t mtime) "tag %d id %d fid %d stat={mode %d atime %d mtime}"
+v9fs_wstat(uint16_t tag, uint8_t id, int32_t fid, int32_t mode, int32_t atime, int32_t mtime) "tag %d id %d fid %d stat={mode %d atime %d mtime %d}"
 v9fs_mknod(uint16_t tag, uint8_t id, int32_t fid, int mode, int major, int minor) "tag %d id %d fid %d mode %d major %d minor %d"
 v9fs_mknod_return(uint16_t tag, uint8_t id, int8_t type, int32_t version, int64_t path) "tag %d id %d qid={type %d version %d path %"PRId64"}"
 v9fs_lock(uint16_t tag, uint8_t id, int32_t fid, uint8_t type, uint64_t start, uint64_t length) "tag %d id %d fid %d type %d start %"PRIu64" length %"PRIu64""
 v9fs_lock_return(uint16_t tag, uint8_t id, int8_t status) "tag %d id %d status %d"
 v9fs_getlock(uint16_t tag, uint8_t id, int32_t fid, uint8_t type, uint64_t start, uint64_t length)"tag %d id %d fid %d type %d start %"PRIu64" length %"PRIu64""
 v9fs_getlock_return(uint16_t tag, uint8_t id, uint8_t type, uint64_t start, uint64_t length, uint32_t proc_id) "tag %d id %d type %d start %"PRIu64" length %"PRIu64" proc_id %u"
-v9fs_mkdir(uint16_t tag, uint8_t id, int32_t fid, char* name, int mode, uint32_t gid) "tag %d id %d fid %d name %s mode %d"
-v9fs_mkdir_return(uint16_t tag, uint8_t id, int8_t type, int32_t version, int64_t path, int err) "tag %d id %d qid={type %d version %d path %"PRId64"}"
+v9fs_mkdir(uint16_t tag, uint8_t id, int32_t fid, char* name, int mode, uint32_t gid) "tag %d id %d fid %d name %s mode %d gid %d"
+v9fs_mkdir_return(uint16_t tag, uint8_t id, int8_t type, int32_t version, int64_t path, int err) "tag %d id %d qid={type %d version %d path %"PRId64"} err %d"
 v9fs_xattrwalk(uint16_t tag, uint8_t id, int32_t fid, int32_t newfid, char* name) "tag %d id %d fid %d newfid %d name %s"
 v9fs_xattrwalk_return(uint16_t tag, uint8_t id, int64_t size) "tag %d id %d size %"PRId64""
 v9fs_xattrcreate(uint16_t tag, uint8_t id, int32_t fid, char* name, int64_t size, int flags) "tag %d id %d fid %d name %s size %"PRId64" flags %d"