Stefano Garzarella | 17 Sep 10:27 2014

[RFC] Patch to add Software/Generic Segmentation Offload (GSO) support in FreeBSD

Hi all,
I have recently worked, during my master’s thesis with the supervision
of Prof. Luigi Rizzo, on a project to add GSO (Generic Segmentation
Offload) support in FreeBSD. I will present this project at EuroBSDcon
2014, in Sofia (Bulgaria) on September 28, 2014.

Following is a brief description of our project:

The use of large frames makes network communication much less
demanding for the CPU. Yet, backward compatibility and slow links
requires the use of 1500 byte or smaller frames.  Modern NICs with
hardware TCP segmentation offloading (TSO) address this problem.
However, a generic software version (GSO) provided by the OS has
reason to exist, for use on paths with no suitable hardware, such
as between virtual machines or with older or buggy NICs.

Much of the advantage of TSO comes from crossing the network stack only
once per (large) segment instead of once per 1500-byte frame.
GSO does the same both for segmentation (TCP) and fragmentation (UDP)
by doing these operations as late as possible. Ideally, this could be done
within the device driver, but that would require modifications to all
A more convenient, similarly effective approach is to segment
just before the packet is passed to the driver (in ether_output()).

Our preliminary implementation supports TCP and UDP on IPv4/IPv6;
it only intercepts packets large than the MTU (others are left unchanged),
and only when GSO is marked as enabled for the interface.

Segments larger than the MTU are not split in tcp_output(),
(Continue reading)

Bryan Drewery | 17 Sep 04:28 2014

Cam panic on r271170

I've been getting this quite frequently on head recently. I have dumps 
if anyone is interested in more information.

> Fatal trap 9: general protection fault while in kernel mode
> cpuid = 10; Memory modified after free 0xfffff8003e0b0800(2040) val=ffffffff  <at>  0xfffff8003e0b0808
> apanic: Most recently used by CAM CCB
> cpuid = 6
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe124735b4c0
> kdb_backtrace() at kdb_backtrace+0x39/frame 0xfffffe124735b570
> vpanic() at vpanic+0x189/frame 0xfffffe124735b5f0
> panic() at panic+0x43/frame 0xfffffe124735b650
> mtrash_ctor() at mtrash_ctor+0x8a/frame 0xfffffe124735b680
> uma_zalloc_arg() at uma_zalloc_arg+0x4f1/frame 0xfffffe124735b6f0
> malloc() at malloc+0x192/frame 0xfffffe124735b740
> xpt_run_allocq() at xpt_run_allocq+0xb5/frame 0xfffffe124735b780
> adastrategy() at adastrategy+0x117/frame 0xfffffe124735b7b0
> g_io_request() at g_io_request+0x3b7/frame 0xfffffe124735b810
> g_part_start() at g_part_start+0x2b7/frame 0xfffffe124735b890
> g_io_request() at g_io_request+0x3b7/frame 0xfffffe124735b8f0
> g_io_request() at g_io_request+0x3b7/frame 0xfffffe124735b950
> vdev_geom_io_start() at vdev_geom_io_start+0x137/frame 0xfffffe124735b970
> zio_vdev_io_start() at zio_vdev_io_start+0x49f/frame 0xfffffe124735b9d0
> zio_execute() at zio_execute+0x204/frame 0xfffffe124735ba30
> vdev_queue_io_done() at vdev_queue_io_done+0x180/frame 0xfffffe124735ba80
> zio_vdev_io_done() at zio_vdev_io_done+0x11d/frame 0xfffffe124735bac0
> zio_execute() at zio_execute+0x204/frame 0xfffffe124735bb20
> taskqueue_run_locked() at taskqueue_run_locked+0xf0/frame 0xfffffe124735bb80
> taskqueue_thread_loop() at taskqueue_thread_loop+0x9b/frame 0xfffffe124735bbb0
(Continue reading)

O. Hartmann | 16 Sep 22:53 2014

zpool: multiple IDs, CURRENT drops all pools after reboot

On of my backup drives dedicated to a ZPOOL is faulting and showing up multiple ID. The
only working ID is id: 257822624560506537.

FreeBSD CURRENT with three ZFS disks and only 4GB of RAM is very "flaky" regarding this
issue: today, tow times the whole poolset vanishes after a reboot. Giving the box 8 GB
total and rebooting doens't show the problem, it gets more frequent when reducing the RAM
to 4GB (FreeBSD 11.0-CURRENT #2 r271684: Tue Sep 16 20:41:47 CEST 2014). This is a bit

Below the faulted harddrive. I guess the drive/pool below shown triggers somehow the loss
of all other pools (I have to import the other pools, which do not have any defects, but
they they drop out after a reboot and vanish).

Is there a way getting rid of the faulty IDs without destroying the pool?



 root <at> thor: [/etc] zpool import
   pool: BACKUP00
     id: 9337833315545958689
  state: FAULTED
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.

(Continue reading)

Sean Bruno | 16 Sep 20:40 2014

New spam on all my current machine consoles

HV_KVP: open /dev/hv_kvp_dev failed; error: 2 No such file or directory

I assume that there is missing error handling in or logic here somewhere
as every one of my machines is spamming my consoles on startup with this
new message.


freebsd-current <at> mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscribe <at>"

Bryan Drewery | 16 Sep 20:00 2014

Daily head port building regression logs


I am planning to enable daily head build logs of ports to current <at> . The
idea is that only new regressions will generate 1 mail with a list of
failures. This list will only include *new* failures. It will not nag
every day if some port is still broken.

This will only work well if the ports tree used is stable and not
causing the failures due to updates. We have a quarterly tree that is
similar to a stable branch that we update less often. I will use this
branch for the builds.

I will not enable the actual mails until it has been tested to ensure it
is not noisy and full of false-positives.

This should help capture userland build regressions that are missed due
to not exp-running changes in src. The caveat here is that the host
kernel these builds are going on will remain on the normal monthly
update cycle. This hopefully won't cause too many false-positives. I can
always disable them temporarily or permanently should there be noise. It
may be that this system will need to have its host auto updated daily as
well. I'd rather not get into a constant brick-and-fix cycle though.


Bryan Drewery
on behalf of portmgr <at> 

Nick Hibma | 16 Sep 09:40 2014

Huawei E3272 tester needed


Is there someone who is able to test support for the Huawei E3272 card with CURRENT after 269584? I have not
been able to confirm that it works.

Thanks in advance.


The change:

Author: n_hibma
Date: Tue Aug  5 12:08:50 2014
New Revision: 269584

 Add support for Huawei E3272 modems which are supported by the CDC
 ethernet class.

 Note: This is untested as I do not have a device like this. That is
 reflected in the MFC timeout.

 PR:		192345
 Submitted by:
 MFC after:	4 weeks

(Continue reading)

O. Hartmann | 16 Sep 02:05 2014

CURRENT: EFI boot failure

Installing FreeBSD-11.0-CURRENT-amd64-20140903-r270990 on a Laptop works for UEFI fine.
After I updated the sources to  r271649, recompiled world and kernel (as well as
installed), now I get stuck with the screen message:

>> FreeBSD EFI boot block
   Loader path: /boot/loader.efi

and nothing happens. After a couple of minutes, the system reboots.

What happened and how can this problem be solved?
O. Hartmann | 15 Sep 23:38 2014

11.0-CURRENT and Lenovo ThinkPad E540: No LAN, no WiFI

Trying to install and run FreeBSD 11.0-CURRENT
(FreeBSD-11.0-CURRENT-amd64-20140903-r270990-memstick.img) on a new Lenovo E540 notebook
fails in activating the NIC (Realtek RTL8111/8168B, driver re[0]). The NIC shows up as
active and with carrier when issuing "ifconfig re0".

From a desktop machine, I tried to ping the system in question and I get a result with
missing packets:

ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
64 bytes from icmp_seq=26 ttl=64 time=0.114 ms
64 bytes from icmp_seq=41 ttl=64 time=0.130 ms
64 bytes from icmp_seq=60 ttl=64 time=0.119 ms
64 bytes from icmp_seq=80 ttl=64 time=0.119 ms
64 bytes from icmp_seq=100 ttl=64 time=0.105 ms
64 bytes from icmp_seq=116 ttl=64 time=0.135 ms
64 bytes from icmp_seq=136 ttl=64 time=0.091 ms

DHCP configuration fails, since no DHCP offer is discovered.

I swapped the switches, the cabling and I had always the same results. I used another
Laptop, Dell Latitude E6510 with the same configuration (/etc/rc.conf) and that system
gets DHCP offer and is online.

Since the notebook is brandnew, the last thing I'll "suspect" is a defective NIC, so I'll
ask whether this phenomenon is known - or, if not, the results definititely would
indicate a broken NIC. 

(Continue reading)

Thomas Mueller | 15 Sep 04:56 2014

Driver-specific debugging in buildkernel?

I want to build a kernel with debugging for a specific device, rather than for everything.

Device of interest is re (Ethernet driver), also rsu (USB wlan adapter).

I looked in Makefiles, also NOTES files, found some xxxxDEBUG options but nothing really general that
could be applied to any desired device in kernel or module.

Then I would need to know how to find this debugging information. 


freebsd-current <at> mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscribe <at>"

Tom Everett | 15 Sep 03:02 2014

SOEKRIS kernel crash

I've compiled a SOEKRIS kernel which I'm booting with Crochet-BSD.  It's
reliably crashing on boot, with the below message.   The kernel revision is
271600, and the kernel config is here:

Event timer "RTC" frequency 32768 Hz quality 0

attimer0: <AT timer> at port 0x40 on isa0

Timecounter "i8254" frequency 1189161 Hz quality 0

Event timer "i8254" frequency 1189161 Hz quality 100

uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0

uart0: console (9600,n,8,1)

uart1: <16550 or compatible> at port 0x2f8-0x2ff irq 3 on isa0

Timecounters tick every 1.000 msec

interrupt storm detected on "irq5:"; throttling interrupt source

Elan-mmcr driver: MMCR at 0xc37ff000.

Elan-mmcr Soekris net45xx comBIOS ver. 1.33 20080103 Copyright (C) 2000-2007

random: unblocking device.

(Continue reading)

Marcin Cieslak | 13 Sep 16:05 2014

Teach vidcontrol(1) and vt(4) to restore default font


I tried loading gallant.fnt which I did not
like and I was wondering how to come back to
the nice default font.

There does not seem to be the way to do this,
so please find below a simple patch to add
this functionality.

It adds a new ioctl PIO_VDFFONT to the vt(4)
driver. I hope I got the reference counting
on the vt_font_default structure right.

With this patch applied, "vidcontrol -f" restores
the built-in font.


Index: sys/dev/vt/vt_core.c
--- sys/dev/vt/vt_core.c	(wersja 271197)
+++ sys/dev/vt/vt_core.c	(kopia robocza)
 <at>  <at>  -1948,6 +1948,10  <at>  <at> 
  		return (error);
+	case PIO_VDFTFONT: {
+		error = vt_change_font(vw, &vt_font_default);
+		return (error);
(Continue reading)