Re: [patch] jiffies wraparound [Re: 2.1.125 Show stopper list: Draft]

Andrea Arcangeli (andrea@e-mind.com)
Mon, 19 Oct 1998 21:09:34 +0200 (CEST)


On Mon, 19 Oct 1998, Finn Arne Gangstad wrote:

>unsigned long j = timer_jiffies - 1;
^^^
Argg. I was simulating in userspace and I wasn' t able to find a formula
that would work with timer_jiffies starting from 0 and from !=0. Now all
is clear. Thanks.

Here the code following your suggestion:

static struct timer_vec tv5 = { ((JIFFIES_OFFSET - 1 >>
TVR_BITS + TVN_BITS * 3) + 1) & TVN_MASK };
static struct timer_vec tv4 = { ((JIFFIES_OFFSET - 1 >>
TVR_BITS + TVN_BITS * 2) + 1) & TVN_MASK };
static struct timer_vec tv3 = { ((JIFFIES_OFFSET - 1 >>
TVR_BITS + TVN_BITS) + 1) & TVN_MASK };
static struct timer_vec tv2 = { ((JIFFIES_OFFSET - 1 >>
TVR_BITS) + 1) & TVN_MASK };
static struct timer_vec_root tv1 = { JIFFIES_OFFSET & TVR_MASK };

In userspace this formula works fine.

Here the proggy I am using for the simulation if somebody is interested:

begin 664 timer.c.gz
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
(U1IMG-X7````
`
end

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/