3com NICs using DMA transfers?

is there anything special that you need to do to make a 3com 905b NIC
(or any NIC for that matter) do DMA transfers? Do they do DMA transfers
by default?

There is no mention of it when you run nicinfo on the command line, and
I poked the NIC via a devctl, and the flags (as defined in sys/nic.h
struct _nic) value comes back as 0x600, which looks like it is only
promiscuous and multicast…None of the flags are set for the way that it
is transfered (PIO, DMA, BusMaster, mmap). Is that flag just not getting
set?

The reason I ask is that I am writing a Filter, and the CPU load seems
rather high during network saturation, even when most of my filter is
commented out…

If it matters this is running on an SMP machine running QNX RTP 6.1,
using the experimental procnto-smp for 6.1 (I also tried it with the
standard one)


thanks,
Mike

The 905 NICs use PCI bus mastering, which is another name for DMA.

Previously, Mike Redan wrote in qdn.public.ddk.network:

is there anything special that you need to do to make a 3com 905b NIC
(or any NIC for that matter) do DMA transfers? Do they do DMA transfers
by default?

There is no mention of it when you run nicinfo on the command line, and
I poked the NIC via a devctl, and the flags (as defined in sys/nic.h
struct _nic) value comes back as 0x600, which looks like it is only
promiscuous and multicast…None of the flags are set for the way that it
is transfered (PIO, DMA, BusMaster, mmap). Is that flag just not getting
set?

The reason I ask is that I am writing a Filter, and the CPU load seems
rather high during network saturation, even when most of my filter is
commented out…

If it matters this is running on an SMP machine running QNX RTP 6.1,
using the experimental procnto-smp for 6.1 (I also tried it with the
standard one)


thanks,
Mike

Hugh Brown wrote:

The 905 NICs use PCI bus mastering, which is another name for DMA.

Is that enabled by default in QNX? The flag for Bus mastering is not set
either…


promiscuous and multicast…None of the flags are set for the way that it
is transfered (PIO, DMA, BusMaster, mmap). Is that flag just not getting
set?

cheers,
Mike

Bit 2 of the command register in PCI space should be set to enable bus
master.

Hugh.

Previously, Mike Redan wrote in qdn.public.ddk.network:

Hugh Brown wrote:

The 905 NICs use PCI bus mastering, which is another name for DMA.

Is that enabled by default in QNX? The flag for Bus mastering is not set
either…


promiscuous and multicast…None of the flags are set for the way that it
is transfered (PIO, DMA, BusMaster, mmap). Is that flag just not getting
set?

cheers,
Mike