Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Jan 2011 11:06:35 -0800
From:      Artem Belevich <fbsdlist@src.cx>
To:        Martin Matuska <mm@freebsd.org>
Cc:        freebsd-fs <freebsd-fs@freebsd.org>
Subject:   Re: ZFS: clock_t overflow in l2arc_feed_thread
Message-ID:  <AANLkTikASEbWQRsZr%2BMHth-jzbskwt4P14mXjCjdZrPk@mail.gmail.com>
In-Reply-To: <4D443407.7010604@FreeBSD.org>
References:  <AANLkTikciV_XHvrurytr0-r11W4u=_p5bRi-xfX3S%2BQm@mail.gmail.com> <4D443407.7010604@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jan 29, 2011 at 7:36 AM, Martin Matuska <mm@freebsd.org> wrote:
> I agree to you that we have different types and this may be an issue but
> I disagree to your patch.
> clock_t is not signed (int64_t) and this can be done in a much easier
> (and cleaner way) without touching the code, see attached patch.

I like the minimalism of your patch.

It should fix the overflow on LP64, but it would still be there on
i386. To avoid this particular problem we need int64_t even on 32-bit
platforms. Either that, or we should change the way we emulate
solaris' LBOLT in FreeBSD.

Another concern I have is with this patch we'll end up with parts of
kernel compiled with 32-bit clock_t and other parts build with 64-bit
clock_t. If someone passes a pointer to clock_t between these two
classes of code, we'll have a problem.

--Artem



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikASEbWQRsZr%2BMHth-jzbskwt4P14mXjCjdZrPk>