Hi Olav, thanks for your response.

(my personal email account with NTL (*spits*), which is where I am
subscribed to linux-usb-devel, seems to be down today, so I'm only
getting the responses that are CC'd to my work email... please continue
to CC me, cheers!)

On Thu, 2005-02-24 at 02:04 +0200, Olav Kongas wrote: 
> 
> On Wed, 23 Feb 2005, Ian Campbell wrote:
> > I've attached a trace made with DEBUG and URB_TRACE, it's quite big but
> > compresses really well. The interesting parts, I think, are many
> > messages similar to this one:
> >         116x: Enqueue: FA 2 ep1in bulk: len 1544 short_not_ok
> >         [SNIP several successful ip3in int transfers]
> >         116x: Allowed data underrun
> >         116x: Finish: FA 2 ep1in bulk: len 72/1544 short_not_ok stat 0
> 
> I went through the logs. From the urbs log it seems like the
> dongle sends to the host controller indeed short data (like
> 72 bytes instead of requested 1544 above). The received data
> was not multiple of the MaxPacketSize of the bulk ep1in,
> which is 64 bytes (right?). Therefore it seems that the
> isp116x driver finishes correctly the corresponding urbs. Do
> you have an idea, whether the data received through bulk1in
> is reasonable?

I'm not too familiar with the pegasus driver (perhaps I will have to
become familiar by the end)...

The driver queues an URB with length PEGASUS_MTU + 8. PEGASUS_MTU is
1536, I guess the extra 8 is a status header added by the dongle, this
gives an URB that is large enough to contain the largest packet that
could arrive.

72 is 64 + 8, and 64 is the minimum Ethernet packet size, so this just
seems to be a smaller than maximum size packet arriving, which is fine
and normal.

> I propose that you put just 'return;' to the beginning of
> both dump_ptd_{in,out}_data() and put the following to the
> beginning of the dump_ptd() (this test slightly differs from
> what you proposed):
> 
>     if(PTD_GET_EP(ptd) != 1 || PTD_GET_DIR(ptd) != PTD_DIR_IN)
>            return;

thanks, what I had written was complete rubbish of course, which is why
i was seeing all sorts of PTDs I wasn't expecting...

> I hope that with these modifications it is possible to get
> more informative ptds log. If even this does not help then
> there are other considerable speedups possible. In any case,
> let me know.

The amount of debug still seemed to be too much over a serial line, but
if I redirect it all via syslog to /var/log/debug I get the attached (I
added KERN_DEBUG to dump_ptd_*), this is with the fix for the reporting
of short_not_ok corrected.

Writing via syslog was fast enough that I didn't need to restrict the
PTDs that were printed and I could include the dump_ptd_*_data as well.

I see a lot of PTDs with CC=f (TD_NOTACCESSED). Is it normal to see so
many? 

I see one CC=3 (DataToggleMismatch) and a whole load of CC=9's
(DataUnderrun). 

The DataUnderrun seem to correspond to the allowed underruns we
discussed above. I see 39 CC=9's and 40 allowed data underruns (I'm
willing to believe that syslog dropped the occasional message).

I have to admit I don't have a clue what toggle is supposed to do...

Is there any further debugging I can enable that will help?

Cheers,
Ian.
-- 
Ian Campbell, Senior Design Engineer
                                        Web: http://www.arcom.com
Arcom, Clifton Road,                    Direct: +44 (0)1223 403 465
Cambridge CB1 7EA, United Kingdom       Phone:  +44 (0)1223 411 200


_____________________________________________________________________
The message in this transmission is sent in confidence for the attention of the 
addressee only and should not be disclosed to any other party. Unauthorised 
recipients are requested to preserve this confidentiality. Please advise the 
sender if the addressee is not resident at the receiving end.  Email to and 
from Arcom is automatically monitored for operational and lawful business 
reasons.

This message has been virus scanned by MessageLabs.

Attachment: isp116x-pegasus-ptds-3.log.bz2
Description: application/bzip

Reply via email to