[718] in arla-drinkers

home help back first fref pref prev next nref lref last post

bsd-xfs, signaling to break a wait

daemon@ATHENA.MIT.EDU (Robert Watson)
Sun Mar 28 09:22:48 1999

From owner-arla-drinkers@stacken.kth.se Sun Mar 28 14:22:47 1999
Return-Path: <owner-arla-drinkers@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 1235 invoked from network); 28 Mar 1999 14:22:46 -0000
Received: from unknown (HELO sundance.stacken.kth.se) (130.237.234.41)
  by bloom-picayune.mit.edu with SMTP; 28 Mar 1999 14:22:46 -0000
Received: (from majordom@localhost)
	by sundance.stacken.kth.se (8.8.8/8.8.8) id QAA02318
	for arla-drinkers-list; Sun, 28 Mar 1999 16:14:34 +0200 (MET DST)
Received: from fledge.watson.org (root@FLEDGE.RES.CMU.EDU [128.2.93.229])
	by sundance.stacken.kth.se (8.8.8/8.8.8) with ESMTP id QAA02306
	for <arla-drinkers@stacken.kth.se>; Sun, 28 Mar 1999 16:14:19 +0200 (MET DST)
Received: from fledge.watson.org (robert@fledge.pr.watson.org [192.0.2.3])
	by fledge.watson.org (8.8.8/8.8.8) with SMTP id JAA06474
	for <arla-drinkers@stacken.kth.se>; Sun, 28 Mar 1999 09:14:17 -0500 (EST)
	(envelope-from robert@cyrus.watson.org)
Date: Sun, 28 Mar 1999 09:14:17 -0500 (EST)
From: Robert Watson <robert@cyrus.watson.org>
X-Sender: robert@fledge.watson.org
Reply-To: Robert Watson <robert@cyrus.watson.org>
To: arla-drinkers@stacken.kth.se
Subject: bsd-xfs, signaling to break a wait
Message-ID: <Pine.BSF.3.96.990328090652.6339C-100000@fledge.watson.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-arla-drinkers@stacken.kth.se
Precedence: bulk


Arla Folk,

I've been playing with XFS some over the last week or so.  I ran into the
following behavior:

When a user process touches a section of the mounted xfs file system and
the appropriate data is not in the kernel cache or owned by the kernel,
then the user process is blocked while a request message is sent to the
daemon listening on /dev/xfsn, and remains blocked until an appropriate
wakeup message is sent with the sequence number of the request message.
If additional user processes want to access the same object that that
an existing outgoing request is for, they also block, but additional
messages are not sent (or at least, this is true of getroot).

The first process can be signaled to break its wait on the object. 
Example: \ls -d /cachefs (where /cachefs is the mountpoint).  Pressing
ctrl-c to interrupt the first user process works.  However, if you ctrl-c
a second process running the same command, but started after the first
process, it will not be released from the block until the first user
process is released.  That is, its blocking appears to be uninterruptable. 

Preferred behavior would seem to be: if any process blocking on a message
receives a signal (such as ctrl-c) it may be woken up, not just the first
one (presumably the first in the chain of sleepers?)  

  Robert N Watson 

robert@fledge.watson.org              http://www.watson.org/~robert/
PGP key fingerprint: 03 01 DD 8E 15 67 48 73  25 6D 10 FC EC 68 C1 1C

Carnegie Mellon University            http://www.cmu.edu/
TIS Labs at Network Associates, Inc.  http://www.tis.com/
Safeport Network Services             http://www.safeport.com/


home help back first fref pref prev next nref lref last post