Re: svn commit: r360569 - in head/sys: dev/cxgbe dev/cxgbe/crypto dev/cxgbe/tom kern sys

2020-05-04 Thread Li-Wen Hsu
On Sun, May 3, 2020 at 6:39 AM Gleb Smirnoff  wrote:
>
> Author: glebius
> Date: Sat May  2 22:39:26 2020
> New Revision: 360569
> URL: https://svnweb.freebsd.org/changeset/base/360569
...
> Modified: head/sys/kern/uipc_mbuf.c
> ==
> --- head/sys/kern/uipc_mbuf.c   Sat May  2 20:47:58 2020(r360568)
> +++ head/sys/kern/uipc_mbuf.c   Sat May  2 22:39:26 2020(r360569)
> @@ -163,11 +163,11 @@ CTASSERT(offsetof(struct mbuf, m_pktdat) % 8 == 0);
>  #if defined(__LP64__)
>  CTASSERT(offsetof(struct mbuf, m_dat) == 32);
>  CTASSERT(sizeof(struct pkthdr) == 56);
> -CTASSERT(sizeof(struct m_ext) == 168);
> +CTASSERT(sizeof(struct m_ext) == 160);
>  #else
>  CTASSERT(offsetof(struct mbuf, m_dat) == 24);
>  CTASSERT(sizeof(struct pkthdr) == 48);
> -CTASSERT(sizeof(struct m_ext) == 184);
> +CTASSERT(sizeof(struct m_ext) == 180);
>  #endif

This assertion is failing on powerpc and powerpcspe, can you check if
the constant needs adjustment?

Thanks,
Li-Wen
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r360569 - in head/sys: dev/cxgbe dev/cxgbe/crypto dev/cxgbe/tom kern sys

2020-05-02 Thread Gleb Smirnoff
Author: glebius
Date: Sat May  2 22:39:26 2020
New Revision: 360569
URL: https://svnweb.freebsd.org/changeset/base/360569

Log:
  Continuation of multi page mbuf redesign from r359919.
  
  The following series of patches addresses three things:
  
  Now that array of pages is embedded into mbuf, we no longer need
  separate structure to pass around, so struct mbuf_ext_pgs is an
  artifact of the first implementation. And struct mbuf_ext_pgs_data
  is a crutch to accomodate the main idea r359919 with minimal churn.
  
  Also, M_EXT of type EXT_PGS are just a synonym of M_NOMAP.
  
  The namespace for the newfeature is somewhat inconsistent and
  sometimes has a lengthy prefixes. In these patches we will
  gradually bring the namespace to "m_epg" prefix for all mbuf
  fields and most functions.
  
  Step 1 of 4:
  
   o Anonymize mbuf_ext_pgs_data, embed in m_ext
   o Embed mbuf_ext_pgs
   o Start documenting all this entanglement
  
  Reviewed by:  gallatin
  Differential Revision:https://reviews.freebsd.org/D24598

Modified:
  head/sys/dev/cxgbe/crypto/t4_kern_tls.c
  head/sys/dev/cxgbe/t4_sge.c
  head/sys/dev/cxgbe/tom/t4_cpl_io.c
  head/sys/dev/cxgbe/tom/t4_tls.c
  head/sys/kern/kern_mbuf.c
  head/sys/kern/kern_sendfile.c
  head/sys/kern/subr_bus_dma.c
  head/sys/kern/subr_sglist.c
  head/sys/kern/uipc_ktls.c
  head/sys/kern/uipc_mbuf.c
  head/sys/sys/mbuf.h
  head/sys/sys/sglist.h

Modified: head/sys/dev/cxgbe/crypto/t4_kern_tls.c
==
--- head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May  2 20:47:58 2020
(r360568)
+++ head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May  2 22:39:26 2020
(r360569)
@@ -906,7 +906,7 @@ ktls_tcp_payload_length(struct tlspcb *tlsp, struct mb
 
MBUF_EXT_PGS_ASSERT(m_tls);
ext_pgs = &m_tls->m_ext_pgs;
-   hdr = (void *)ext_pgs->m_epg_hdr;
+   hdr = (void *)m_tls->m_epg_hdr;
plen = ntohs(hdr->tls_length);
 
/*
@@ -962,7 +962,7 @@ ktls_payload_offset(struct tlspcb *tlsp, struct mbuf *
 
MBUF_EXT_PGS_ASSERT(m_tls);
ext_pgs = &m_tls->m_ext_pgs;
-   hdr = (void *)ext_pgs->m_epg_hdr;
+   hdr = (void *)m_tls->m_epg_hdr;
plen = ntohs(hdr->tls_length);
 #ifdef INVARIANTS
mlen = mtod(m_tls, vm_offset_t) + m_tls->m_len;
@@ -1040,7 +1040,7 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc
return (wr_len);
}
 
-   hdr = (void *)ext_pgs->m_epg_hdr;
+   hdr = (void *)m_tls->m_epg_hdr;
plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - ext_pgs->trail_len;
if (tlen < plen) {
plen = tlen;
@@ -1064,7 +1064,7 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc
wr_len += roundup2(imm_len, 16);
 
/* TLS record payload via DSGL. */
-   *nsegsp = sglist_count_ext_pgs(ext_pgs, ext_pgs->hdr_len + offset,
+   *nsegsp = sglist_count_ext_pgs(m_tls, ext_pgs->hdr_len + offset,
plen - (ext_pgs->hdr_len + offset));
wr_len += ktls_sgl_size(*nsegsp);
 
@@ -1543,7 +1543,7 @@ ktls_write_tunnel_packet(struct sge_txq *txq, void *ds
(m->m_pkthdr.l2hlen + m->m_pkthdr.l3hlen + sizeof(*tcp)));
 
/* Copy the subset of the TLS header requested. */
-   copy_to_txd(&txq->eq, (char *)ext_pgs->m_epg_hdr +
+   copy_to_txd(&txq->eq, (char *)m_tls->m_epg_hdr +
mtod(m_tls, vm_offset_t), &out, m_tls->m_len);
txq->imm_wrs++;
 
@@ -1604,7 +1604,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq 
/* Locate the TLS header. */
MBUF_EXT_PGS_ASSERT(m_tls);
ext_pgs = &m_tls->m_ext_pgs;
-   hdr = (void *)ext_pgs->m_epg_hdr;
+   hdr = (void *)m_tls->m_epg_hdr;
plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - ext_pgs->trail_len;
 
/* Determine how much of the TLS record to send. */
@@ -1799,7 +1799,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq 
 
/* Recalculate 'nsegs' if cached value is not available. */
if (nsegs == 0)
-   nsegs = sglist_count_ext_pgs(ext_pgs, ext_pgs->hdr_len +
+   nsegs = sglist_count_ext_pgs(m_tls, ext_pgs->hdr_len +
offset, plen - (ext_pgs->hdr_len + offset));
 
/* Calculate the size of the TLS work request. */
@@ -2031,7 +2031,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq 
/* Populate the TLS header */
out = (void *)(tx_data + 1);
if (offset == 0) {
-   memcpy(out, ext_pgs->m_epg_hdr, ext_pgs->hdr_len);
+   memcpy(out, m_tls->m_epg_hdr, ext_pgs->hdr_len);
out += ext_pgs->hdr_len;
}
 
@@ -2067,7 +2067,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq 
 
/* SGL for record payload */
sglist_reset(txq->gl);
-   if (sglist_append_ext_pgs(txq->gl, ext_pgs, ext_pgs->hdr_len + offset,
+   if (sglist_append_ext_pgs(txq->gl, m_t