Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Sep 2016 19:55:40 +0200
From:      Mateusz Guzik <mjguzik@gmail.com>
To:        Larry Rosenman <ler@lerctr.org>
Cc:        Shawn Webb <shawn.webb@hardenedbsd.org>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Mateusz Guzik <mjg@freebsd.org>, owner-svn-src-all@freebsd.org
Subject:   Re: svn commit: r306509 - in head/sys: fs/nandfs kern sys ufs/ffs
Message-ID:  <20160930175540.GD3714@dft-labs.eu>
In-Reply-To: <9eddf030ed57a527c2d23e32289df7cf@thebighonker.lerctr.org>
References:  <201609301711.u8UHB35d046389@repo.freebsd.org> <20160930171845.GA62393@mutt-hardenedbsd> <20160930172845.GC3714@dft-labs.eu> <9eddf030ed57a527c2d23e32289df7cf@thebighonker.lerctr.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 30, 2016 at 01:36:26PM -0400, Larry Rosenman wrote:
> On 2016-09-30 13:28, Mateusz Guzik wrote:
> >On Fri, Sep 30, 2016 at 01:18:45PM -0400, Shawn Webb wrote:
> >>On Fri, Sep 30, 2016 at 05:11:03PM +0000, Mateusz Guzik wrote:
> >>> Author: mjg
> >>> Date: Fri Sep 30 17:11:03 2016
> >>> New Revision: 306509
> >>> URL: https://svnweb.freebsd.org/changeset/base/306509
> >>>
> >>> Log:
> >>>   vfs: remove the __bo_vnode field from struct vnode
> >>>
> >>>   The pointer can be obtained using __containerof instead.
> >>>
> >>>   Reviewed by:	kib
> >>
> >>Should __FreeBSD_Version be bumped?
> >>
> >
> >Unlikely. It can be in an odd case it turns out there is a module which
> >is using the field.
> 
> Can someone do me a favor and make sure sysutils/lsof still
> compiles/works?
> 
> I'm OOT at the moment, and have a test IPv6 patch on my 12 system.

I just ran lsof and it worked fine at least for the basic case.

Apparently it indeed still goes through kernel memory. Did anyone ask
the author what kind of interfaces would they want to NOT have to do
this?

Also, it looks like it constains some kind of a loop to imitate
closefrom.

On truss I see over 3.7 milion (yes, MILION) calls to close. Like this:
close(3773297)                                   ERR#9 'Bad file descriptor'
close(3773298)                                   ERR#9 'Bad file descriptor'
close(3773299)                                   ERR#9 'Bad file descriptor'
close(3773300)                                   ERR#9 'Bad file descriptor'
close(3773301)                                   ERR#9 'Bad file descriptor'
close(3773302)                                   ERR#9 'Bad file descriptor'
close(3773303)                                   ERR#9 'Bad file descriptor'
[snip]

At least for freebsd this can be patched with the use of closefrom() on
all supported releases.

Arguably this may be a side effect of limits set too high, perhaps linux
sets them sigifnicanly lower and the problem is not that terrible.

-- 
Mateusz Guzik <mjguzik gmail.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160930175540.GD3714>