• V
    netdev: add netdev_queue_set_dql_min_limit() · f57bac3c
    Vincent Mailhol 提交于
    Add a function to set the dynamic queue limit minimum value.
    
    Some specific drivers might have legitimate reasons to configure
    dql.min_limit to a given value. Typically, this is the case when the
    PDU of the protocol is smaller than the packet size to used to
    carry those frames to the device.
    
    Concrete example: a CAN (Control Area Network) device with an USB 2.0
    interface.  The PDU of classical CAN protocol are roughly 16 bytes but
    the USB packet size (which is used to carry the CAN frames to the
    device) might be up to 512 bytes.  Wen small traffic burst occurs, BQL
    algorithm is not able to immediately adjust and this would result in
    having to send many small USB packets (i.e packet of 16 bytes for each
    CAN frame). Filling up the USB packet with CAN frames is relatively
    fast (small latency issue) but the gain of not having to send several
    small USB packets is huge (big throughput increase). In this case,
    forcing dql.min_limit to a given value that would allow to stuff the
    USB packet is always a win.
    
    This function is to be used by network drivers which are able to prove
    through a rationale and through empirical tests on several environment
    (with other applications, heavy context switching, virtualization...),
    that they constantly reach better performances with a specific
    predefined dql.min_limit value with no noticeable latency impact.
    Signed-off-by: NVincent Mailhol <mailhol.vincent@wanadoo.fr>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    f57bac3c
netdevice.h 163.2 KB