[Bug 211062] [ixv] sr-iov virtual function driver fails to attach

2021-10-18 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211062

xygzen  changed:

   What|Removed |Added

 CC||j...@iamplugged.in

--- Comment #15 from xygzen  ---
If it helps any - I was getting the exact same issue at one cloud provider.

When I enabled SR-IOV in the BIOS it had a cryptic message about needing to
enable ASPM (Active State Power Management) for the SR-IOV to work properly.
Nothing I did allowed it to work.

When I switched providers, there was an ASPM setting in the BIOS of the new
machine that wasn't there previously - and these were both Supermicro boards so
it looks like not all motherboards support this functionality or maybe there is
a newer version of the BIOS that has the setting correctly enabled.

I still needed to enable hw.pci.honor_msi_blacklist=0 in /boot/loader.conf and
used the latest IX and IXV drivers from Intel:

IX - v3.3.25 -
https://www.intel.com/content/www/us/en/download/14303/intel-network-adapters-driver-for-pcie-10-gigabit-network-connections-under-freebsd.html

IXV -v.1.5.28 -
https://www.intel.com/content/www/us/en/download/645984/intel-network-adapter-virtual-function-driver-for-pcie-10-gigabit-network-connections-under-freebsd.html

Once I ran iovctl -C -f /etc/iovctl.conf the VF driver correctly attached to
ixv0 (no passthrough) and the pci devices were configured correctly for the
ixv1-3 for passthrough without drivers attached.

Setting iovctl_files="/etc/iovctl.conf" in rc.conf and changing the ip to be
configured on ixv0 instead of ix0 got this up and running automatically on
reboot.

If you're looking for a good cloud host with support for this I can highly
recommend https://www.zare.com

Hope that helps!

-- 
You are receiving this mail because:
You are the assignee for the bug.


[Bug 232451] [igb] I210 NIC can not send more than ~670Mbit/s with flow control enabled.

2021-10-18 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=232451

Kevin Bowling  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|New |Closed

--- Comment #6 from Kevin Bowling  ---
Thanks Lev!  I can confirm the driver is in a similar state in stable/13 and
main, and this version will ship in 12.3 so I will close this bug out.  I am
not sure on the specific fix, a lot of things have been improved since the
initial report.

-- 
You are receiving this mail because:
You are the assignee for the bug.


[Bug 232451] [igb] I210 NIC can not send more than ~670Mbit/s with flow control enabled.

2021-10-18 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=232451

--- Comment #5 from Lev A. Serebryakov  ---
Looks like latest stable12 doesn't have this problem.

-- 
You are receiving this mail because:
You are the assignee for the bug.


NULL pointer crash in iflib_rxd_pkt_get with vmxnet3

2021-10-18 Thread Andriy Gapon



This happened on FreeBSD 12.2 running as an ESXi guest with vmxnet3 network 
interface.


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x0
fault code  = supervisor read data, page not present
instruction pointer = 0x20:0x809d4bad
stack pointer   = 0x28:0xfe00c85cba40
frame pointer   = 0x28:0xfe00c85cba40
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 = 0 (if_io_tqg_0)
trap number = 12
panic: page fault

(kgdb) bt
#0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55
#1  doadump (textdump=-933448896) at /usr/src/sys/kern/kern_shutdown.c:447
#2  0x8038f1cc in db_fncall_generic (addr=, nargs=0, 
args=, rv=) at /usr/src/sys/ddb/db_command.c:622
#3  db_fncall (dummy1=, dummy2=, dummy3=out>, dummy4=) at /usr/src/sys/ddb/db_command.c:670
#4  0x8038eaf6 in db_command (last_cmdp=, 
cmd_table=, dopager=0) at /usr/src/sys/ddb/db_command.c:494
#5  0x80393a68 in db_script_exec (scriptname=, 
warnifnotfound=) at /usr/src/sys/ddb/db_script.c:304
#6  0x80393892 in db_script_kdbenter (eventname=) at 
/usr/src/sys/ddb/db_script.c:326
#7  0x80391ac3 in db_trap (type=, code=) 
at /usr/src/sys/ddb/db_main.c:251
#8  0x807821e2 in kdb_trap (type=3, code=0, tf=0xfe00c85cb630) at 
/usr/src/sys/kern/subr_kdb.c:700
#9  0x809d870e in trap (frame=0xfe00c85cb630) at 
/usr/src/sys/amd64/amd64/trap.c:583

#10 
#11 kdb_enter (why=0x80b17af9 "panic", msg=0x80b17af9 "panic") 
at /usr/src/sys/kern/subr_kdb.c:486
#12 0x8073ddce in vpanic (fmt=, ap=) at 
/usr/src/sys/kern/kern_shutdown.c:975
#13 0x8073dc23 in panic (fmt=0x81178120  "") at 
/usr/src/sys/kern/kern_shutdown.c:909
#14 0x809d8b31 in trap_fatal (frame=0xfe00c85cb980, eva=0) at 
/usr/src/sys/amd64/amd64/trap.c:921
#15 0x809d8b8f in trap_pfault (frame=0xfe00c85cb980, 
usermode=, signo=, ucode=) at 
/usr/src/sys/amd64/amd64/trap.c:739
#16 0x809d8256 in trap (frame=0xfe00c85cb980) at 
/usr/src/sys/amd64/amd64/trap.c:405

#17 
#18 memcpy_erms () at /usr/src/sys/amd64/amd64/support.S:577
#19 0x8084d049 in iflib_rxd_pkt_get (rxq=0xfe00ea9f5000, 
ri=) at /usr/src/sys/net/iflib.c:2737
#20 iflib_rxeof (rxq=, budget=) at 
/usr/src/sys/net/iflib.c:2879

#21 _task_fn_rx (context=) at /usr/src/sys/net/iflib.c:3868
#22 0x807808bd in gtaskqueue_run_locked (queue=0xf800020c7200) at 
/usr/src/sys/kern/subr_gtaskqueue.c:362
#23 0x8078068e in gtaskqueue_thread_loop (arg=) at 
/usr/src/sys/kern/subr_gtaskqueue.c:537
#24 0x8070792d in fork_exit (callout=0x80780610 
, arg=0xfe7f8008, frame=0xfe00c85cbc00) at 
/usr/src/sys/kern/kern_fork.c:1088

#25 

(kgdb) fr 19
#19 0x8084d049 in iflib_rxd_pkt_get (rxq=0xfe00ea9f5000, 
ri=) at /usr/src/sys/net/iflib.c:2737

2737/usr/src/sys/net/iflib.c: No such file or directory.
(kgdb) i loc
sd = {ifsd_cl = 0xf80002d61a38, ifsd_m = 0xf80002d62a38, ifsd_fl = 
0xf80002d93400}

m = 0xf80123211c00

(kgdb) p m->m_data
$1 = (caddr_t) 0xf80123211c58 ""
(kgdb) p sd.ifsd_cl
$2 = (caddr_t *) 0xf80002d61a38
(kgdb) p *sd.ifsd_cl
$3 = (caddr_t) 0x0

Is this a known issue?
Is there a chance that this has already been fixed?

Thank you.

--
Andriy Gapon



Re: Iterating all VNETs from userspace application

2021-10-18 Thread Özkan KIRIK
I'll have a look

On Mon, Oct 18, 2021 at 11:07 AM Özkan KIRIK  wrote:
>
> Thank you Bjoern, I'll have al
>
> On Mon, Oct 18, 2021 at 10:49 AM Bjoern A. Zeeb
>  wrote:
> >
> > On 18 Oct 2021, at 4:46, Özkan KIRIK wrote:
> >
> > > Hi,
> > >
> > > I'm trying to gather all even within jails/vnet interface stats which
> > > interface type ifmd_data.ifi_type == IFT_ETHER (6) for bsnmpd. Related
> > > function (not modified) is here:
> > >
> > > https://github.com/freebsd/freebsd-src/blob/main/contrib/bsnmp/snmp_mibII/mibII.c#L926-L985
> > >
> > > It's possible to add a filter interface type adding a line below line
> > > 961:
> > > if (mib.ifmd_data.ifi_type != IFT_ETHER) return;
> > >
> > > I'm looking for a way to iterate VNET instances, but net/vnet.h is
> > > only for kernel space.
> > > VNET_LIST_RLOCK_NOSLEEP();
> > > VNET_FOREACH(vnet_iter) {
> > > CURVNET_SET(vnet_iter);
> > > mib_refresh_iflist();
> > > CURVNET_RESTORE();
> > > }
> > > VNET_LIST_RUNLOCK_NOSLEEP();
> > > The code above not working in userspace.
> > >
> > > Also I wonder that if it's possible to switch between jails. The
> > > pseudo code I want to write:
> > >
> > > JAIL_FOREACH(jail_iter) {
> > > jail_attach(jail_iter);
> > > mib_refresh_iflist();
> > > jail_detach();
> > > }
> > >
> > > What is the right way to gather all interface stats ?
> >
> > Have a look at libkvm;  I seem to remember adding vnet support.
> >
> > /bz
> >



Re: Iterating all VNETs from userspace application

2021-10-18 Thread Özkan KIRIK
Thank you Bjoern, I'll have al

On Mon, Oct 18, 2021 at 10:49 AM Bjoern A. Zeeb
 wrote:
>
> On 18 Oct 2021, at 4:46, Özkan KIRIK wrote:
>
> > Hi,
> >
> > I'm trying to gather all even within jails/vnet interface stats which
> > interface type ifmd_data.ifi_type == IFT_ETHER (6) for bsnmpd. Related
> > function (not modified) is here:
> >
> > https://github.com/freebsd/freebsd-src/blob/main/contrib/bsnmp/snmp_mibII/mibII.c#L926-L985
> >
> > It's possible to add a filter interface type adding a line below line
> > 961:
> > if (mib.ifmd_data.ifi_type != IFT_ETHER) return;
> >
> > I'm looking for a way to iterate VNET instances, but net/vnet.h is
> > only for kernel space.
> > VNET_LIST_RLOCK_NOSLEEP();
> > VNET_FOREACH(vnet_iter) {
> > CURVNET_SET(vnet_iter);
> > mib_refresh_iflist();
> > CURVNET_RESTORE();
> > }
> > VNET_LIST_RUNLOCK_NOSLEEP();
> > The code above not working in userspace.
> >
> > Also I wonder that if it's possible to switch between jails. The
> > pseudo code I want to write:
> >
> > JAIL_FOREACH(jail_iter) {
> > jail_attach(jail_iter);
> > mib_refresh_iflist();
> > jail_detach();
> > }
> >
> > What is the right way to gather all interface stats ?
>
> Have a look at libkvm;  I seem to remember adding vnet support.
>
> /bz
>



Re: Iterating all VNETs from userspace application

2021-10-18 Thread Bjoern A. Zeeb

On 18 Oct 2021, at 4:46, Özkan KIRIK wrote:


Hi,

I'm trying to gather all even within jails/vnet interface stats which
interface type ifmd_data.ifi_type == IFT_ETHER (6) for bsnmpd. Related
function (not modified) is here:

https://github.com/freebsd/freebsd-src/blob/main/contrib/bsnmp/snmp_mibII/mibII.c#L926-L985

It's possible to add a filter interface type adding a line below line 
961:

if (mib.ifmd_data.ifi_type != IFT_ETHER) return;

I'm looking for a way to iterate VNET instances, but net/vnet.h is
only for kernel space.
VNET_LIST_RLOCK_NOSLEEP();
VNET_FOREACH(vnet_iter) {
CURVNET_SET(vnet_iter);
mib_refresh_iflist();
CURVNET_RESTORE();
}
VNET_LIST_RUNLOCK_NOSLEEP();
The code above not working in userspace.

Also I wonder that if it's possible to switch between jails. The
pseudo code I want to write:

JAIL_FOREACH(jail_iter) {
jail_attach(jail_iter);
mib_refresh_iflist();
jail_detach();
}

What is the right way to gather all interface stats ?


Have a look at libkvm;  I seem to remember adding vnet support.

/bz