I understand that dma writes are always faster than dma reads.
So when I want to get disk data directly to my dma busmaster
card, I don’t use my dma I use the disk dma(opening the file
with the FILE_FLAG_NO_BUFFERING flag) to write directly to
my card. But if I want to transfer data directly to disk from
my card I would want to use my card’s dma. What is the best
way to do this? Actually I appreciate knowing anyway to do this.
What I want is to be able to do this from a usermode application
where I open my card and start streaming data to disk with
some unknown technique.
thanks for any help.
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Impossible. Data can be transferred to disk only by disk controller’s DMA, not by your card’s DMA.
Your card’s DMA can work with host memory only.
Max
----- Original Message -----
From: Bill Bowen
To: NT Developers Interest List
Sent: Sunday, November 25, 2001 4:12 AM
Subject: [ntdev] DMA directly To disk.
I understand that dma writes are always faster than dma reads.
So when I want to get disk data directly to my dma busmaster
card, I don’t use my dma I use the disk dma(opening the file
with the FILE_FLAG_NO_BUFFERING flag) to write directly to
my card. But if I want to transfer data directly to disk from
my card I would want to use my card’s dma. What is the best
way to do this? Actually I appreciate knowing anyway to do this.
What I want is to be able to do this from a usermode application
where I open my card and start streaming data to disk with
some unknown technique.
thanks for any help. —
You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
I’d probably say that “always faster” should really be “tends to be faster”,
and that unless you are doing large I/Os to MULTIPLE disks, perhaps the
difference is not significant.
The problem with DMA reads comes from the latency between when the address
is put on the bus to when the data is returned. With a write, there is no significant
latency, and the writer can be acknowledged long before the data reaches the
device. With a read, the read operation must remain outstanding for the entire time,
until the data is finally returned. However, there is nothing preventing the hardware
from implementing a pipeline deep enough so that the read performance equals the
write performance. Your mileage may vary, depending on the chipset that you have, etc.
If you are looking to push performance, you can look into what tuning parameters your chipset
has. Some chipsets provide control over prefetch and write-combining.
-DH
PS. Max is right.
----- Original Message -----
From: Bill Bowen
To: NT Developers Interest List
Sent: Saturday, November 24, 2001 8:12 PM
Subject: [ntdev] DMA directly To disk.
I understand that dma writes are always faster than dma reads.
So when I want to get disk data directly to my dma busmaster
card, I don’t use my dma I use the disk dma(opening the file
with the FILE_FLAG_NO_BUFFERING flag) to write directly to
my card. But if I want to transfer data directly to disk from
my card I would want to use my card’s dma. What is the best
way to do this? Actually I appreciate knowing anyway to do this.
What I want is to be able to do this from a usermode application
where I open my card and start streaming data to disk with
some unknown technique.
thanks for any help. —
You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com