Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Dec 2014 23:55:36 -0800
From:      Rui Paulo <rpaulo@me.com>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, John Baldwin <jhb@FreeBSD.org>
Subject:   Re: svn commit: r276008 - in head/sys: kern sys
Message-ID:  <8F0C318C-9312-479E-BF1C-57E3654D6105@me.com>
In-Reply-To: <549913D4.5090103@FreeBSD.org>
References:  <201412211332.sBLDW8VC030548@svn.freebsd.org> <201412220940.02509.jhb@freebsd.org> <08A2ABA0-C982-46BC-B309-3C23B8D277B9@me.com> <201412221417.42894.jhb@freebsd.org> <2C4635EF-6BE6-4ED7-B9D1-237F76259E88@me.com> <549913D4.5090103@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 22, 2014, at 23:03, Andriy Gapon <avg@FreeBSD.org> wrote:
>=20
> On 23/12/2014 04:39, Rui Paulo wrote:
>> On Dec 22, 2014, at 11:17, John Baldwin <jhb@freebsd.org> wrote:
>>>=20
>>> On Monday, December 22, 2014 1:29:38 pm Rui Paulo wrote:
>>>> On Dec 22, 2014, at 06:40, John Baldwin <jhb@freebsd.org> wrote:
>>>>> Is there something specific to core dumps that makes vn_fullpath() =
more
>>>>> useful to have working before a process tries to open the core?  =
(As
>>>>> compared to other newly-created files)
>>>>=20
>>>> Yes: the ability to provide the full path to userland when a core =
dump file=20
>>> is generated.
>>>=20
>>> Can you be more specific?  Are we printing the path on the console =
after
>>> destroying the generated path?  Is it being written into a note in =
the core
>>> itself (but only having the vnode of the core file available and not =
the=20
>>> generated path)?
>>=20
>> No.  I have some code that calls devctl_notify() when a core dump is =
generated which is useful for running an automated debugging session.  =
We use this at work and I'll see if I can upstream it.  What Konstantin =
fixed was the generation of the cache entry in the corefile_open() =
routine.  This lets me call vn_fullpath() after vn_close() with a high =
probability that it will work whereas, in the past, it was never in the =
cache, so vn_fullpath() would always fail.
>=20
> What is not entirely clear to me is why we need to recover the path =
from the
> vnode if we, obviously, have the path even before we have the vnode.

Using the default setting for core files, it's based on the CWD of the =
process.  If you're using a different kern.corefile setting, it's =
different.  You will also need to account for the %N format string =
(check the code for indexpos).  Given that this is far from being a hot =
path, it's much easier to just do a vn_fullpath() on the vnode than to =
deal with all the other details.=20

--
Rui Paulo






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8F0C318C-9312-479E-BF1C-57E3654D6105>