Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Sep 2016 13:58:16 -0400
From:      Larry Rosenman <ler@lerctr.org>
To:        Mateusz Guzik <mjguzik@gmail.com>
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:  <08ad38dde4ccabe7cf9ee09571c71ca2@thebighonker.lerctr.org>
In-Reply-To: <20160930175540.GD3714@dft-labs.eu>
References:  <201609301711.u8UHB35d046389@repo.freebsd.org> <20160930171845.GA62393@mutt-hardenedbsd> <20160930172845.GC3714@dft-labs.eu> <9eddf030ed57a527c2d23e32289df7cf@thebighonker.lerctr.org> <20160930175540.GD3714@dft-labs.eu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2016-09-30 13:55, Mateusz Guzik wrote:
> 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.

We've had this discussion before (re: interfaces). I thought the current 
versions of lsof only close
the first 1k FD's.  (what version of lsof is this? on 12-CURRENT?)


-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 214-642-9640                 E-Mail: ler@lerctr.org
US Mail: 17716 Limpia Crk, Round Rock, TX 78664-7281



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