Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Aug 2010 23:17:56 +0400
From:      pluknet <pluknet@gmail.com>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: LOR on nfs: vfs_vnops.c:301 kern_descrip.c:1580
Message-ID:  <AANLkTikwiTsiZtp5Zej8yDsR2b4%2B=TSL1oD-M_uRFqBd@mail.gmail.com>
In-Reply-To: <AANLkTi=V8bumpGKgi1aLXxhJkdKdpG1jfyrcXbMyc3Yw@mail.gmail.com>
References:  <AANLkTimJ=d06D2z24QyRQ98zEa1Pemk4=vkNGLNiX90N@mail.gmail.com> <AANLkTi=22WWy8Z5VWqri1p70iRzyocD9bWvNHwJavZ%2Bj@mail.gmail.com> <20100816185456.GU2396@deviant.kiev.zoral.com.ua> <AANLkTimfZ=UCiX9eo9XCwcROwViFCxJoB-rD1JxdAt2B@mail.gmail.com> <20100817160445.GO2396@deviant.kiev.zoral.com.ua> <AANLkTimyk0ZUnHpxxJuJtTya2U3npj_5Bm8brmwHfzr3@mail.gmail.com> <AANLkTimXxF0US60NsbOV_HvRrib7SJWmrLqpEpznPTxB@mail.gmail.com> <20100818134623.GU2396@deviant.kiev.zoral.com.ua> <AANLkTi=V8bumpGKgi1aLXxhJkdKdpG1jfyrcXbMyc3Yw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 18 August 2010 23:11, pluknet <pluknet@gmail.com> wrote:
> On 18 August 2010 17:46, Kostik Belousov <kostikbel@gmail.com> wrote:
>> On Wed, Aug 18, 2010 at 02:43:19PM +0400, pluknet wrote:
>>> On 18 August 2010 12:07, pluknet <pluknet@gmail.com> wrote:
>>> > On 17 August 2010 20:04, Kostik Belousov <kostikbel@gmail.com> wrote:
>>> >
>>> >>
>>> >> Also please take a note of the John' suggestion to use the taskqueue=
.
>>> >
>>> > I decided to go this road. Thank you both.
>>> > Now I do nfs buildkernel survive and prepare some benchmark results.
>>> >
>>>
>>> So, I modified the patch to defer proc_create() with taskqueue(9).
>>> Below is `time make -j5 buildkernel WITHOUT_MODULES=3Dyes` perf. evalua=
tion.
>>> Done on 4-way CPU on clean /usr/obj with /usr/src & /usr/obj both
>>> nfs-mounted over 1Gbit LAN.
>>>
>>> clean old
>>> 1137.985u 239.411s 7:42.15 298.0% =A0 =A0 =A0 6538+2133k 87+43388io 226=
pf+0w
>>>
>>> clean new
>>> 1134.755u 240.032s 7:41.25 298.0% =A0 =A0 =A0 6553+2133k 87+43367io 224=
pf+0w
>>>
>>> Patch needs polishing, though it generally works.
>>> Not sure if shep_chan (or whatever name it will get) needs locking.
>> As I said yesterday, if several requests to create nfsiod coming one
>> after another, you would loose all but the last.
>>
>> You should put the requests into the list, probably protected by
>> nfs_iod_mtx.
>>
>
> How about this patch? Still several things to ask.
> 1) I used malloc instance w/ M_NOWAIT, since it's called with nfs_iod_mtx=
 held.
> 2) Probably busy/done gymnastics is a wrong mess. Your help is appreciate=
d.
> 3) if (1) is fine, is it right to use fail: logic (i.e. set
> NFSIOD_NOT_AVAILABLE)
> on memory shortage? Not tested.
>
> There are debug printf() left intentionally to see how 3 contexts run und=
er load
> to each other. I attached these messages as well if that makes sense.
>

Ah, yes. Sorry, forgot about that.

This is from last run:
1139.225u 239.873s 7:44.90 296.6%       6524+2130k 77+43153io 220pf+0w

--=20
wbr,
pluknet



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikwiTsiZtp5Zej8yDsR2b4%2B=TSL1oD-M_uRFqBd>