From owner-p4-projects@FreeBSD.ORG Tue Jul 19 13:55:08 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66C881065676; Tue, 19 Jul 2011 13:55:08 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29818106566C for ; Tue, 19 Jul 2011 13:55:08 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id E833F8FC0C for ; Tue, 19 Jul 2011 13:55:07 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id p6JDt7Ew099825 for ; Tue, 19 Jul 2011 13:55:07 GMT (envelope-from syuu@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p6JDt7fg099822 for perforce@freebsd.org; Tue, 19 Jul 2011 13:55:07 GMT (envelope-from syuu@FreeBSD.org) Date: Tue, 19 Jul 2011 13:55:07 GMT Message-Id: <201107191355.p6JDt7fg099822@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to syuu@FreeBSD.org using -f From: Takuya ASADA To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 196403 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2011 13:55:08 -0000 http://p4web.freebsd.org/@@196403?ac=10 Change 196403 by syuu@kikurage on 2011/07/19 13:55:06 skip genarating flowid on multiqueue if. Affected files ... .. //depot/projects/soc2011/mq_bpf/src/sys/net/bpf.h#7 edit .. //depot/projects/soc2011/mq_bpf/src/sys/netinet/in_rss.c#6 edit Differences ... ==== //depot/projects/soc2011/mq_bpf/src/sys/net/bpf.h#7 (text+ko) ==== @@ -41,7 +41,6 @@ #define _NET_BPF_H_ #include -#include /* BSD style release date */ #define BPF_RELEASE 199606 @@ -1113,7 +1112,7 @@ u_int bif_dlt; /* link layer type */ u_int bif_hdrlen; /* length of link header */ struct ifnet *bif_ifp; /* corresponding interface */ - struct rmlock bif_lock; /* rmlock for interface */ + struct mtx bif_lock; /* rmlock for interface */ }; void bpf_bufheld(struct bpf_d *d); ==== //depot/projects/soc2011/mq_bpf/src/sys/netinet/in_rss.c#6 (text+ko) ==== @@ -60,6 +60,8 @@ #include #endif +#include + /*- * Operating system parts of receiver-side scaling (RSS), which allows * network cards to direct flows to particular receive queues based on hashes @@ -420,10 +422,17 @@ struct mbuf * rss_m2cpuid(struct mbuf *m, uintptr_t source, u_int *cpuid) { +#ifdef SOFTRSS + int softrss_pkt = 0; +#endif + M_ASSERTPKTHDR(m); #ifdef SOFTRSS - softrss_set_flowid(m); + if (!(m->m_flags & M_FLOWID)) { + softrss_pkt = 1; + softrss_set_flowid(m); + } #endif switch (M_HASHTYPE_GET(m)) { @@ -431,16 +440,20 @@ case M_HASHTYPE_RSS_TCP_IPV4: *cpuid = rss_getcpu(rss_getbucket(m->m_pkthdr.flowid)); #ifdef SOFTRSS - m->m_pkthdr.rxqueue = *cpuid; - m->m_pkthdr.txqueue = (uint32_t)-1; + if (softrss_pkt) { + m->m_pkthdr.rxqueue = *cpuid; + m->m_pkthdr.txqueue = (uint32_t)-1; + } #endif return (m); default: *cpuid = NETISR_CPUID_NONE; #ifdef SOFTRSS - m->m_pkthdr.rxqueue = curcpu; - m->m_pkthdr.txqueue = (uint32_t)-1; + if (softrss_pkt) { + m->m_pkthdr.rxqueue = curcpu; + m->m_pkthdr.txqueue = (uint32_t)-1; + } #endif return (m); }