Date: Sat, 25 Apr 2009 13:49:33 -0400 From: Ben Kelly <ben@wanderview.com> To: Artem Belevich <fbsdlist@src.cx> Cc: freebsd-current@freebsd.org, Ryan Stone <rysto32@gmail.com> Subject: Re: [patch] zfs livelock and thread priorities Message-ID: <FC83DB1E-6C08-4BD4-8BC9-437D714FEE9E@wanderview.com> In-Reply-To: <ed91d4a80904242059n3642a40aud55df6d1b6a1695@mail.gmail.com> References: <DC9F2088-A0AF-467D-8574-F24A045ABD81@wanderview.com> <49C2CFF6.8070608@egr.msu.edu> <BDABA909-C2AE-4A55-869B-CA01BE778A82@wanderview.com> <ed91d4a80904131636u18c90474w7cdaa57bc7000e02@mail.gmail.com> <08D7DC2A-68BE-47B6-8D5D-5DE6B48F87E5@wanderview.com> <AC3C4C3F-40C6-4AF9-BAF3-2C4D1E444839@wanderview.com> <ed91d4a80904142135n429dea52o672abf51116fa707@mail.gmail.com> <ed91d4a80904241816r28531a04r2dc70fa8960d430e@mail.gmail.com> <bc2d970904241947r50576efbgc93164a9e4dd297d@mail.gmail.com> <ed91d4a80904242059n3642a40aud55df6d1b6a1695@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 24, 2009, at 11:59 PM, Artem Belevich wrote: > Ah! Indeed. > >> va_list va; >> va_start(ap, fmt); >> va_copy(va, ap); >> vsnprintf(p2->p_comm, sizeof(p2->p_comm), fmt, va); >> vsnprintf(td->td_name, sizeof(td->td_name), fmt, ap); > > We also need va_end(va) to clear up after va_copy(); I've updated the patch to use va_copy(). Unfortunately I don't have an AMD64 machine to test on at the moment. However, I did look at other places in the kernel where va_copy() is used so I am hopeful I got it right. Thanks again for the help! - Ben > > I'll give it a try. > > Thanks, > --Artem > > > > On Fri, Apr 24, 2009 at 7:47 PM, Ryan Stone <rysto32@gmail.com> wrote: >> The crash happens because vsnprintf is called twice on the same >> va_list. >> That's not legal. It happens to work on i386, but it will crash on >> amd64. >> The patch should instead do: >> >> va_list va; >> va_start(ap, fmt); >> va_copy(va, ap); >> vsnprintf(p2->p_comm, sizeof(p2->p_comm), fmt, va); >> vsnprintf(td->td_name, sizeof(td->td_name), fmt, ap); >> >> Ryan Stone >> >>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FC83DB1E-6C08-4BD4-8BC9-437D714FEE9E>