Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Feb 2003 19:21:34 +1100
From:      Tim Robbins <tjr@FreeBSD.org>
To:        Julian Elischer <julian@elischer.org>
Cc:        Bruce Evans <bde@zeta.org.au>, Julian Elischer <julian@FreeBSD.org>, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys proc.h src/sys/kern kern_clock.c
Message-ID:  <20030209192134.A10064@dilbert.robbins.dropbear.id.au>
In-Reply-To: <200302090606.WAA33546@InterJet.elischer.org>; from julian@elischer.org on Sat, Feb 08, 2003 at 10:06:46PM -0800
References:  <200302090606.WAA33546@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Feb 08, 2003 at 10:06:46PM -0800, Julian Elischer wrote:

[...]
> So it turns out the code is correct.

Thanks for the explanation. It seems reasonable now. My other concern
is protecting addupc_{intr,task}() from profil() and also protecting
addupc_task() from itself.

There's an splstatclock() call in profil() which was presumably there to
stop profil() from interfering with p_stats->p_prof while addupc_* were
running. Maybe we could have a spinlock in struct uprof to synchronise
access to it...

I'm not entirely comfortable about this piece of code in the presence
of multiple threads, either. It looks like it could lose ticks.
        addr = prof->pr_base + i;
        if (copyin(addr, &v, sizeof(v)) == 0) {
                v += ticks;
                if (copyout(&v, addr, sizeof(v)) == 0)


Tim

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030209192134.A10064>