| |
| HOWTO for multiqueue network device support |
| =========================================== |
| |
| Section 1: Base driver requirements for implementing multiqueue support |
| |
| Intro: Kernel support for multiqueue devices |
| --------------------------------------------------------- |
| |
| Kernel support for multiqueue devices is always present. |
| |
| Section 1: Base driver requirements for implementing multiqueue support |
| ----------------------------------------------------------------------- |
| |
| Base drivers are required to use the new alloc_etherdev_mq() or |
| alloc_netdev_mq() functions to allocate the subqueues for the device. The |
| underlying kernel API will take care of the allocation and deallocation of |
| the subqueue memory, as well as netdev configuration of where the queues |
| exist in memory. |
| |
| The base driver will also need to manage the queues as it does the global |
| netdev->queue_lock today. Therefore base drivers should use the |
| netif_{start|stop|wake}_subqueue() functions to manage each queue while the |
| device is still operational. netdev->queue_lock is still used when the device |
| comes online or when it's completely shut down (unregister_netdev(), etc.). |
| |
| Author: Peter P. Waskiewicz Jr. <peter.p.waskiewicz.jr@intel.com> |