Re[2]: ExpressCard data loss problem

Cody,

Thanks for the input. I will check into these things.

Just to clarify,
I am sending image data at 60 frames/s and, when using the ExpressCard
slot, I suffer packet loss from every frame. Once low priority threads
running busy loops are started image transmission becomes absolutely
stable as it no packets lost ever (I start one per processor but I
haven’t experimented with this variable yet).

Hi Robert,

I happened to have some experience on Pci Express so I would like to
give my opinions. But I may happily be wrong. :slight_smile:

  1. Pci Express can use ASPM(Active State Power Management) to enter into
    and out of some power saving state. The link will take some time to
    recover to its normal working state. ASPM is supposed to be
    automatically managed by hardware without interference from OS. So make
    sure your bios get things right.

  2. Windows OS may choose to put your device into lower power state based
    on the ACPI ASL description which is parsed by ACPI filter driver at the
    bottom of your device driver stack. How about your trying changing the
    way your device driver handling query_capability request and mark your
    self as incapable of entering any lower device state than D0? This
    should have the same effect as creating a slow-priority do-nothing
    thread if that does solve your problem.

Hope this helps!

Best regards,
Cody

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Robert Newton
Sent: Friday, December 01, 2006 2:57 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] ExpressCard data loss problem

Currently, thanks to a tip from a list member, I’ve solved my problem
by having my driver create very low priority threads that run
do-nothing busy loops, thus preventing the system from entering any
sort of idle state.

I’ve started this post with the solution in order to hold the
attension of the smart people on this list who will now want to tell
me that this solution is an abomination.

As mentioned below, firewire cards (PCMCIA and ExpressCard) receiving
large amounts of isochronous
data can suffer problems with packet lose. These problems have been
observed on Dell machines (M60 M70 M65 M90) but may not be
specifically Dell problems. The problem is worst when using
ExpressCard but also shows up with PCMCIA. The problem seems to
be limited to laptops (but that may just because it is limited to
PCMCIA and ExpressCard). Some investigators have used bus analyzers to
verify that the packets themselves are fine. This and other evidence
leads me to infer that the firewire cards themselves are correctly
receiving the data but are unable to get the data over the bus to
memory. Running low priority busy
loops to prevent a system from becoming idle completely solves the
problem.

Any thoughts or alternatives? Any idea what is going on? Do these
computers enter into some sort of slow-down mode that takes time to
recover from? Is this just the NT idle thread zeroing pages and causing
bus contension? I’m looking to understand this problem and possibly
arrive at a more acceptable solution.

Thanks in advance for any comments.

For the benifit of the archive, here is my original subject title and
post:

>Firewire ExpressCard (Core Duo - 945) Problem

> I’m looking for help/info on a firewire issue that is occuring on new
> laptops with ExpressCard slots. The particular model that I have to
> test on is a Dell M65 Core Duo (with 945PM chipset). This machine has
> both a PCMCIA slot and an ExpressCard slot (but most other machines
> only have the ExpressCard slot).
>
> I’ve tested with 3 different 1394a express cards (SIIG, Belkin and
> AboCom). In all cases I am unable to allocate isochronous resources
> (channel and bandwidth). When I disable resource allocation then the
> (isochronous) image transmission runs but suffers packet
> loss leading to scrambled images. Asynchronous communication appears
to
> work fine but I have no option to transmit images from my camera that
> way.
>
> There is no problem when I attach the camera to a PCMCIA 1394a card
> plugged into in the same computer using either the regular or the
> gimped driver.
>
> What is really strange about the packet loss is that if the computer
> gets busy then the packet loss quits for the length of time that the
> computer is busy. Ffor example, if I push the PCMCIA firewire card
> into its slot while receiving images on the ExpressCard, then the
> image transmission clears up until Device Manager updates its list at
> which point the packet loss continues. It’s as if some other activity
> that interferes with the ability of the ExpressCard to get data to
> memory has been momentarily blocked.
>
> Doing some searching on the Internet seems to indicate that there is
> an issue with core duo processors and the 945 chipset which is
> affecting Firewire and ExpressCard operation (running with /ONECPU
> doesn’t help though).
>
> If anyone else has experianced these issues or knows anything about
> the processor/chipset issue or has any other thoughts on the matter I
> would appreciate hearing what you know. I am currently also
> communicating with Dell, Intel and someone who knows about problems
> running firewire sound cards on these systems.
>
> Likewise, if anyone has succeed with isochronous communication using
> a 1394a ExpressCard I would also appreciate hearing from you.

Robert Newton
VX Technologies

Rob

Have you tried going shutting off all the power saving features that have to
do with the CPU in the BIOS? It’s possible your threads are preventing the
CPU from either throttling or making C state transitions (or both).

-scott


Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com

“Robert Newton” wrote in message
news:xxxxx@ntdev…
> Cody,
>
> Thanks for the input. I will check into these things.
>
> Just to clarify,
> I am sending image data at 60 frames/s and, when using the ExpressCard
> slot, I suffer packet loss from every frame. Once low priority threads
> running busy loops are started image transmission becomes absolutely
> stable as it no packets lost ever (I start one per processor but I
> haven’t experimented with this variable yet).
>
>> Hi Robert,
>>
>> I happened to have some experience on Pci Express so I would like to
>> give my opinions. But I may happily be wrong. :slight_smile:
>>
>> 1) Pci Express can use ASPM(Active State Power Management) to enter into
>> and out of some power saving state. The link will take some time to
>> recover to its normal working state. ASPM is supposed to be
>> automatically managed by hardware without interference from OS. So make
>> sure your bios get things right.
>>
>> 2) Windows OS may choose to put your device into lower power state based
>> on the ACPI ASL description which is parsed by ACPI filter driver at the
>> bottom of your device driver stack. How about your trying changing the
>> way your device driver handling query_capability request and mark your
>> self as incapable of entering any lower device state than D0? This
>> should have the same effect as creating a slow-priority do-nothing
>> thread if that does solve your problem.
>>
>> Hope this helps!
>>
>> Best regards,
>> Cody
>>
>> -----Original Message-----
>> From: xxxxx@lists.osr.com
>> [mailto:xxxxx@lists.osr.com] On Behalf Of Robert Newton
>> Sent: Friday, December 01, 2006 2:57 AM
>> To: Windows System Software Devs Interest List
>> Subject: [ntdev] ExpressCard data loss problem
>>
>> Currently, thanks to a tip from a list member, I’ve solved my problem
>> by having my driver create very low priority threads that run
>> do-nothing busy loops, thus preventing the system from entering any
>> sort of idle state.
>>
>> I’ve started this post with the solution in order to hold the
>> attension of the smart people on this list who will now want to tell
>> me that this solution is an abomination.
>>
>> As mentioned below, firewire cards (PCMCIA and ExpressCard) receiving
>> large amounts of isochronous
>> data can suffer problems with packet lose. These problems have been
>> observed on Dell machines (M60 M70 M65 M90) but may not be
>> specifically Dell problems. The problem is worst when using
>> ExpressCard but also shows up with PCMCIA. The problem seems to
>> be limited to laptops (but that may just because it is limited to
>> PCMCIA and ExpressCard). Some investigators have used bus analyzers to
>> verify that the packets themselves are fine. This and other evidence
>> leads me to infer that the firewire cards themselves are correctly
>> receiving the data but are unable to get the data over the bus to
>> memory. Running low priority busy
>> loops to prevent a system from becoming idle completely solves the
>> problem.
>>
>> Any thoughts or alternatives? Any idea what is going on? Do these
>> computers enter into some sort of slow-down mode that takes time to
>> recover from? Is this just the NT idle thread zeroing pages and causing
>> bus contension? I’m looking to understand this problem and possibly
>> arrive at a more acceptable solution.
>>
>> Thanks in advance for any comments.
>>
>> For the benifit of the archive, here is my original subject title and
>> post:
>>
>>>Firewire ExpressCard (Core Duo - 945) Problem
>>
>>> I’m looking for help/info on a firewire issue that is occuring on new
>>> laptops with ExpressCard slots. The particular model that I have to
>>> test on is a Dell M65 Core Duo (with 945PM chipset). This machine has
>>> both a PCMCIA slot and an ExpressCard slot (but most other machines
>>> only have the ExpressCard slot).
>>>
>>> I’ve tested with 3 different 1394a express cards (SIIG, Belkin and
>>> AboCom). In all cases I am unable to allocate isochronous resources
>>> (channel and bandwidth). When I disable resource allocation then the
>>> (isochronous) image transmission runs but suffers packet
>>> loss leading to scrambled images. Asynchronous communication appears
>> to
>>> work fine but I have no option to transmit images from my camera that
>>> way.
>>>
>>> There is no problem when I attach the camera to a PCMCIA 1394a card
>>> plugged into in the same computer using either the regular or the
>>> gimped driver.
>>>
>>> What is really strange about the packet loss is that if the computer
>>> gets busy then the packet loss quits for the length of time that the
>>> computer is busy. Ffor example, if I push the PCMCIA firewire card
>>> into its slot while receiving images on the ExpressCard, then the
>>> image transmission clears up until Device Manager updates its list at
>>> which point the packet loss continues. It’s as if some other activity
>>> that interferes with the ability of the ExpressCard to get data to
>>> memory has been momentarily blocked.
>>>
>>> Doing some searching on the Internet seems to indicate that there is
>>> an issue with core duo processors and the 945 chipset which is
>>> affecting Firewire and ExpressCard operation (running with /ONECPU
>>> doesn’t help though).
>>>
>>> If anyone else has experianced these issues or knows anything about
>>> the processor/chipset issue or has any other thoughts on the matter I
>>> would appreciate hearing what you know. I am currently also
>>> communicating with Dell, Intel and someone who knows about problems
>>> running firewire sound cards on these systems.
>>>
>>> Likewise, if anyone has succeed with isochronous communication using
>>> a 1394a ExpressCard I would also appreciate hearing from you.
>>
>>
>> Robert Newton
>> VX Technologies
>
>
> Rob
>
>