On Wed, 30 Oct 2002 16:20:51 -0600 Sumit Agarwal <aksumit@india.hp.com> wrote: > Most of the cards like SCSI, FC, NIC now include their own > DMA engines. > Therefore it is good to have DMA for them. The older cards > of EISA > that donot have their DMA engines needs to be set up using > the DMA > controllers. Setting up of DMA controller is not a over > head, as the > DMA is setup during the initialization. Later on just the > channel is > selected and the locations are marked. This is always going > to be > better than no DMA. The device driver writer is aware of the > DMA > capabilities and generate the code. Note that you miss the OS here. Usually, when using DMA the process blocks and later an interrupt wakes it up. Sleep and wakeup carry overhead that may be bigger than the gains of making the CPU available. > > It is just the HBA (host bus adapter) or NIC that is in > picture while > doing DMA and not the disk e.t.c that is present on the > secondary > bus (like SCSI, IDE e.t.c). In PIO mode for every byte/word > transaction > CPU intervention is required and hence is slow. Yes, usually, but not always. Bus transactions initiated by the CPU with read/write instructions (i.e. in/out or ld/st) can have the drawback that they may requre address phase with certain busses and bridges, i.e. no burst. Bus master devices usually perform burst transfers, thus the gain is twofold: a) faster transfers b) available CPU. ~velco -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/