Add an option to enable or disable the small RX packet copying that
is done to improve performance of small frames. When doing RX packing, the RX copying isn't necessarily required. Reviewed by: np
This commit is contained in:
parent
d9168b014f
commit
3af0f449ae
@ -646,6 +646,8 @@ struct adapter {
|
||||
const char *last_op;
|
||||
const void *last_op_thr;
|
||||
#endif
|
||||
|
||||
int sc_do_rxcopy;
|
||||
};
|
||||
|
||||
#define ADAPTER_LOCK(sc) mtx_lock(&(sc)->sc_lock)
|
||||
|
@ -4239,6 +4239,10 @@ t4_sysctls(struct adapter *sc)
|
||||
oid = device_get_sysctl_tree(sc->dev);
|
||||
c0 = children = SYSCTL_CHILDREN(oid);
|
||||
|
||||
sc->sc_do_rxcopy = 1;
|
||||
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "do_rx_copy", CTLFLAG_RW,
|
||||
&sc->sc_do_rxcopy, 1, "Do RX copy of small frames");
|
||||
|
||||
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "nports", CTLFLAG_RD, NULL,
|
||||
sc->params.nports, "# of ports");
|
||||
|
||||
|
@ -1447,7 +1447,7 @@ get_fl_payload1(struct adapter *sc, struct sge_fl *fl, uint32_t len_newbuf,
|
||||
|
||||
bus_dmamap_sync(fl->tag[sd->tag_idx], sd->map,
|
||||
BUS_DMASYNC_POSTREAD);
|
||||
if (len < RX_COPY_THRESHOLD) {
|
||||
if (sc->sc_do_rxcopy && (len < RX_COPY_THRESHOLD)) {
|
||||
#ifdef T4_PKT_TIMESTAMP
|
||||
/* Leave room for a timestamp */
|
||||
m0->m_data += 8;
|
||||
@ -1598,7 +1598,7 @@ get_fl_payload2(struct adapter *sc, struct sge_fl *fl, uint32_t len_newbuf,
|
||||
|
||||
bus_dmamap_sync(fl->tag[sd->tag_idx], sd->map, BUS_DMASYNC_POSTREAD);
|
||||
|
||||
if (len < RX_COPY_THRESHOLD) {
|
||||
if (sc->sc_do_rxcopy && (len < RX_COPY_THRESHOLD)) {
|
||||
#ifdef T4_PKT_TIMESTAMP
|
||||
/* Leave room for a timestamp */
|
||||
m0->m_data += 8;
|
||||
|
Loading…
Reference in New Issue
Block a user