Sergey Matveychuk | 18 Apr 18:12 2014



Tell me please, why f_bfree is unsigned and f_bavail is signed?

struct statfs {
  uint64_t f_bfree;             /* free blocks in filesystem */
  int64_t  f_bavail;            /* free blocks avail to non-superuser */
freebsd-hackers <at> mailing list
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe <at>"

Gabor Pali | 17 Apr 20:32 2014

FreeBSD Quarterly Status Report, January-March 2014

FreeBSD Quarterly Status Report, January-March 2014

   This report covers FreeBSD-related projects between January and March
   2014. This is the first of four reports planned for 2014.

   Note that there is an HTML version available at


   The first quarter of 2014 was, again, a hectic and productive time for
   FreeBSD. The Ports team released their landmark first quarterly
   "stable" branch. FreeBSD continues to grow on the ARM architecture, now
   running on an ARM-based ChromeBook. SMP is now possible on multi-core
   ARM systems. bhyve, the native FreeBSD hypervisor, continues to
   improve. An integral test suite is taking shape, and the Jenkins
   Continuous Integration system has been implemented. FreeBSD patches to
   GCC are being "forward-ported", and LLDB, the Clang/LLVM debugger is
   being ported. Desktop use has also seen improvements, with work on
   Gnome, KDE, Xfce, KMS video drivers,, and vt, the new console
   driver which supports KMS and Unicode. Linux and Wine binary
   compatibility layers have been improved. UEFI booting support has been
   merged to head. The FreeBSD Foundation continues to assist in moving
   FreeBSD forward, sponsoring conferences and meetings and numerous
   development projects. And these are only some of the things that
   happened! Read on for even more.

   Thanks to all the reporters for the excellent work! This report
   contains 41 entries and we hope you enjoy reading it.
(Continue reading)

Navdeep Parhar | 16 Apr 23:23 2014

vmem(9) with M_FIRSTFIT

I'm trying to use vmem with M_FIRSTFIT strategy but it causes an
assertion failure in vmem_xalloc.  The problem is that qc_import sets
M_BESTFIT in the flags passed to it before passing them on to
vmem_xalloc.  vmem_xalloc then complains because both FIRSTFIT and
BESTFIT are set.

Does anyone know why qc_import insists on M_BESTFIT?  Is it safe to
change it as shown here?

if ((flags & VMEM_FITMASK) == 0)
	flags |= M_BESTFIT;


(kgdb) p panicstr
$4 = 0xffffffff814ed960 "Assertion strat == M_BESTFIT || strat ==
M_FIRSTFIT failed at /usr/src/sys/kern/subr_vmem.c:1113"
(kgdb) bt
#10 0xffffffff808e2a38 in kassert_panic (fmt=<value optimized out>) at
#11 0xffffffff80931ac4 in vmem_xalloc (vm=0xfffff800cc1dd000,
size0=<value optimized out>, align=0, phase=0,
    nocross=0, minaddr=0, maxaddr=<value optimized out>, flags=<value
optimized out>, addrp=0x12)
    at /usr/src/sys/kern/subr_vmem.c:1113
#12 0xffffffff80933bcc in qc_import (arg=0xfffff800cc1dd488,
store=0xfffff800475a6418, cnt=125,
    flags=<value optimized out>) at /usr/src/sys/kern/subr_vmem.c:507
(Continue reading)

velocidade da luz | 16 Apr 17:49 2014

Corrected in FreeBSD Developers Handbook

You agree that should be corrected in FreeBSD Developers Handbook the what  is being discussed  in FreeBSD
I am interested in learning the true Assembly.
freebsd-hackers <at> mailing list
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe <at>"

Ivan Voras | 16 Apr 13:28 2014

fuse & sshfs: allow_other


I'm trying to use the "allow_other" option to fuse (allowing other users
to access the mount point), and it doesn't seem to work.

On Linux, a line in fuse.conf “user_allow_other” should be all that's
needed, but it doesn't work here - I tried creating fuse.conf in both
/etc and /usr/local/etc.

Any ideas?

George Mitchell | 15 Apr 13:10 2014

Clobbered MBR partition table

My laptop has a hard disk I partitioned, whoops, I mean sliced, into
four slices when I installed 8.2-STABLE on it a couple of years ago.
The first, third, and fourth slices I reserved for future experiments,
and most of the space went into the second slice where I installed
8.2-STABLE.  Time went on and the second slice is currently running
9.2-STABLE, and I installed 10.0-PRERELEASE on the first slice late
last year.  But mostly I have been booting off the second slice, which
means pressing enter at the initial F1/F2/F3/F4 boot prompt.

Then last Friday I was preparing to update the first slice to the
latest 10.0-STABLE.  Things were going well until I rebooted and
typed F1 at the boot prompt.  I immediately got a second prompt
offering me the options of second disk or PXE.  At this point the
machine was unbootable, as whatever I typed would cycle between the
F1/F2/F3/F4 alternatives and the second disk/PXE alternatives.  I hit
ctrl-alt-delete and got told there was no bootable disk.

So I got a new disk and plugged in into the laptop and started over
again.  (My first attempt was with a 10.0-RELEASE memstick image,
but that's a subject for another day.)  Out of conservatism, I have
installed 8.4-STABLE on the new disk.  Then the first thing I did
was to hook up the old disk through a USB adapter and dump it with
dd to a backup image.  That's going to be finished in a couple of
hours, at which point I hope to poke around on the old disk and
repair what I assume is a clobbered master boot record partition

My question is:
What's the best tool to help reconstruct the partition table?  I
think my problem will be mostly solved if I can find the BSD labels
(Continue reading)

Chris Torek | 15 Apr 09:43 2014


The change below enables the UART on some Intel boards with AMT
support (others, as shown by the value right above it, are already

(The correct author for credit is Tony Li)


diff --git a/sys/dev/uart/uart_bus_pci.c b/sys/dev/uart/uart_bus_pci.c
--- a/sys/dev/uart/uart_bus_pci.c
+++ b/sys/dev/uart/uart_bus_pci.c
 <at>  <at>  -114,6 +114,7  <at>  <at>  static const struct pci_id pci_ns8250_id
 { 0x14e4, 0x4344, 0xffff, 0, "Sony Ericsson GC89 PC Card", 0x10},
 { 0x151f, 0x0000, 0xffff, 0, "TOPIC Semiconductor TP560 56k modem", 0x10 },
 { 0x8086, 0x1c3d, 0xffff, 0, "Intel AMT - KT Controller", 0x10 },
+{ 0x8086, 0x1d3d, 0xffff, 0, "Intel AMT - C600/X79 series chipset KT Controller", 0x10 },
 { 0x8086, 0x2e17, 0xffff, 0, "4 Series Chipset Serial KT Controller", 0x10 },
 { 0x8086, 0x3b67, 0xffff, 0, "5 Series/3400 Series Chipset KT Controller",
 	0x10 },

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

Vijay Singh | 14 Apr 22:22 2014

cosmetic patch for kern_timeout.c

I was messing around in this file, and decided to convert it to the
new-style format:

cyc <at> [/u/vijay/bsd/CODE/cur/sys/kern]# svn diff kern_timeout.c
Index: kern_timeout.c
--- kern_timeout.c    (revision 264468)
+++ kern_timeout.c    (working copy)
 <at>  <at>  -844,10 +844,7  <at>  <at> 
  *    identify entries for untimeout.
 struct callout_handle
-timeout(ftn, arg, to_ticks)
-    timeout_t *ftn;
-    void *arg;
-    int to_ticks;
+timeout(timeout_t *ftn, void *arg, int to_ticks)
     struct callout_cpu *cc;
     struct callout *new;
 <at>  <at>  -869,10 +866,7  <at>  <at> 

-untimeout(ftn, arg, handle)
-    timeout_t *ftn;
-    void *arg;
-    struct callout_handle handle;
+untimeout(timeout_t *ftn, void *arg, struct callout_handle handle)
(Continue reading)

Dirk-Willem van Gulik | 14 Apr 11:58 2014

int32 in badsect.c / int64

Was trying to map out some bad blocks prior to temporarily read/empty 4 Tbyte volume using
‚badsect(8)’ - and returing it.

Was expecting to be able to put the sector # into badsect (e.g. 3432631424 from below FSCK output).

This gave me a bit of an odd:

	badsect: 3432631424: Result too large 

As the daddr_t seems to be a 64bit unsigned; I assumed that the:

			number = strtol(*argv, NULL, 0);

was some legacy culprint - and changed it to a strtoll as the daddr_t you are entering is an int 64. 

			number = strtoll(*argv, NULL, 0);

That gets it past that point; only to segv out on:

      cg = dtog(fs, fsbn);

	/usr/include/ufs/ffs/fs.h:#define	dtog(fs, d)	((d) / (fs)->fs_fpg)
	/usr/include/ufs/ffs/fs.h:#define	dtogd(fs, d)	((d) % (fs)->fs_fpg)

a bit later.  While fs is valid - it seems  fs->fs_fpg returns as ‚0’ — why is this ?  Is geom too new ? Or is
badsect too old/retired ?


aacd1: hard error cmd=read 4246326690-4246326721
(Continue reading)

Cedric Blancher | 12 Apr 12:32 2014

Accessing Kerberos NFS version 4 (not 2, 3) via /net automounter with kinit only (no /etc/krb5.conf access)

How hard is it to do this with FreeBSD's NFSv4 implementation?


---------- Forwarded message ----------
From: Wang Shouhua <shouhuaw <at>>
Date: Sat, Apr 12, 2014 at 11:24 AM
Subject: Accessing Kerberos NFS version 4 (not 2, 3) via /net
automounter with kinit only (no /etc/krb5.conf access)
To: Kerberos <at>

Lets recap:

1. Requirements:
- Linux or Solaris
- NFS automounter set up at /net
- Kerberos5 configured for realm EXAMPLE2.COM, rpc.gssd running
- A NFS server (version 4 only) exists in the
realm MOST.GOV.CN, with a subdir of test3

2. Goal:
A user provides his password to obtain a ticket for user2 <at> MOST.GOV.CN
(optionally nfs <at> MOST.GOV.CN, if this is a requirement to do a mount),
and is then able to cd into /net/, and do a
successful ls -al there

Is that possible?


(Continue reading)

Bryan Drewery | 12 Apr 03:21 2014

Re: Fix MNAMELEN or reimplement struct statfs

On Tue, Nov 19 21:53:38 UTC 2013 Jilles Tjoelker wrote:
> On Mon, Nov 18, 2013 at 11:01:42AM -0800, Doug Ambrisko wrote:
>> On Sat, Nov 16, 2013 at 08:31:29PM +0200, Konstantin Belousov wrote:
>> | I think that struct mount should have a const char * field where the
>> | non-trimmed path is stored and used for match at unmount. f_mntonname
>> | truncation would be only unfortunate user interface glitch.
>> Note that we are not storing the path in mount structure so no structures
>> have changed which is nice since then we haven't introduced any real
>> ABI breakage.  So we could MFC this.  The match isn't critical since
>> umount will fall back to fsid and work.  One thing that might be good to
>> do is change umount to try to umount via fsid first and then do the
>> match if the fsid failed versus the other way round that it does now.
>> The problem I see is if someone tries to do things based on the parsed
>> output of mount/df then that will fail since the output is truncated.
> As noted in comments in sbin/umount/umount.c, the statfs() call is
> deliberately after the mount list checks because it may block forever
> for unresponsive NFS servers. It would be unfortunate if hung NFS
> filesystems would have to be forcibly unmounted by copy/pasting the fsid
> from 'mount -v'.

From a user perspective, I'd love to see this get committed and MFC'd.
It's very odd to have ENAMETOOLONG errors while traversing .zfs/snapshot.

However, this would make the situation worse for poudriere, which is
what this particular thread was started on. It does exactly what you
worry about, it parses mount(1) output and umounts all descendants for a
given path. We do the same thing at my work for our base build system,
(Continue reading)