Subject: CVS commit: src/lib/libpuffs
To: None <source-changes@NetBSD.org>
From: Antti Kantee <pooka@netbsd.org>
List: source-changes
Date: 01/28/2008 18:35:51
Module Name:	src
Committed By:	pooka
Date:		Mon Jan 28 18:35:51 UTC 2008

Modified Files:
	src/lib/libpuffs: callcontext.c dispatcher.c framebuf.c puffs.3 puffs.c
	    puffs.h puffs_cc.3 puffs_priv.h requests.c

Log Message:
Implement lazy contexts for file systems using puffs_mainloop().
Previously each request was executed on its own callcontext and
switched to every time the request was being processed.  Now requests
borrow the mainloop context and switch only if/when they yield.
This takes two context switches away from a file system request
bringing down the typical amounts 2->0 (e.g. dtfs) and 4->2 (e.g.
psshfs).

The interfaces for manually executing requests changed a bit:
puffs_dispatch_create() and puffs_dispatch_exec() must now be used.
They are not tested, as nothing in-tree wants them and I doubt
anyone else is really interested in them either.

Also do some misc code cleanup related to execution contexts.  The
"work-in-progress checkpoint" committed over a year ago was starting
to look slightly weed-infested.


To generate a diff of this commit:
cvs rdiff -r1.19 -r1.20 src/lib/libpuffs/callcontext.c
cvs rdiff -r1.29 -r1.30 src/lib/libpuffs/dispatcher.c
cvs rdiff -r1.26 -r1.27 src/lib/libpuffs/framebuf.c
cvs rdiff -r1.38 -r1.39 src/lib/libpuffs/puffs.3 \
    src/lib/libpuffs/puffs_priv.h
cvs rdiff -r1.88 -r1.89 src/lib/libpuffs/puffs.c
cvs rdiff -r1.104 -r1.105 src/lib/libpuffs/puffs.h
cvs rdiff -r1.10 -r1.11 src/lib/libpuffs/puffs_cc.3
cvs rdiff -r1.20 -r1.21 src/lib/libpuffs/requests.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.