All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 00/19] Improve the qlge driver based on drivers/staging/qlge/TODO
@ 2021-06-21 13:48 Coiby Xu
  2021-06-21 13:48 ` [RFC 01/19] staging: qlge: fix incorrect truesize accounting Coiby Xu
                   ` (18 more replies)
  0 siblings, 19 replies; 74+ messages in thread
From: Coiby Xu @ 2021-06-21 13:48 UTC (permalink / raw)
  To: linux-staging; +Cc: netdev, Benjamin Poirier, Shung-Hsi Yu

This patch set improves qlge driver based on drivers/staging/qlge/TODO
written by Benjamin.

For the testing, the kernel was build with KASAN, UBSAN, 
DEBUG_ATOMIC_SLEEP, PROVE_LOCKING and DEBUG_KMEMLEAK enabled on a
machine from Red Hat. The machine happened to have two NICs managed by 
this qlge driver. I put these two NICs into separate network namespaces
and no errors occurred for the following tests,
    - with default MTU
        - non TCP packet
          - ping the other NIC from one NIC with different packet size, e.g.
            200, 300, 2200
        - TCP packets
          - start a http server on one NIC
            $ ip netns exec ns1 python -m http.server 8000 --bind 192.168.1.209
          - download a file from the http server using the other NIC
            curl -X GET --interface enp94s0f0 http://192.168.1.209:8000/kernel-5.11.3-300.fc34.src.rpm  -L -O
    - do the same tests with jumbo frame enabled (ip link set enp94s0f0 mtu 9000)


[1] https://lore.kernel.org/netdev/20200816025717.GA28176@f3/T/


Coiby Xu (19):
  staging: qlge: fix incorrect truesize accounting
  staging: qlge: change LARGE_BUFFER_MAX_SIZE to 4096
  staging: qlge: alloc skb with only enough room for header when data is
    put in the fragments
  staging: qlge: add qlge_* prefix to avoid namespace clashes
  staging: qlge: rename rx to completion queue and seperate rx_ring from
    completion queue
  staging: qlge: disable flow control by default
  staging: qlge: remove the TODO item of unnecessary memset 0
  staging: qlge: reorder members of qlge_adapter for optimization
  staging: qlge: remove the TODO item of reorder struct
  staging: qlge: remove the TODO item of avoid legacy/deprecated apis
  staging: qlge: the number of pages to contain a buffer queue is
    constant
  staging: qlge: rewrite do while loops as for loops in
    qlge_start_rx_ring
  staging: qlge: rewrite do while loop as for loop in qlge_sem_spinlock
  staging: qlge: rewrite do while loop as for loop in qlge_refill_bq
  staging: qlge: remove the TODO item about rewriting while loops as
    simple for loops
  staging: qlge: remove deadcode in qlge_build_rx_skb
  staging: qlge: fix weird line wrapping
  staging: qlge: fix two indentation issues
  staging: qlge: remove TODO item of unnecessary runtime checks

 drivers/staging/qlge/TODO           |  31 --
 drivers/staging/qlge/qlge.h         |  88 +++--
 drivers/staging/qlge/qlge_dbg.c     |  36 +-
 drivers/staging/qlge/qlge_ethtool.c |  26 +-
 drivers/staging/qlge/qlge_main.c    | 586 ++++++++++++++--------------
 drivers/staging/qlge/qlge_mpi.c     |  11 +-
 6 files changed, 373 insertions(+), 405 deletions(-)

-- 
2.32.0


^ permalink raw reply	[flat|nested] 74+ messages in thread

end of thread, other threads:[~2021-07-03  0:00 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-21 13:48 [RFC 00/19] Improve the qlge driver based on drivers/staging/qlge/TODO Coiby Xu
2021-06-21 13:48 ` [RFC 01/19] staging: qlge: fix incorrect truesize accounting Coiby Xu
2021-06-21 14:10   ` Dan Carpenter
2021-06-21 14:10     ` Dan Carpenter
2021-06-22 11:36     ` Coiby Xu
2021-06-22 11:36       ` Coiby Xu
2021-06-23  4:55       ` Benjamin Poirier
2021-06-23  4:55         ` Benjamin Poirier
2021-06-24 11:47         ` Coiby Xu
2021-06-24 11:47           ` Coiby Xu
2021-06-28  0:14           ` Coiby Xu
2021-06-28  0:14             ` Coiby Xu
2021-06-21 13:48 ` [RFC 02/19] staging: qlge: change LARGE_BUFFER_MAX_SIZE to 4096 Coiby Xu
2021-06-21 13:48 ` [RFC 03/19] staging: qlge: alloc skb with only enough room for header when data is put in the fragments Coiby Xu
2021-06-21 13:48 ` [RFC 04/19] staging: qlge: add qlge_* prefix to avoid namespace clashes Coiby Xu
2021-06-22  7:55   ` Benjamin Poirier
2021-06-22  7:55     ` Benjamin Poirier
2021-06-24 11:34     ` Coiby Xu
2021-06-24 11:34       ` Coiby Xu
2021-06-21 13:48 ` [RFC 05/19] staging: qlge: rename rx to completion queue and seperate rx_ring from completion queue Coiby Xu
2021-06-21 13:48 ` [RFC 06/19] staging: qlge: disable flow control by default Coiby Xu
2021-06-22  7:49   ` Benjamin Poirier
2021-06-22  7:49     ` Benjamin Poirier
2021-06-24 11:33     ` Coiby Xu
2021-06-24 11:33       ` Coiby Xu
2021-06-21 13:48 ` [RFC 07/19] staging: qlge: remove the TODO item of unnecessary memset 0 Coiby Xu
2021-06-21 13:48 ` [RFC 08/19] staging: qlge: reorder members of qlge_adapter for optimization Coiby Xu
2021-06-21 13:48 ` [RFC 09/19] staging: qlge: remove the TODO item of reorder struct Coiby Xu
2021-06-21 13:48 ` [RFC 10/19] staging: qlge: remove the TODO item of avoid legacy/deprecated apis Coiby Xu
2021-06-21 13:48 ` [RFC 11/19] staging: qlge: the number of pages to contain a buffer queue is constant Coiby Xu
2021-06-21 13:48 ` [RFC 12/19] staging: qlge: rewrite do while loops as for loops in qlge_start_rx_ring Coiby Xu
2021-06-22  7:45   ` Benjamin Poirier
2021-06-22  7:45     ` Benjamin Poirier
2021-06-24 11:56     ` Coiby Xu
2021-06-24 11:56       ` Coiby Xu
2021-06-21 13:48 ` [RFC 13/19] staging: qlge: rewrite do while loop as for loop in qlge_sem_spinlock Coiby Xu
2021-06-22  7:20   ` Dan Carpenter
2021-06-22  7:20     ` Dan Carpenter
2021-06-24 11:22     ` Coiby Xu
2021-06-24 11:22       ` Coiby Xu
2021-06-30 10:58       ` Joe Perches
2021-06-30 10:58         ` Joe Perches
2021-06-30 23:33         ` Coiby Xu
2021-06-30 23:33           ` Coiby Xu
2021-07-01  4:35           ` Joe Perches
2021-07-01  4:35             ` Joe Perches
2021-07-02 23:56             ` Coiby Xu
2021-07-02 23:56               ` Coiby Xu
2021-06-21 13:48 ` [RFC 14/19] staging: qlge: rewrite do while loop as for loop in qlge_refill_bq Coiby Xu
2021-06-21 13:48 ` [RFC 15/19] staging: qlge: remove the TODO item about rewriting while loops as simple for loops Coiby Xu
2021-06-21 13:48 ` [RFC 16/19] staging: qlge: remove deadcode in qlge_build_rx_skb Coiby Xu
2021-06-22  7:29   ` Dan Carpenter
2021-06-22  7:29     ` Dan Carpenter
2021-06-24 11:25     ` Coiby Xu
2021-06-24 11:25       ` Coiby Xu
2021-06-24 12:49       ` Dan Carpenter
2021-06-24 12:49         ` Dan Carpenter
2021-06-27 10:53         ` Coiby Xu
2021-06-27 10:53           ` Coiby Xu
2021-06-28  6:46           ` Dan Carpenter
2021-06-28  6:46             ` Dan Carpenter
2021-06-29 13:35             ` Coiby Xu
2021-06-29 13:35               ` Coiby Xu
2021-06-29 14:22               ` Dan Carpenter
2021-06-29 14:22                 ` Dan Carpenter
2021-06-30 23:19                 ` Coiby Xu
2021-06-30 23:19                   ` Coiby Xu
2021-06-21 13:49 ` [RFC 17/19] staging: qlge: fix weird line wrapping Coiby Xu
2021-06-22  8:46   ` Dan Carpenter
2021-06-22  8:46     ` Dan Carpenter
2021-06-24 11:55     ` Coiby Xu
2021-06-24 11:55       ` Coiby Xu
2021-06-21 13:49 ` [RFC 18/19] staging: qlge: fix two indentation issues Coiby Xu
2021-06-21 13:49 ` [RFC 19/19] staging: qlge: remove TODO item of unnecessary runtime checks Coiby Xu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.