Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Nov 2006 12:18:03 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Ivan Voras <ivoras@fer.hr>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Kqueue write event position?
Message-ID:  <20061123121513.U50054@fledge.watson.org>
In-Reply-To: <ek2ca4$sft$1@sea.gmane.org>
References:  <ek2ca4$sft$1@sea.gmane.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, 22 Nov 2006, Ivan Voras wrote:

>> From the kqueue(2) manual:
>
> """
>     EVFILT_VNODE   Takes a file descriptor as the identifier and the events
>                    to watch for in fflags, and returns when one or more of
>                    the requested events occurs on the descriptor.  The
> events
>                    to monitor are:...
> """
>
> I'm interested in NOTE_WRITE, but is there a way to find out where has the 
> write been performed (position and length)? If not, how difficult would it 
> be to expand the API so this information is included?

My concern with this idea is that kqueues are not really intended to provide 
an event stream, rather, notification of a condition.  As writes often come in 
batches, it's likely that by the time the kevent is received, several writes 
will have occurred, but only a single event notification will be present.  Is 
the application you have in mind able to benefit from what is effectively 
"polled" sampling of writes?  Does it benefit in the presence of writes from 
concurrent writers, where things like the position and length may depend on 
which of two or more writers wrote to the file most or least recently?

Robert N M Watson
Computer Laboratory
University of Cambridge



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