Simplify r267600, there's no need to distinguish between allocated and
inlined mbufs. MFC after: 1 week
This commit is contained in:
parent
4c49a9e5c9
commit
5be3b98626
@ -290,8 +290,7 @@ struct cluster_metadata {
|
||||
|
||||
struct fl_sdesc {
|
||||
caddr_t cl;
|
||||
uint8_t nimbuf; /* # of inline mbufs with ref on the cluster */
|
||||
uint8_t nembuf; /* # of allocated mbufs with ref */
|
||||
uint16_t nmbuf; /* # of driver originated mbufs with ref on cluster */
|
||||
struct cluster_layout cll;
|
||||
};
|
||||
|
||||
|
@ -1559,7 +1559,7 @@ get_scatter_segment(struct adapter *sc, struct sge_fl *fl, int total, int flags)
|
||||
/* copy data to mbuf */
|
||||
bcopy(payload, mtod(m, caddr_t), len);
|
||||
|
||||
} else if (sd->nimbuf * MSIZE < cll->region1) {
|
||||
} else if (sd->nmbuf * MSIZE < cll->region1) {
|
||||
|
||||
/*
|
||||
* There's spare room in the cluster for an mbuf. Create one
|
||||
@ -1567,14 +1567,14 @@ get_scatter_segment(struct adapter *sc, struct sge_fl *fl, int total, int flags)
|
||||
*/
|
||||
|
||||
MPASS(clm != NULL);
|
||||
m = (struct mbuf *)(sd->cl + sd->nimbuf * MSIZE);
|
||||
m = (struct mbuf *)(sd->cl + sd->nmbuf * MSIZE);
|
||||
/* No bzero required */
|
||||
if (m_init(m, NULL, 0, M_NOWAIT, MT_DATA, flags | M_NOFREE))
|
||||
return (NULL);
|
||||
fl->mbuf_inlined++;
|
||||
m_extaddref(m, payload, padded_len, &clm->refcount, rxb_free,
|
||||
swz->zone, sd->cl);
|
||||
sd->nimbuf++;
|
||||
sd->nmbuf++;
|
||||
|
||||
} else {
|
||||
|
||||
@ -1591,7 +1591,7 @@ get_scatter_segment(struct adapter *sc, struct sge_fl *fl, int total, int flags)
|
||||
if (clm != NULL) {
|
||||
m_extaddref(m, payload, padded_len, &clm->refcount,
|
||||
rxb_free, swz->zone, sd->cl);
|
||||
sd->nembuf++;
|
||||
sd->nmbuf++;
|
||||
} else {
|
||||
m_cljset(m, sd->cl, swz->type);
|
||||
sd->cl = NULL; /* consumed, not a recycle candidate */
|
||||
@ -3253,7 +3253,7 @@ refill_fl(struct adapter *sc, struct sge_fl *fl, int nbufs)
|
||||
|
||||
if (sd->cl != NULL) {
|
||||
|
||||
if (sd->nimbuf + sd->nembuf == 0) {
|
||||
if (sd->nmbuf == 0) {
|
||||
/*
|
||||
* Fast recycle without involving any atomics on
|
||||
* the cluster's metadata (if the cluster has
|
||||
@ -3312,8 +3312,7 @@ recycled:
|
||||
#endif
|
||||
clm->refcount = 1;
|
||||
}
|
||||
sd->nimbuf = 0;
|
||||
sd->nembuf = 0;
|
||||
sd->nmbuf = 0;
|
||||
recycled_fast:
|
||||
fl->pending++;
|
||||
fl->needed--;
|
||||
@ -3382,7 +3381,7 @@ free_fl_sdesc(struct adapter *sc, struct sge_fl *fl)
|
||||
|
||||
cll = &sd->cll;
|
||||
clm = cl_metadata(sc, fl, cll, sd->cl);
|
||||
if (sd->nimbuf + sd->nembuf == 0 ||
|
||||
if (sd->nmbuf == 0 ||
|
||||
(clm && atomic_fetchadd_int(&clm->refcount, -1) == 1)) {
|
||||
uma_zfree(sc->sge.sw_zone_info[cll->zidx].zone, sd->cl);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user