Welcome to PCForumz.com!
FAQFAQ   SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log in/Register/PasswordLog in/Register/Password

Driver calls vs graphics mutex vs Ethernet card

 
   Hardware Problem Solving Community! (Home) -> PC Networking RSS
Related Topics:
Ethernet card - I have a 7025 F40 RS 6000 and am chasing an IBM part number 10/100 Ethernet to put into it. Anyone have one lying around? Australia

Incomming calls / Local network - Currently on my home network there is 3 computers sharing an ADSL which is all working I recently added an setup a username and password and ticked all options to allow access to my LAN/file sharing etc...

pNA and Ethernet co-existing - Hi! I have an IDSL router connected to my Wireless Access Point, which I have a few computers networked into it (both wired and It works pretty well. I bought a device (the Rio MP3 Receiver) that I'd like to connect to my network. I'd..

Dual Port ethernet NIC Available? - I have two NICs in my PC. One is connected to my DSL modem. The other is via a crossover ethernet cable, to a PC in another room of my home. I would like to free up a slot in my PC by a NIC with dual ports. Problem is, I don't..

Driver needed for IBM Etherjet PCI 100/10 Network Adaptor .. - Hi, does anybody know where to download this driver or could you send this by email? Also let me know the Linux version of this driver. Thanks in advance. Zhengping Lang
Next:  PC Networking: Driver needed for IBM Etherjet PCI 100/10 Network Adaptor ..  
Author Message
Ozo

External


Since: Dec 11, 2003
Posts: 1



(Msg. 1) Posted: Thu Dec 11, 2003 10:56 pm
Post subject: Driver calls vs graphics mutex vs Ethernet card
Archived from groups: microsoft>public>win32>programmer>gdi, others (more info?)

I am currently debugging a multithreaded application where one thread (the
"Render" thread) is using the display driver (i.e. through ExtEscape calls).
The system is a dual CPU Windows 2000 system (SP2), with two displays (i.e.
two display drivers); the application is using the secondary display only.
The Render thread is running at real-time priority (i.e. priority 29).

I have a strange problem where once in a while, an ExtEscape call to the
display driver (e.g. some custom escape function)
takes _way_ too much time (ex: 12msec). After thorough debugging, I know
that my application thread is preempted just when it calls ExtEscape, as if
Windows was serializing accesses to the display driver (some global graphics
mutex?). It is not a matter of "quantum completion" because my thread is at
priority 29 and I also know that the Window's scheduler usually schedule the
Idle thread during these 12msec.

What is also very strange, is that when this 12msec "glitch" occurs with the
Render thread, my other thread (which is running
simultaneously on the other CPU), suffers from the same glitch too. After
debugging, I know that no thread switch occurs on this CPU, which means that
this thread is simply stopped for 12msec (maybe by an interrupt from some
device?)

To summarize, I have no clue what is going on. My first theory is that an
interrupt is stopping my second thread, and the ISR (or DPC) is doing
something that uses some mutex that will (in some cases) make the Render
thread wait before it can talk to its display driver. But I can not see what
it could be. Is there something special regarding how Windows serializes
display driver accesses that I should know? Something special with multiple
displays? Hardware interrupts that would use the display driver?

Note: We noticed that this problem disappears when we disconnect our
Ethernet card from the network. Our Ethernet chipset
(Intel) is transferring data in DMA to the system memory, and our driver
accesses it by polling only: there is no interrupt used by the driver. When
disconnected, there is no more DMA transfer being done (I assume) but we
keep polling the driver without never getting any packet. Of course, we need
to be connected to the network, so disconnecting is not a viable solution
Wink

Any help is welcome,
Thanks,

Ozo

 >> Stay informed about: Driver calls vs graphics mutex vs Ethernet card 
Back to top
Login to vote
Louis Solomon Stee

External


Since: Jan 27, 2004
Posts: 1



(Msg. 2) Posted: Wed Jan 28, 2004 2:00 am
Post subject: Re: Driver calls vs graphics mutex vs Ethernet card [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

have you tried streaming the data from the hdd instead of the ethernet ?

--
Louis Solomon
<a style='text-decoration: underline;' href="http://www.steelbytes.com" target="_blank">www.steelbytes.com</a>

"Ozo" <ozo.TakeThisOut@whoever.com> wrote in message
news:Go8Cb.10267$aF2.1141896@news20.bellglobal.com...
 >I am currently debugging a multithreaded application where one thread (the
 > "Render" thread) is using the display driver (i.e. through ExtEscape
 > calls).
 > The system is a dual CPU Windows 2000 system (SP2), with two displays
 > (i.e.
 > two display drivers); the application is using the secondary display only.
 > The Render thread is running at real-time priority (i.e. priority 29).
 >
 > I have a strange problem where once in a while, an ExtEscape call to the
 > display driver (e.g. some custom escape function)
 > takes _way_ too much time (ex: 12msec). After thorough debugging, I know
 > that my application thread is preempted just when it calls ExtEscape, as
 > if
 > Windows was serializing accesses to the display driver (some global
 > graphics
 > mutex?). It is not a matter of "quantum completion" because my thread is
 > at
 > priority 29 and I also know that the Window's scheduler usually schedule
 > the
 > Idle thread during these 12msec.
 >
 > What is also very strange, is that when this 12msec "glitch" occurs with
 > the
 > Render thread, my other thread (which is running
 > simultaneously on the other CPU), suffers from the same glitch too. After
 > debugging, I know that no thread switch occurs on this CPU, which means
 > that
 > this thread is simply stopped for 12msec (maybe by an interrupt from some
 > device?)
 >
 > To summarize, I have no clue what is going on. My first theory is that an
 > interrupt is stopping my second thread, and the ISR (or DPC) is doing
 > something that uses some mutex that will (in some cases) make the Render
 > thread wait before it can talk to its display driver. But I can not see
 > what
 > it could be. Is there something special regarding how Windows serializes
 > display driver accesses that I should know? Something special with
 > multiple
 > displays? Hardware interrupts that would use the display driver?
 >
 > Note: We noticed that this problem disappears when we disconnect our
 > Ethernet card from the network. Our Ethernet chipset
 > (Intel) is transferring data in DMA to the system memory, and our driver
 > accesses it by polling only: there is no interrupt used by the driver.
 > When
 > disconnected, there is no more DMA transfer being done (I assume) but we
 > keep polling the driver without never getting any packet. Of course, we
 > need
 > to be connected to the network, so disconnecting is not a viable solution
 > Wink
 >
 > Any help is welcome,
 > Thanks,
 >
 > Ozo
 >
 ><!-- ~MESSAGE_AFTER~ -->

 >> Stay informed about: Driver calls vs graphics mutex vs Ethernet card 
Back to top
Login to vote
Display posts from previous:   
   Hardware Problem Solving Community! (Home) -> PC Networking All times are: Pacific Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



[ Contact us | Terms of Service/Privacy Policy ]