Downgrading IDE from DMA to PIO

(This originally arose out of the thread: [ntdev] Re: Extreme ISR Priority)

I’ve looked closely at a couple systems we have that are exhibiting this problem with being in PIO mode not
DMA. The particulars:

Win2K w/ SP2 and various other patches.

Motherboard capable of UDMA 33/66 (it does so under Win98, systems are dual boot)
Maxtor Diamond Max Plus 45 46 Gb UDMA 100 (ATA)
SIS IDE 5513 (or 5531?, can’t remember right now, but it is in the HCL for Win2K)
AMI BIOS, upgraded to most recent version circa 2000

The BIOS announces that the drive is set up for UDMA type 4 (ATA 66).

I’ve tried using a utility from Maxtor to set the drive to UDMA 66, no change.
I’ve tried reinstalling the drivers for both the disk and the IDE controller, no change.
I’ve looked at the registry, but don’t see any obvious settings, etc. that would seem to indicate/affect this.

My questions are:

  • Any idea why this doesn’t work? (By the way Maxtor recognizes this problem in their Knowledgebase
    and suggested/provided the utility that is supposed to fix this.)

  • What registry or other settings affect this?

  • How can I correct it? or fool it into working?

  • Someone mentioned that this happens as a result of too many errors on the IDE channel, and this system
    did at one time have a flaky drive connected to it, (we were recovering data from a crashed system).

Any ideas? Comments?

Thanks,

John Miramonti
CTO
Livingston & Co., Inc.
8 Commerce Avenue
West Lebanon, NH 03784
603 298 9600
603 298 7878 Fax

-----Original Message-----
From: Miramonti, John
Sent: Wednesday, November 13, 2002 2:13 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Extreme ISR Priority
Importance: High

Is this (downgrading from DMA to PIO) a possibility in Win2K? WinNT 4? We have witnessed systems that have inexplicably “slowed down”. How can one tell this is happening? Look at a registry key? (Which?) How can it be reset? (Another Registry key?)

Thanks,

John Miramonti
CTO
Livingston & Co., Inc.
8 Commerce Avenue
West Lebanon, NH 03784
603 298 9600
603 298 7878 Fax

-----Original Message-----
From: Bi Chen [mailto:xxxxx@AppStream.com]
Sent: Wednesday, November 13, 2002 2:03 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Extreme ISR Priority

You are right. I have seen this on my Pentium-III. However, I have not seen this ever happened to my Pentium-IV. So I assume he could choose to use latest PC and while his program is running, not leaving a CD in the PC CD/DVD drive. The latest PC all use 80pin IDE ribbon cable on the primary IDE controller with offer much cleaner signal.

I have not looked into this. Is XP SP1 supposed to use IDE minidriver instead of the brain-dead SCSI miniport, or Longhone would be the candidate?

Bi

-----Original Message-----
From: Phil Barila [mailto:xxxxx@Seagate.com]
Sent: Wednesday, November 13, 2002 10:48 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Extreme ISR Priority

“Bi Chen” < xxxxx@AppStream.com> wrote in message news:xxxxx@ntdev…

The DOS does not work well because DOS is not multitasking OS, Network and Disk IO have to be done in interrupt handler, for example. NT/2k/XP are different, all most all interrupt handler (for recent hardware) does very little in interrupt handler. Most works are done in DPC. If you use latest PC, you are rest to be sure that IDE controller use DMA are used for CD/DVD.

Not disagreeing with most of your post, but CD/DVD defaults to PIO, even on Windows XP. You can tell the system to use DMA, but the installation default is PIO. Every XP system I’ve installed has been this way.

More importantly, the various flavors of storage port drivers are “special”, in that all of the important work happens in the miniport, and except for the Enable/DisableInterrupts pair, everything happens at DIRQL, so it’s effectively *all* ISR. And ATAPI is just a modified SCSIPORT, ATAPI, and a few other things thrown in, linked into one binary. It’s subject to the same perversities of all the other storage port drivers. This is easily seen by dumping the strings from atapi.pdb for the XP or W2K version of that driver. Or if you really want to dig, bp all the StartIo routines, there are several. look at IRQL then.

Prior to XP SP1, if there were enough errors on the ATA bus while using DMA, the system would regress to PIO, and the only way to fix it was to delete the channel from Device Manager and let it be redetected. Then you could set it to DMA again. I’ve had this happen to one of my systems with a flaky CDRW.

I don’t know if SP1 will allow you to re-enable DMA without the removal / redetect sequence. I’ve heard rumors that SP1 will actually re-enable DMA after some number of successful PIOs, in the same way that it supposedly manages SCSI speed by degrading on errors and then upgrading after some number of successful IOs. I’ve not tested either of these claimed behaviors.

Phil

Philip D. Barila
Seagate Technology, LLC
(720) 684-1842
E-mail address is pointed at a domain squatter. Use reply-to instead.

You are currently subscribed to ntdev as: xxxxx@appstream.com
To unsubscribe send a blank email to %%email.unsub%%


You are currently subscribed to ntdev as: xxxxx@livco.com
To unsubscribe send a blank email to %%email.unsub%%


You are currently subscribed to ntdev as: xxxxx@livco.com
To unsubscribe send a blank email to %%email.unsub%%

RE: [ntdev] Re: Extreme ISR PriorityAs I mentioned in a previous message,
delete the problem ATA channels from Device Manager, then let the system
redetect them. I don’t know if you can just “Scan for hardware changes”, I
think you actually have to reboot. I don’t think you have to delete the
Controller, just the channels. However, if nothing else works, delete
everything…

Phil

Philip D. Barila
Seagate Technology, LLC
(720) 684-1842

“Miramonti, John” wrote in message
news:xxxxx@ntdev…
(This originally arose out of the thread: [ntdev] Re: Extreme ISR Priority)

[snip]

My questions are:

- Any idea why this doesn’t work? (By the way Maxtor recognizes this problem
in their Knowledgebase
and suggested/provided the utility that is supposed to fix
this.)

- What registry or other settings affect this?

- How can I correct it? or fool it into working?

- Someone mentioned that this happens as a result of too many errors on the
IDE channel, and this system
did at one time have a flaky drive connected to it, (we were recovering
data from a crashed system).

Any ideas? Comments?

Thanks,

John Miramonti
CTO
Livingston & Co., Inc.
8 Commerce Avenue
West Lebanon, NH 03784
603 298 9600
603 298 7878 Fax

-----Original Message-----
From: Miramonti, John
Sent: Wednesday, November 13, 2002 2:13 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Extreme ISR Priority
Importance: High

Is this (downgrading from DMA to PIO) a possibility in Win2K? WinNT 4? We
have witnessed systems that have inexplicably “slowed down”. How can one
tell this is happening? Look at a registry key? (Which?) How can it be
reset? (Another Registry key?)

Thanks,

John Miramonti
CTO
Livingston & Co., Inc.
8 Commerce Avenue
West Lebanon, NH 03784
603 298 9600
603 298 7878 Fax
-----Original Message-----
From: Bi Chen [mailto:xxxxx@AppStream.com]
Sent: Wednesday, November 13, 2002 2:03 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Extreme ISR Priority

You are right. I have seen this on my Pentium-III. However, I have not seen
this ever happened to my Pentium-IV. So I assume he could choose to use
latest PC and while his program is running, not leaving a CD in the PC
CD/DVD drive. The latest PC all use 80pin IDE ribbon cable on the primary
IDE controller with offer much cleaner signal.

I have not looked into this. Is XP SP1 supposed to use IDE minidriver
instead of the brain-dead SCSI miniport, or Longhone would be the candidate?

Bi
-----Original Message-----
From: Phil Barila [mailto:xxxxx@Seagate.com]
Sent: Wednesday, November 13, 2002 10:48 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Extreme ISR Priority

“Bi Chen” wrote in message news:xxxxx@ntdev…
The DOS does not work well because DOS is not multitasking OS, Network and
Disk IO have to be done in interrupt handler, for example. NT/2k/XP are
different, all most all interrupt handler (for recent hardware) does very
little in interrupt handler. Most works are done in DPC. If you use latest
PC, you are rest to be sure that IDE controller use DMA are used for CD/DVD.
Not disagreeing with most of your post, but CD/DVD defaults to PIO, even on
Windows XP. You can tell the system to use DMA, but the installation
default is PIO. Every XP system I’ve installed has been this way.

More importantly, the various flavors of storage port drivers are “special”,
in that all of the important work happens in the miniport, and except for
the Enable/DisableInterrupts pair, everything happens at DIRQL, so it’s
effectively all ISR. And ATAPI is just a modified SCSIPORT, ATAPI, and a
few other things thrown in, linked into one binary. It’s subject to the
same perversities of all the other storage port drivers. This is easily
seen by dumping the strings from atapi.pdb for the XP or W2K version of that
driver. Or if you really want to dig, bp all the StartIo routines, there
are several. look at IRQL then.

Prior to XP SP1, if there were enough errors on the ATA bus while using DMA,
the system would regress to PIO, and the only way to fix it was to delete
the channel from Device Manager and let it be redetected. Then you could
set it to DMA again. I’ve had this happen to one of my systems with a flaky
CDRW.

I don’t know if SP1 will allow you to re-enable DMA without the removal /
redetect sequence. I’ve heard rumors that SP1 will actually re-enable DMA
after some number of successful PIOs, in the same way that it supposedly
manages SCSI speed by degrading on errors and then upgrading after some
number of successful IOs. I’ve not tested either of these claimed
behaviors.

Phil

Philip D. Barila
Seagate Technology, LLC
(720) 684-1842
E-mail address is pointed at a domain squatter. Use reply-to instead.

You are currently subscribed to ntdev as: xxxxx@appstream.com
To unsubscribe send a blank email to %%email.unsub%%

You are currently subscribed to ntdev as: xxxxx@livco.com
To unsubscribe send a blank email to %%email.unsub%%

You are currently subscribed to ntdev as: xxxxx@livco.com
To unsubscribe send a blank email to %%email.unsub%%