Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Mar 2003 19:22:38 +0100
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Nate Lawson <nate@root.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys devicestat.h 
Message-ID:  <2986.1047320558@critter.freebsd.dk>
In-Reply-To: Your message of "Mon, 10 Mar 2003 10:13:36 PST." <Pine.BSF.4.21.0303101009420.93727-100000@root.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <Pine.BSF.4.21.0303101009420.93727-100000@root.org>, Nate Lawson wri
tes:

Doesn't work:

	CPU0 (kernel)		CPU1 (userland)

	increment seq
				start copy
	fiddle data
				end copy
				(copy is inconsistent)

You need two sequence fields:

	CPU0 (kernel)		CPU1 (userland)

	increment seq0
				start copy
	fiddle data
				end copy
	increment seq1
				(seq0 != seq1 indicates inconcistent data)

Notice that to make it absolutely water-tight, the seq fields must
be updated with appropriate write barriers and the order of the
fields must be the opposite as the direction the copy is performed in.

I may not think it worth going to that effort for io stats.


-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

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




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