Date: Tue, 29 Sep 2020 07:51:07 +0000 (UTC) From: Navdeep Parhar <np@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r366245 - head/sys/dev/cxgbe Message-ID: <202009290751.08T7p7gM094878@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: np Date: Tue Sep 29 07:51:06 2020 New Revision: 366245 URL: https://svnweb.freebsd.org/changeset/base/366245 Log: cxgbe(4): adjust the doorbell threshold for netmap freelists to match the maximum burst size used when fetching descriptors from the list. MFC after: 1 week Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/t4_netmap.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Tue Sep 29 07:36:21 2020 (r366244) +++ head/sys/dev/cxgbe/adapter.h Tue Sep 29 07:51:06 2020 (r366245) @@ -730,6 +730,7 @@ struct sge_nm_rxq { uint32_t fl_sidx2; /* copy of fl_sidx */ uint32_t fl_db_val; u_int fl_db_saved; + u_int fl_db_threshold; /* in descriptors */ u_int fl_hwidx:4; /* Modified: head/sys/dev/cxgbe/t4_netmap.c ============================================================================== --- head/sys/dev/cxgbe/t4_netmap.c Tue Sep 29 07:36:21 2020 (r366244) +++ head/sys/dev/cxgbe/t4_netmap.c Tue Sep 29 07:51:06 2020 (r366245) @@ -196,6 +196,9 @@ alloc_nm_rxq_hwq(struct vi_info *vi, struct sge_nm_rxq nm_rxq->fl_cntxt_id = be16toh(c.fl0id); nm_rxq->fl_pidx = nm_rxq->fl_cidx = 0; + nm_rxq->fl_db_saved = 0; + /* matches the X_FETCHBURSTMAX_512B or X_FETCHBURSTMAX_256B above. */ + nm_rxq->fl_db_threshold = chip_id(sc) <= CHELSIO_T5 ? 8 : 4; MPASS(nm_rxq->fl_sidx == na->num_rx_desc); cntxt_id = nm_rxq->fl_cntxt_id - sc->sge.eq_start; if (cntxt_id >= sc->sge.neq) { @@ -1063,7 +1066,7 @@ cxgbe_netmap_rxsync(struct netmap_kring *kring, int fl fl_pidx = 0; slot = &ring->slot[0]; } - if (++dbinc == 8 && n >= 32) { + if (++dbinc == nm_rxq->fl_db_threshold) { wmb(); if (starve_fl) nm_rxq->fl_db_saved += dbinc;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202009290751.08T7p7gM094878>