[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux1394-devel
Subject:    Re: Problem using raw1394_iso_recv_init() - the irq_interval parameter
From:       Clemens Ladisch <clemens () ladisch ! de>
Date:       2012-01-11 11:50:24
Message-ID: 4F0D7780.506 () ladisch ! de
[Download RAW message or body]

Stefan Richter wrote:
> On Jan 10 Stefan Richter wrote:
>> Clemens refers to an implementation limit deep down in the firewire-ohci
>> controller driver.  There is a per-context temporary buffer used to
>> generate the "isochronous packets received" events.  This buffer holds
>> isochronous packet header data and timestamps (usually 4 + 4 bytes per
>> packet) and is one page size big (usually 4 kBytes).
>>
>> If this buffer is exhausted in a single isochronous interrupt event,
>> firewire-ohci silently discards information of the remaining packets,
>> right?
>>
>> To document it would be one way, to improve the implementation for a more
>> flexible API another more user friendly way...
>
> PS:
> Besides this fixed-size buffer, there is also a dynamically allocated
> variable-size buffer used in each isochronous interrupt event which the
> kernel keeps until the user process read() the event.
>
> Can we change the implementation (a) to never discard information about
> received/ sent iso packets,

We could use more than one page-sized buffer for this information, but
this would require more allocations in interrupt context, and the
callback would then have to read this information from multiple buffers.
It would be easier and more consistent to flush the packet information
when the buffer is about to overflow.

> (b) to generate multiple fw_cdev_event_iso_interrupt per interrupt
> packet

This is then implied by (a).

I've been planning to add a function (ioctl) to allow clients to flush
this information; this would allow sound drivers to get more precise
position information.


Regards,
Clemens

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
mailing list linux1394-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux1394-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic