Date: Sun, 19 Aug 2007 22:38:23 GMT From: Kip Macy <kmacy@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 125367 for review Message-ID: <200708192238.l7JMcNTJ009466@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=125367 Change 125367 by kmacy@kip-macys-computer:opentoe_mbpro on 2007/08/19 22:37:32 sync changes to vendor linux tom Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_io.c#7 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_socket.c#5 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_listen.c#4 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom.c#5 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_io.c#7 (text+ko) ==== @@ -360,12 +360,15 @@ } static inline unsigned int -calc_opt0l(const struct socket *so) +calc_opt0l(struct socket *so) { struct tcpcb *tp = sototcpcb(so); - + struct tom_data *d = TOM_DATA(TOE_DEV(sk)); + /* PR 5138 */ + uint32_t rcv_wnd = min(tp->rcv_wnd, (u32)d->rx_page_size * 34); + return V_TOS(SO_TOS(so)) | V_ULP_MODE(ULP_MODE(so)) | - V_RCV_BUFSIZ(min(tp->rcv_wnd >> 10, (uint32_t)M_RCV_BUFSIZ)); + V_RCV_BUFSIZ(min(rcv_wnd >> 10, (uint32_t)M_RCV_BUFSIZ)); } static inline unsigned int @@ -461,9 +464,6 @@ free_wr_skb(m); } -#define wr_queue_walk(tp, skb) \ - for (skb = peek_wr(tp); skb; skb = (struct mbuf *)skb->input_dev) - /* * Returns true if an mbuf carries urgent data. */ @@ -502,7 +502,9 @@ (so->so_snd.sb_mb != NULL)); if (GET_TOE_FLAG(so, TX_DATA_SENT) == 0) { - req->flags |= htonl(F_TX_INIT | V_TX_CPU_IDX(qset(so))); + req->flags |= htonl(V_TX_ACK_PAGES(2) | F_TX_INIT | + V_TX_CPU_IDX(qset(tp))); + req->param |= htonl((so->so_snd.sb_flags & SB_AUTOSIZE) ? V_TX_SNDBUF(tcp_autosndbuf_max) : V_TX_SNDBUF(so->so_cred->cr_uidinfo->ui_sbsize)); ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_socket.c#5 (text+ko) ==== @@ -95,7 +95,7 @@ * Returns true if a connection should send more data to the TOE ASAP. */ static inline int -should_push(const struct socket *so) +should_push(struct socket *so) { struct tcpcb *tp = sototcpcb(so); struct toedev *dev = TOE_DEV(so); ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_listen.c#4 (text+ko) ==== @@ -174,7 +174,8 @@ req->peer_netmask = 0; req->opt0h = htonl(F_DELACK | F_TCAM_BYPASS); req->opt0l = htonl(V_RCV_BUFSIZ(16)); - req->opt1 = htonl(V_CONN_POLICY(CPL_CONN_POLICY_ASK)); + req->opt1 = htonl(V_CONN_POLICY(CPL_CONN_POLICY_ASK)| + V_OPT1_VLAN(0xfff)); m->m_priority = CPL_PRIORITY_LISTEN; cxgb_ofld_send(cdev, m); ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom.c#5 (text+ko) ==== @@ -342,6 +342,7 @@ struct tom_data *t = TOM_DATA(dev); struct toedev *cdev = t->cdev; struct ddp_params ddp; + struct ofld_page_info rx_page_info; int err; mbufq_init(&t->deferq); @@ -365,9 +366,14 @@ if (err) return err; + err = cdev->ctl(cdev, GET_RX_PAGE_INFO, &rx_page_info); + if (err) + return err; + t->ddp_llimit = ddp.llimit; t->ddp_ulimit = ddp.ulimit; t->pdev = ddp.pdev; + t->rx_page_size = rx_page_info.page_size; /* OK if this fails, we just can't do DDP */ t->nppods = (ddp.ulimit + 1 - ddp.llimit) / PPOD_SIZE;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708192238.l7JMcNTJ009466>