Commit 7a3817cd authored by Mitchell Blank Jr's avatar Mitchell Blank Jr Committed by Stephen Hemminger

[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
parent 076a2e8f
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment