Re: svn commit: r309725 - head/sys/dev/cxgbe

2016-12-09 Thread Olivier Cochard-Labbé
On Fri, Dec 9, 2016 at 3:21 AM, Navdeep Parhar  wrote:

> Author: np
> Date: Fri Dec  9 02:21:27 2016
> New Revision: 309725
> URL: https://svnweb.freebsd.org/changeset/base/309725
>
> Log:
>   cxgbe(4): netmap does not set IFCAP_NETMAP in an ifnet's if_capabilities
>   any more (since r307394).  Do it in the driver instead.
>
>   MFC after:1 week
>
>
​Thanks:It's better!

Now I can start one pkt-gen process without panicing my server.

But as soon as I start a second pkt-gen at the same time it panic again.

I don't have this problem with Intel NIC, only with Chelsio.


Fatal trap 12: page fault while in kernel mode
cpuid = 5; apic id = 0a
fault virtual address   = 0x0
fault code  = supervisor read data, page not present
instruction pointer = 0x20:0x8047c63a
stack pointer   = 0x28:0xfe0466004240
frame pointer   = 0x28:0xfe0466004310
code segment= base 0x0, limit 0xf, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags= interrupt enabled, resume, IOPL = 0
current process = 1902 (pkt-gen)
trap number = 12
panic: page fault
cpuid = 5
KDB: stack backtrace:
#0 0x8095cc07 at kdb_backtrace+0x67
#1 0x80916af6 at vpanic+0x186
#2 0x80916963 at panic+0x43
#3 0x80d36b82 at trap_fatal+0x322
#4 0x80d36d4c at trap_pfault+0x1bc
#5 0x80d36400 at trap+0x280
#6 0x80d198b1 at calltrap+0x8
#7 0x80634bec at netmap_hw_reg+0x2c
#8 0x806321cb at netmap_do_regif+0x2ab
#9 0x80632da8 at netmap_ioctl+0xb58
#10 0x8063688e at freebsd_netmap_ioctl+0x3e
#11 0x8084ea37 at devfs_ioctl+0xb7
#12 0x80ec6d28 at VOP_IOCTL_APV+0x88
#13 0x809f24d1 at vn_ioctl+0x161
#14 0x8084f27f at devfs_ioctl_f+0x1f
#15 0x8097a66b at kern_ioctl+0x31b
#16 0x8097a2ac at sys_ioctl+0x13c
#17 0x80d374f5 at amd64_syscall+0x4f5
Uptime: 59m40s
(kgdb) backtrace
#0  doadump (textdump=) at pcpu.h:222
#1  0x80916579 in kern_reboot (howto=260) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/kern/kern_shutdown.c:366
#2  0x80916b30 in vpanic (fmt=, ap=) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/kern/kern_shutdown.c:759
#3  0x80916963 in panic (fmt=) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/kern/kern_shutdown.c:690
#4  0x80d36b82 in trap_fatal (frame=0xfe0465fb7180, eva=0) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/amd64/amd64/trap.c:801
#5  0x80d36d4c in trap_pfault (frame=0xfe0465fb7180,
usermode=0) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/amd64/amd64/trap.c:658
#6  0x80d36400 in trap (frame=0xfe0465fb7180) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/amd64/amd64/trap.c:421
#7  0x80d198b1 in calltrap () at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/amd64/amd64/exception.S:236
#8  0x8047c63a in cxgbe_netmap_reg (na=,
on=) at netmap_kern.h:1747
#9  0x80634bec in netmap_hw_reg (na=0xf800055bc400, onoff=1) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/dev/netmap/netmap.c:2788
#10 0x806321cb in netmap_do_regif (priv=,
na=, ringid=, flags=)
at /usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/dev/netmap/netmap.c:2050
#11 0x80632da8 in netmap_ioctl (priv=,
cmd=, data=0xfe0465fb79b0 "vcxl0",
td=0xf800371bb500)
at /usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/dev/netmap/netmap.c:2257
#12 0x8063688e in freebsd_netmap_ioctl (dev=,
cmd=3225184658, data=0xfe0465fb79b0 "vcxl0", ffla=, td=0xf800371bb500)
at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/dev/netmap/netmap_freebsd.c:1389
#13 0x8084ea37 in devfs_ioctl (ap=) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/fs/devfs/devfs_vnops.c:831
#14 0x80ec6d28 in VOP_IOCTL_APV (vop=,
a=) at vnode_if.c:1067
#15 0x809f24d1 in vn_ioctl (fp=0xf800372d0be0, com=, data=0xfe0465fb79b0, active_cred=0xf8003714b500,
td=)
at vnode_if.h:448
#16 0x8084f27f in devfs_ioctl_f (fp=,
com=, data=, cred=, td=0xf800371bb500)
at /usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/fs/devfs/devfs_vnops.c:789
#17 0x8097a66b in kern_ioctl (td=, fd=, com=3225184658, data=0xfe0465fb79b0 "vcxl0") at
file.h:327
#18 0x8097a2ac in sys_ioctl (td=0xf800371bb500,
uap=0xfe0465fb7b60) at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/kern/sys_generic.c:746
#19 0x80d374f5 in amd64_syscall (td=0xf800371bb500, traced=0)
at subr_syscall.c:135
#20 0x80d19b9b in Xfast_syscall () at
/usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/amd64/amd64/exception.S:396
#21 0x00080100c3aa in ?? ()
Previous frame inner to this frame (corrupt stack?)
Current language:  auto; currently minimal
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

svn commit: r309725 - head/sys/dev/cxgbe

2016-12-08 Thread Navdeep Parhar
Author: np
Date: Fri Dec  9 02:21:27 2016
New Revision: 309725
URL: https://svnweb.freebsd.org/changeset/base/309725

Log:
  cxgbe(4): netmap does not set IFCAP_NETMAP in an ifnet's if_capabilities
  any more (since r307394).  Do it in the driver instead.
  
  MFC after:1 week

Modified:
  head/sys/dev/cxgbe/t4_main.c
  head/sys/dev/cxgbe/t4_netmap.c

Modified: head/sys/dev/cxgbe/t4_main.c
==
--- head/sys/dev/cxgbe/t4_main.cFri Dec  9 01:44:26 2016
(r309724)
+++ head/sys/dev/cxgbe/t4_main.cFri Dec  9 02:21:27 2016
(r309725)
@@ -1417,6 +1417,10 @@ cxgbe_vi_attach(device_t dev, struct vi_
if (vi->nofldrxq != 0)
ifp->if_capabilities |= IFCAP_TOE;
 #endif
+#ifdef DEV_NETMAP
+   if (vi->nnmrxq != 0)
+   ifp->if_capabilities |= IFCAP_NETMAP;
+#endif
ifp->if_capenable = T4_CAP_ENABLE;
ifp->if_hwassist = CSUM_TCP | CSUM_UDP | CSUM_IP | CSUM_TSO |
CSUM_UDP_IPV6 | CSUM_TCP_IPV6;
@@ -1435,7 +1439,7 @@ cxgbe_vi_attach(device_t dev, struct vi_
 
ether_ifattach(ifp, vi->hw_addr);
 #ifdef DEV_NETMAP
-   if (vi->nnmrxq != 0)
+   if (ifp->if_capabilities & IFCAP_NETMAP)
cxgbe_nm_attach(vi);
 #endif
sb = sbuf_new_auto();

Modified: head/sys/dev/cxgbe/t4_netmap.c
==
--- head/sys/dev/cxgbe/t4_netmap.c  Fri Dec  9 01:44:26 2016
(r309724)
+++ head/sys/dev/cxgbe/t4_netmap.c  Fri Dec  9 02:21:27 2016
(r309725)
@@ -870,7 +870,7 @@ cxgbe_nm_attach(struct vi_info *vi)
na.nm_register = cxgbe_netmap_reg;
na.num_tx_rings = vi->nnmtxq;
na.num_rx_rings = vi->nnmrxq;
-   netmap_attach(&na); /* This adds IFCAP_NETMAP to if_capabilities */
+   netmap_attach(&na);
 }
 
 void
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"