From owner-p4-projects@FreeBSD.ORG Mon Jul 4 17:18:06 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 54FC51065673; Mon, 4 Jul 2011 17:18:06 +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 1784E106566C for ; Mon, 4 Jul 2011 17:18:06 +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 05E688FC0A for ; Mon, 4 Jul 2011 17:18:06 +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 p64HI56d057495 for ; Mon, 4 Jul 2011 17:18:05 GMT (envelope-from syuu@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p64HI5nv057492 for perforce@freebsd.org; Mon, 4 Jul 2011 17:18:05 GMT (envelope-from syuu@FreeBSD.org) Date: Mon, 4 Jul 2011 17:18:05 GMT Message-Id: <201107041718.p64HI5nv057492@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 195722 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: Mon, 04 Jul 2011 17:18:06 -0000 http://p4web.freebsd.org/@@195722?ac=10 Change 195722 by syuu@kikurage on 2011/07/04 17:17:29 SOFT_MULTIQUEUE and its ioctls worked on ifconfig command Affected files ... .. //depot/projects/soc2011/mq_bpf/src/sbin/ifconfig/ifconfig.c#3 edit .. //depot/projects/soc2011/mq_bpf/src/sys/net/if.c#3 edit .. //depot/projects/soc2011/mq_bpf/src/sys/net/if.h#5 edit .. //depot/projects/soc2011/mq_bpf/src/sys/net/if_ethersubr.c#5 edit Differences ... ==== //depot/projects/soc2011/mq_bpf/src/sbin/ifconfig/ifconfig.c#3 (text+ko) ==== @@ -962,23 +962,23 @@ }else perror("ioctl"); - printf("\trxqueue len:%d affinity:", rxqlen); + printf("\trxqueue len=%d affinity=[", rxqlen); for (i = 0; i < rxqlen; i++) { - ifr.ifr_queue_affinity_idx = i; + ifr.ifr_queue_affinity_index = i; if (ioctl(s, SIOCGIFRXQAFFINITY, &ifr) == 0) - printf(" %d:%d", ifr.ifr_queue_affinity_idx, + printf(" %d:%d", ifr.ifr_queue_affinity_index, ifr.ifr_queue_affinity_cpu); } - putchar('\n'); + printf(" ]\n"); - printf("\ttxqueue len:%d affinity:", txqlen); + printf("\ttxqueue len=%d affinity=[", txqlen); for (i = 0; i < txqlen; i++) { - ifr.ifr_queue_affinity_idx = i; + ifr.ifr_queue_affinity_index = i; if (ioctl(s, SIOCGIFTXQAFFINITY, &ifr) == 0) - printf(" %d:%d", ifr.ifr_queue_affinity_idx, + printf(" %d:%d", ifr.ifr_queue_affinity_index, ifr.ifr_queue_affinity_cpu); } - putchar('\n'); + printf(" ]\n"); } tunnel_status(s); ==== //depot/projects/soc2011/mq_bpf/src/sys/net/if.c#3 (text+ko) ==== @@ -2433,7 +2433,9 @@ !ifp->if_capabilities & IFCAP_SOFT_MULTIQUEUE) return (EOPNOTSUPP); KASSERT(ifp->if_get_rxqueue_affinity, ("if_get_rxqueue_affinity not set")); - ifr->ifr_affinity_cpu = ifp->if_get_rxqueue_affinity(ifp, ifr->ifr_affinity_que); + log(LOG_DEBUG, "%s: SIOCGIFRXQAFFINITY ifr_queue_affinity_index:%d\n", __func__, ifr->ifr_queue_affinity_index); + ifr->ifr_queue_affinity_cpu = ifp->if_get_rxqueue_affinity(ifp, ifr->ifr_queue_affinity_index); + log(LOG_DEBUG, "%s: SIOCGIFRXQAFFINITY ifr_queue_affinity_cpu:%d\n", __func__, ifr->ifr_queue_affinity_cpu); break; case SIOCGIFTXQAFFINITY: @@ -2441,7 +2443,9 @@ !ifp->if_capabilities & IFCAP_SOFT_MULTIQUEUE) return (EOPNOTSUPP); KASSERT(ifp->if_get_rxqueue_affinity, ("if_get_rxqueue_affinity not set")); - ifr->ifr_affinity_cpu = ifp->if_get_rxqueue_affinity(ifp, ifr->ifr_affinity_que); + log(LOG_DEBUG, "%s: SIOCGIFTXQAFFINITY ifr_queue_affinity_index:%d\n", __func__, ifr->ifr_queue_affinity_index); + ifr->ifr_queue_affinity_cpu = ifp->if_get_rxqueue_affinity(ifp, ifr->ifr_queue_affinity_index); + log(LOG_DEBUG, "%s: SIOCGIFTXQAFFINITY ifr_queue_affinity_cpu:%d\n", __func__, ifr->ifr_queue_affinity_cpu); break; default: ==== //depot/projects/soc2011/mq_bpf/src/sys/net/if.h#5 (text+ko) ==== @@ -337,8 +337,8 @@ #define ifr_index ifr_ifru.ifru_index /* interface index */ #define ifr_rxqueue_len ifr_ifru.ifru_queue_len[0] /* rxqueue len */ #define ifr_txqueue_len ifr_ifru.ifru_queue_len[1] /* txqueue len */ -#define ifr_affinity_que ifr_ifru.ifru_queue_affinity[0] /* queue id */ -#define ifr_affinity_cpu ifr_ifru.ifru_queue_affinity[1] /* cpu id */ +#define ifr_queue_affinity_index ifr_ifru.ifru_queue_affinity[0] /* queue id */ +#define ifr_queue_affinity_cpu ifr_ifru.ifru_queue_affinity[1] /* cpu id */ }; #define _SIZEOF_ADDR_IFREQ(ifr) \ ==== //depot/projects/soc2011/mq_bpf/src/sys/net/if_ethersubr.c#5 (text+ko) ==== @@ -1061,13 +1061,17 @@ if_printf(ifp, "Ethernet address: %6D\n", lla, ":"); #ifdef SOFTRSS - if (!ifp->if_capabilities & IFCAP_MULTIQUEUE) { + printf("%s: SOFTRSS if:%s\n", __func__, ifp->if_xname); + if (!(ifp->if_capabilities & IFCAP_MULTIQUEUE)) { + printf("%s: !IFCAP_MULTIQUEUE if:%s\n", __func__, ifp->if_xname); ifp->if_capabilities |= IFCAP_SOFT_MULTIQUEUE; ifp->if_capenable |= IFCAP_SOFT_MULTIQUEUE; ifp->if_get_rxqueue_len = softrss_get_rxqueue_len; ifp->if_get_txqueue_len = softrss_get_txqueue_len; ifp->if_get_rxqueue_affinity = softrss_get_rxqueue_affinity; ifp->if_get_txqueue_affinity = softrss_get_txqueue_affinity; + }else{ + printf("%s: IFCAP_MULTIQUEUE if:%s\n", __func__, ifp->if_xname); } #endif } @@ -1471,7 +1475,7 @@ static int softrss_get_rxqueue_affinity(struct ifnet *ifp, int queid) { - netisr_get_cpuid(queid); + return netisr_get_cpuid(queid); } static int