From: Jouni Malinen (jkmaline_at_cc.hut.fi)
Date: 2002-09-05 15:18:18 UTC
On Wed, Sep 04, 2002 at 11:41:39PM +0200, evert wrote:
> We run an accesspoint with a siemens scenic PI 200MMX machine with 3 Linksys wmp11 cards.
Three Prism2 cards in one host is starting to be quite near the limit one host CPU can take (no matter how fast) due to inferior I/O mechanism used with the cards..
hostap_pci.o has some very experimental code for using PCI bus master to transfer data packets. Unfortunately, this seems to have some sort of hardware bug in Prism2.5 PCI cards and Intersil does not even acknowledge the existance of bus mastering.
Anyway, if you feel courageous you might try defining PRISM2_BUS_MASTER in hostap_config.h. Please note, that this relies on totally unsupported hardware feature that I implemented by guessing suitable bits and having to use very ugly hack with port enable command.. ;-). In addition, I haven't tested it even once with the latest CmdCompl changes so immediate kernel crash wouldn't be that much of a surprise.. Anyway, if bus mastering would work, it could reduce the host CPU load from about 40% to less than 10% (per card running at full throughput). In other words, three cards would require 120% host CPU (clearly impossible and maybe the reason for the problems you are seeing) with normal I/O, but less than 30% with bus mastering..
> When we moved all the wlan cards to a separate IRQ the above described problem seemed to be solved. No card is sharing an IRQ anymore ( i thought PCI could handle shared IRQ's ? )
Yes, shared IRQ should work fine. It adds some overhead since interrupts handler for all devices sharing the interrupt will need to be called. Host AP driver should have no problem with this (it runs just a few commands in hostap_pci.o to notice that the device in question has not any pending events and exits). Assuming the other driver sharing the interrupt are working similarily, shared interrupt should not be that much of a problem.
However, since the load caused by packet I/O from three Prism2 cards will take all the host CPU, even more extra loads in interrupt handler might be too much..
-- Jouni Malinen PGP id EFC895FA