From: Pieter Palmers <pieterp@joow.be>
To: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: "Kristian Høgsberg" <krh@redhat.com>,
linux1394-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] firewire: adopt read cycle timer ABI from raw1394
Date: Mon, 01 Oct 2007 11:31:51 +0200 [thread overview]
Message-ID: <4700BE87.2040107@joow.be> (raw)
In-Reply-To: <tkrat.4aa1f1b5ce7df936@s5r6.in-berlin.de>
Stefan Richter wrote:
>> This duplicates the read cycle timer feature of raw1394 (added in Linux
>> 2.6.21) in firewire-core's userspace ABI.
>
> Kristian and Pieter, does this simple duplication of the ioctl make
> sense on its own? AFAIU rawiso's iso packet buffers look different from
> fw-cdevs's. It seems to me as if rawiso always put the cycle into a user
> buffer for each iso packet received...
>
> raw1394.h::struct raw1394_iso_packet_info {
> __u32 offset;
> __u16 len;
> __u16 cycle; /* recv only */
> __u8 channel; /* recv only */
> __u8 tag;
> __u8 sy;
> };
>
> raw1394.c::raw1394_iso_recv_packets()
>
> /* copy the packet_infos out */
> for (i = 0; i < upackets.n_packets; i++) {
> if (__copy_to_user(&upackets.infos[i],
> &fi->iso_handle->infos[packet],
> sizeof(struct raw1394_iso_packet_info)))
> return -EFAULT;
>
> packet = (packet + 1) % fi->iso_handle->buf_packets;
> }
>
> ...while the Juju ABI returns the cycle only for those packets whose
> fw_cdev_iso_packet.control had the FW_CDEV_ISO_INTERRUPT flag set.
> The cycle is then written out in the fw_cdev_event_iso_interrupt event
> which happens when this particular packet was received. Right?
>
> Pieter, do applications like yours need the cycle counter only for a few
> predetermined packets or for each and every packet?
We need it for every packet for two reasons:
1) it's the only way to determine how many packets were dropped when
packet drops are flagged in the callback
2) we convert the 16-bit SYT timestamp of a packet to a full 32-bit
cycle counter value. This because the range of the 16-bit SYT is too
small (only 16 packets) for systems that have large buffering.
In short: yes we use it for every packet.
Pieter
next prev parent reply other threads:[~2007-10-01 10:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-29 8:41 [PATCH] firewire: adopt read cycle timer ABI from raw1394 Stefan Richter
2007-09-29 9:01 ` Stefan Richter
2007-10-01 9:31 ` Pieter Palmers [this message]
2007-10-01 16:03 ` Kristian Høgsberg
2007-10-02 6:45 ` Daniel Wagner
2007-10-05 8:31 ` Pieter Palmers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4700BE87.2040107@joow.be \
--to=pieterp@joow.be \
--cc=krh@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=stefanr@s5r6.in-berlin.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.