> But you are saying that the *disk* gets to choose which part of the host's memory to write to, and organizes the DMA itself?
Well, if you are queuing different reads from the disk, and the disk decides himself in which order it does them, it will have to synchronise to the DMA controller in maybe complex ways to write the right sector at the right place...
So the IDE/AHCI interface stores the address to read/write to with the sector requested from the disk, and will DMA to that address.
If you have a PCI card which pretends to be a IDE/AHCI card it will be able to DMA everywhere. PCMCIA cards probably can do that.
If you want to do secured DMA, you would need to manage (quickly) all these blocks *and* synchronise with IDE/AHCI (considering read/write retries), I do not think Linux does that.
Posted Jan 12, 2013 1:13 UTC (Sat) by butlerm (subscriber, #13312)
[Link]
There isn't a SCSI interface on the planet where a SCSI disk instructs the SCSI host adapter which host memory address to write to. Nor an IDE/ATA/SATA one for that matter. That would be insane.
No it doesn't
Posted Jan 14, 2013 10:14 UTC (Mon) by etienne (subscriber, #25256)
[Link]
But a hacked SCSI adapter can ignore the address of the transfer given by Linux and instead do a DMA anywhere.
Same for a hacked IDE adapter, and mostly for PCMCIA/CardBus card accessible on a lot of PC without opening the box.
No it doesn't
Posted Jan 14, 2013 11:19 UTC (Mon) by dlang (✭ supporter ✭, #313)
[Link]
Yes, if you take over some device directly attached to the memory or PCI bus of a machine you can access anywhere in RAM
with firewire this doesn't take hacking the card, it's a normal mode of operation.
No it doesn't
Posted Jan 16, 2013 13:25 UTC (Wed) by epa (subscriber, #39769)
[Link]
There isn't a SCSI interface on the planet where a SCSI disk instructs the SCSI host adapter which host memory address to write to. Nor an IDE/ATA/SATA one for that matter. That would be insane.
Right. But apparently Firewire does have that design flaw?
No it doesn't
Posted Jan 17, 2013 16:39 UTC (Thu) by cladisch (✭ supporter ✭, #50193)
[Link]
> > There isn't a SCSI interface on the planet where a SCSI disk instructs the SCSI host adapter which host memory address to write to.
>
> But apparently Firewire does have that design flaw?
The three transport protocols where SCSI can use some form of remote DMA are FireWire, InfiniBand, and iWARP.