Date: Wed, 18 Aug 2010 20:04:54 -0400 (EDT) From: Rick Macklem <rmacklem@uoguelph.ca> To: pluknet <pluknet@gmail.com> Cc: Kostik Belousov <kostikbel@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: LOR on nfs: vfs_vnops.c:301 kern_descrip.c:1580 Message-ID: <699547258.794609.1282176294566.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <AANLkTimXxF0US60NsbOV_HvRrib7SJWmrLqpEpznPTxB@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> 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. > > > I'm away from home, so I can only do email and haven't looked at the patch, but I think you might want to consider avoiding the malloc() failure by calling malloc(... M_WAITOK); before grabbing the mutex. Then, set the pointer to NULL if you use it and free it at the end (I tend to test for non-NULL before calling free(), but others have pointed out that this isn't necessary.) I believe this is called "Dykstra's technique", although I used it a lot before I found out it had been published. I think handling the case where malloc() fails correctly could be difficult which is why I suggested the above. Good luck with the patch, rick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?699547258.794609.1282176294566.JavaMail.root>