[ATM]: Lanai driver updates.
o Big performance improvement. The version of the driver in the kernel still had a "mdelay(1)" after every register write. This capped performance at about 8Mbps and ate tons of CPU time. (Luckily, most users of this card are just terminating a DSL line where its not too noticeable) However, after removing this delay the card started getting out of sync with the driver under stress tests. After a couple days of chasing the bug I finally determine that the card's support for transmitting partial PDUs just doesn't quite work as advertised (before we would send a partial PDU to completely fill a VCC's transmit buffer and then send the rest of the skb when more buffer space filled up). The usefulness of this is somewhat doubtful anyway and removing it cleaned up a lot of code. I also added some memory barriers to make sure operations to the card happen in the correct order. Now for the first time ever we get near line-rate performance out of this card (~19Mb/s TCP in netperf between two ~300Mhz machines) o Locking changes (essentially the patch Chas sent me a couple weeks ago with some minor tweaking) I'm still not sure we're getting 100% of the cases right but it's definitely FAR better than the old lock-less version. o Cleanup the backlog draining code in lanai_shutdown_tx_vci() o Remove outdated comment describing how to compile the module o Got rid of the "service_novcc_[tr]x" stats - it's really the same error as "service_[tr]x" - there's no reason to count them separately. o Use the ATM_25_PCR constant instead of computing it for ourselves
Showing
Please register or sign in to comment