Patchwork [1/2] usb-host: update tracing

login
register
mail settings
Submitter Gerd Hoffmann
Date Nov. 15, 2012, 3:19 p.m.
Message ID <1352992763-31409-1-git-send-email-kraxel@redhat.com>
Download mbox | patch
Permalink /patch/199321/
State New
Headers show

Comments

Gerd Hoffmann - Nov. 15, 2012, 3:19 p.m.
Now that we have separate status and length fields in USBPacket
update the completion tracepoint to log both.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/host-linux.c |   20 ++++++++++++--------
 trace-events        |    2 +-
 2 files changed, 13 insertions(+), 9 deletions(-)
Hans de Goede - Nov. 15, 2012, 3:23 p.m.
ACK series.

Regards,

Hans


On 11/15/2012 04:19 PM, Gerd Hoffmann wrote:
> Now that we have separate status and length fields in USBPacket
> update the completion tracepoint to log both.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>   hw/usb/host-linux.c |   20 ++++++++++++--------
>   trace-events        |    2 +-
>   2 files changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
> index b17e1dc..e3d394f 100644
> --- a/hw/usb/host-linux.c
> +++ b/hw/usb/host-linux.c
> @@ -385,10 +385,12 @@ static void async_complete(void *opaque)
>               }
>
>               if (aurb->urb.type == USBDEVFS_URB_TYPE_CONTROL) {
> -                trace_usb_host_req_complete(s->bus_num, s->addr, p, p->status);
> +                trace_usb_host_req_complete(s->bus_num, s->addr, p,
> +                                            p->status, aurb->urb.actual_length);
>                   usb_generic_async_ctrl_complete(&s->dev, p);
>               } else if (!aurb->more) {
> -                trace_usb_host_req_complete(s->bus_num, s->addr, p, p->status);
> +                trace_usb_host_req_complete(s->bus_num, s->addr, p,
> +                                            p->status, aurb->urb.actual_length);
>                   usb_packet_complete(&s->dev, p);
>               }
>           }
> @@ -863,8 +865,9 @@ static void usb_host_handle_data(USBDevice *dev, USBPacket *p)
>                               p->ep->nr, p->iov.size);
>
>       if (!is_valid(s, p->pid, p->ep->nr)) {
> -        trace_usb_host_req_complete(s->bus_num, s->addr, p, USB_RET_NAK);
>           p->status = USB_RET_NAK;
> +        trace_usb_host_req_complete(s->bus_num, s->addr, p,
> +                                    p->status, p->actual_length);
>           return;
>       }
>
> @@ -879,8 +882,9 @@ static void usb_host_handle_data(USBDevice *dev, USBPacket *p)
>           ret = ioctl(s->fd, USBDEVFS_CLEAR_HALT, &arg);
>           if (ret < 0) {
>               perror("USBDEVFS_CLEAR_HALT");
> -            trace_usb_host_req_complete(s->bus_num, s->addr, p, USB_RET_NAK);
>               p->status = USB_RET_NAK;
> +            trace_usb_host_req_complete(s->bus_num, s->addr, p,
> +                                        p->status, p->actual_length);
>               return;
>           }
>           clear_halt(s, p->pid, p->ep->nr);
> @@ -936,15 +940,15 @@ static void usb_host_handle_data(USBDevice *dev, USBPacket *p)
>
>               switch(errno) {
>               case ETIMEDOUT:
> -                trace_usb_host_req_complete(s->bus_num, s->addr, p,
> -                                            USB_RET_NAK);
>                   p->status = USB_RET_NAK;
> +                trace_usb_host_req_complete(s->bus_num, s->addr, p,
> +                                            p->status, p->actual_length);
>                   break;
>               case EPIPE:
>               default:
> -                trace_usb_host_req_complete(s->bus_num, s->addr, p,
> -                                            USB_RET_STALL);
>                   p->status = USB_RET_STALL;
> +                trace_usb_host_req_complete(s->bus_num, s->addr, p,
> +                                            p->status, p->actual_length);
>               }
>               return;
>           }
> diff --git a/trace-events b/trace-events
> index 913e00b..02cdabc 100644
> --- a/trace-events
> +++ b/trace-events
> @@ -431,7 +431,7 @@ usb_host_claim_interfaces(int bus, int addr, int config, int nif) "dev %d:%d, co
>   usb_host_release_interfaces(int bus, int addr) "dev %d:%d"
>   usb_host_req_control(int bus, int addr, void *p, int req, int value, int index) "dev %d:%d, packet %p, req 0x%x, value %d, index %d"
>   usb_host_req_data(int bus, int addr, void *p, int in, int ep, int size) "dev %d:%d, packet %p, in %d, ep %d, size %d"
> -usb_host_req_complete(int bus, int addr, void *p, int status) "dev %d:%d, packet %p, status %d"
> +usb_host_req_complete(int bus, int addr, void *p, int status, int length) "dev %d:%d, packet %p, status %d, length %d"
>   usb_host_req_emulated(int bus, int addr, void *p, int status) "dev %d:%d, packet %p, status %d"
>   usb_host_req_canceled(int bus, int addr, void *p) "dev %d:%d, packet %p"
>   usb_host_urb_submit(int bus, int addr, void *aurb, int length, int more) "dev %d:%d, aurb %p, length %d, more %d"
>

Patch

diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
index b17e1dc..e3d394f 100644
--- a/hw/usb/host-linux.c
+++ b/hw/usb/host-linux.c
@@ -385,10 +385,12 @@  static void async_complete(void *opaque)
             }
 
             if (aurb->urb.type == USBDEVFS_URB_TYPE_CONTROL) {
-                trace_usb_host_req_complete(s->bus_num, s->addr, p, p->status);
+                trace_usb_host_req_complete(s->bus_num, s->addr, p,
+                                            p->status, aurb->urb.actual_length);
                 usb_generic_async_ctrl_complete(&s->dev, p);
             } else if (!aurb->more) {
-                trace_usb_host_req_complete(s->bus_num, s->addr, p, p->status);
+                trace_usb_host_req_complete(s->bus_num, s->addr, p,
+                                            p->status, aurb->urb.actual_length);
                 usb_packet_complete(&s->dev, p);
             }
         }
@@ -863,8 +865,9 @@  static void usb_host_handle_data(USBDevice *dev, USBPacket *p)
                             p->ep->nr, p->iov.size);
 
     if (!is_valid(s, p->pid, p->ep->nr)) {
-        trace_usb_host_req_complete(s->bus_num, s->addr, p, USB_RET_NAK);
         p->status = USB_RET_NAK;
+        trace_usb_host_req_complete(s->bus_num, s->addr, p,
+                                    p->status, p->actual_length);
         return;
     }
 
@@ -879,8 +882,9 @@  static void usb_host_handle_data(USBDevice *dev, USBPacket *p)
         ret = ioctl(s->fd, USBDEVFS_CLEAR_HALT, &arg);
         if (ret < 0) {
             perror("USBDEVFS_CLEAR_HALT");
-            trace_usb_host_req_complete(s->bus_num, s->addr, p, USB_RET_NAK);
             p->status = USB_RET_NAK;
+            trace_usb_host_req_complete(s->bus_num, s->addr, p,
+                                        p->status, p->actual_length);
             return;
         }
         clear_halt(s, p->pid, p->ep->nr);
@@ -936,15 +940,15 @@  static void usb_host_handle_data(USBDevice *dev, USBPacket *p)
 
             switch(errno) {
             case ETIMEDOUT:
-                trace_usb_host_req_complete(s->bus_num, s->addr, p,
-                                            USB_RET_NAK);
                 p->status = USB_RET_NAK;
+                trace_usb_host_req_complete(s->bus_num, s->addr, p,
+                                            p->status, p->actual_length);
                 break;
             case EPIPE:
             default:
-                trace_usb_host_req_complete(s->bus_num, s->addr, p,
-                                            USB_RET_STALL);
                 p->status = USB_RET_STALL;
+                trace_usb_host_req_complete(s->bus_num, s->addr, p,
+                                            p->status, p->actual_length);
             }
             return;
         }
diff --git a/trace-events b/trace-events
index 913e00b..02cdabc 100644
--- a/trace-events
+++ b/trace-events
@@ -431,7 +431,7 @@  usb_host_claim_interfaces(int bus, int addr, int config, int nif) "dev %d:%d, co
 usb_host_release_interfaces(int bus, int addr) "dev %d:%d"
 usb_host_req_control(int bus, int addr, void *p, int req, int value, int index) "dev %d:%d, packet %p, req 0x%x, value %d, index %d"
 usb_host_req_data(int bus, int addr, void *p, int in, int ep, int size) "dev %d:%d, packet %p, in %d, ep %d, size %d"
-usb_host_req_complete(int bus, int addr, void *p, int status) "dev %d:%d, packet %p, status %d"
+usb_host_req_complete(int bus, int addr, void *p, int status, int length) "dev %d:%d, packet %p, status %d, length %d"
 usb_host_req_emulated(int bus, int addr, void *p, int status) "dev %d:%d, packet %p, status %d"
 usb_host_req_canceled(int bus, int addr, void *p) "dev %d:%d, packet %p"
 usb_host_urb_submit(int bus, int addr, void *aurb, int length, int more) "dev %d:%d, aurb %p, length %d, more %d"