[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#804258: ITP: igb -- dkms source for the igb network driver



On Sat, 2015-11-07 at 09:52 +0100, Clement Hermann wrote:
> Le 07/11/2015 02:20, Ben Hutchings a écrit :
> > On Fri, 2015-11-06 at 18:35 +0100, Clément Hermann wrote:
> > > 
> > >  igb is the Linux device driver released for Intel 82575/6, 82580, I350, and
> > >  I210/211-based network interfaces. 
> > >  .
> > >  This driver uses the same base as the igb module included in the Linux kernel,
> > >  with added features such as advanced multiqueue control (RSS), interrupts
> > >  throttle management, Large Receive Offload (LRO) and Low Latency Interrupts
> > >  (LLI).
> > >  .
> > >  Only use this driver if you need these specific features.
> > [...]
> > 
> > This description is inaccurate; two of the four features mentioned
> > actually are included in the in-tree driver.  And I don't think there'a
> > anything stopping Intel's maintainers from adding the remaining
> > features to the in-tree driver.
> > 
> > The justification for adding an alternate version of the driver seems
> > quite weak.
> > 
> You're right, this is poorly worded.
> 
> Most features are actually in mainline, you're right, but there is often
> no way to control them: only default values are usable.
> 
> For instance, RSS: in mainline, you don't have the option to choose
> (reduce) the number of queues in order avoid using both thread of a
> HT-enabled CPU core, or keeping some cpu free of network interrupts. You
> can free a CPU using affinity, but you'll end up with several queues on
> another. As stated in my description, this is not intended to replace
> the mainline kernel which should work fine for most uses.

You can use ethtool -X to do this.

[...]
> So here is an updated description:
> 
>  igb is the Linux device driver released for Intel 82575/6, 82580, I350, and
>  I210/211-based network interfaces. 
>  .
>  This driver uses the same code base as the igb module included in the Linux kernel,
>  and allows control over advanced features via modules parameters :
>  - InterruptThrottleRate:Maximum interrupts per second, per vector

ethtool -C ?

>  - IntMode:Change Interrupt Mode
>  - Node:set the starting node to allocate memory on
>  - LLIPort:Low Latency Interrupt TCP Port
>  - LLIPush:Low Latency Interrupt on TCP Push flag
>  - LLISize:Low Latency Interrupt on Packet Size
>  - RSS:Number of Receive-Side Scaling Descriptor Queues
>  - VMDQ:Number of Virtual Machine Device Queues
>  - MDD:Malicious Driver Detection
>  - QueuePairs:Enable Tx/Rx queue pairs for interrupt handling
>  - EEE:Enable/disable on parts that support the feature

ethtool --set-eee

>  - DMAC:Disable or set latency for DMA Coalescing

I've told them this should be done through ethtool but they never sent
patches for this.

>  - LRO:Large Receive Offload

Usually oesn't offer much advantage over GRO, and it doesn't work with
 bridging.

Ben.

>  Only use this driver if you need fine control over these specific features, otherwise, 
> 
>  you should stick to the driver included in mainline kernel.
> 
> Including the full list of parameter was actually my first move, but I thought it would maybe be too long.
> Seeing your reaction, though, I understand it needs clarification.
> 
> Cheers,
> 
-- 
Ben Hutchings
Unix is many things to many people,
but it's never been everything to anybody.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: