• Willy Tarreau's avatar
    macb: support the two tx descriptors on at91rm9200 · 0a4e9ce1
    Willy Tarreau authored
    The at91rm9200 variant used by a few chips including the MSC313 supports
    two Tx descriptors (one frame being serialized and another one queued).
    However the driver only implemented a single one, which adds a dead time
    after each transfer to receive and process the interrupt and wake the
    queue up, preventing from reaching line rate.
    
    This patch implements a very basic 2-deep queue to address this limitation.
    The tests run on a Breadbee board equipped with an MSC313E show that at
    1 GHz, HTTP traffic on medium-sized objects (45kB) was limited to exactly
    50 Mbps before this patch, and jumped to 76 Mbps with this patch. And tests
    on a single TCP stream with an MTU of 576 jump from 10kpps to 15kpps. With
    1500 byte packets it's now possible to reach line rate versus 75 Mbps
    before.
    
    Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
    Cc: Claudiu Beznea <claudiu.beznea@microchip.com>
    Cc: Daniel Palmer <daniel@0x0f.com>
    Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
    Link: https://lore.kernel.org/r/20201011090944.10607-4-w@1wt.euSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    0a4e9ce1
macb_main.c 124 KB