The NetBSD Project

CVS log for src/sys/fs/puffs/puffs_sys.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / fs / puffs

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.91 / (download) - annotate - [select for diffs], Sun Jan 27 02:08:43 2019 UTC (5 years, 2 months ago) by pgoyette
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, thorpej-altq-separation-base, thorpej-altq-separation, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, bouyer-sunxi-drm-base, bouyer-sunxi-drm, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache, HEAD
Changes since 1.90: +9 -2 lines
Diff to previous 1.90 (colored) to selected 1.71 (colored)

Merge the [pgoyette-compat] branch

Revision 1.90 / (download) - annotate - [select for diffs], Thu Jul 7 06:55:42 2016 UTC (7 years, 9 months ago) by msaitoh
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.89: +2 -2 lines
Diff to previous 1.89 (colored) to selected 1.71 (colored)

KNF. Remove extra spaces. No functional change.

Revision 1.89 / (download) - annotate - [select for diffs], Sun Feb 15 20:21:29 2015 UTC (9 years, 2 months ago) by manu
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406
Changes since 1.88: +3 -1 lines
Diff to previous 1.88 (colored) to selected 1.71 (colored)

Add PUFFS_KFLAG_NOFLUSH_META to prevent sending metadata flush to FUSE

FUSE filesystems do not expect to get metadata updates for [amc]time
and size, they updates the value on their own after operations.

The PUFFS PUFFS_KFLAG_NOFLUSH_META option prevents regular metadata cache
flushes to the filesystem , and libperfuse uses it to match Linux FUSE
behavior.

While there, fix a bug in SETATTR: do not update kernel metadata cache
from SETATTR reply when the request is asynchronous, as we do not have
the reply yet.

Revision 1.88 / (download) - annotate - [select for diffs], Sun Oct 5 20:40:46 2014 UTC (9 years, 6 months ago) by apb
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.87: +3 -3 lines
Diff to previous 1.87 (colored) to selected 1.71 (colored)

Add close brace, accidentally omitted from previous change.

Revision 1.87 / (download) - annotate - [select for diffs], Sun Oct 5 14:13:14 2014 UTC (9 years, 6 months ago) by apb
Branch: MAIN
Changes since 1.86: +9 -5 lines
Diff to previous 1.86 (colored) to selected 1.71 (colored)

Safer definitions of DPRINTF and DPRINTF_VERBOSE.

In the PUFFSDEBUG case, wrap do { ... } while (/*CONSTCOND*/0)
around the definitions.  In the non-PUFFSDEBUG case, define them
as ((void)0) instead of as empty.

Revision 1.86 / (download) - annotate - [select for diffs], Thu Aug 28 08:29:50 2014 UTC (9 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.85: +2 -13 lines
Diff to previous 1.85 (colored) to selected 1.71 (colored)

Change puffs from hashlist to vcache.
- field "pa_nhashbuckets" of struct "puffs_kargs" becomes a no-op.
  and should be removed on the next protocol version bump.

Revision 1.85 / (download) - annotate - [select for diffs], Sat Aug 16 16:19:41 2014 UTC (9 years, 8 months ago) by manu
Branch: MAIN
Changes since 1.84: +3 -1 lines
Diff to previous 1.84 (colored) to selected 1.71 (colored)

Add a oflags input field to open requests so that the filesystem can pass
back information about the file. Implement PUFFS_OPEN_IO_DIRECT, which
will force direct IO (bypassing page cache) for the file.

Revision 1.84 / (download) - annotate - [select for diffs], Thu Oct 17 21:03:27 2013 UTC (10 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.83: +14 -2 lines
Diff to previous 1.83 (colored) to selected 1.71 (colored)

- remove unused variables
- add _NOERROR flavor macros for the case where errors are ignored.

Revision 1.83 / (download) - annotate - [select for diffs], Wed Mar 6 11:39:37 2013 UTC (11 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: rmind-smpnet
Changes since 1.82: +5 -1 lines
Diff to previous 1.82 (colored) to selected 1.71 (colored)

comment

Revision 1.82 / (download) - annotate - [select for diffs], Sat Aug 11 01:10:11 2012 UTC (11 years, 8 months ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6
Branch point for: tls-maxphys
Changes since 1.81: +4 -1 lines
Diff to previous 1.81 (colored) to selected 1.71 (colored)

Missing bit in previous commit (PUFFS_KFLAG_CACHE_DOTDOT option to avoid
looking up ..)

Revision 1.81 / (download) - annotate - [select for diffs], Fri Jul 27 07:38:44 2012 UTC (11 years, 8 months ago) by manu
Branch: MAIN
Changes since 1.80: +2 -2 lines
Diff to previous 1.80 (colored) to selected 1.71 (colored)

Rename slow sopreq queue into node sopreq queue, to refet the fact that
is only intended for postponed node reclaims.
When purging the node sopreq queue, do not call puffs_msg_sendresp(), as
it makes no sense.

Revision 1.80 / (download) - annotate - [select for diffs], Sat Jul 21 05:17:10 2012 UTC (11 years, 9 months ago) by manu
Branch: MAIN
Changes since 1.79: +17 -6 lines
Diff to previous 1.79 (colored) to selected 1.71 (colored)

- Improve PUFFS_KFLAG_CACHE_FS_TTL by reclaiming older inactive nodes.

The normal kernel behavior is to retain inactive nodes in the freelist
until it runs out of vnodes. This has some merit for local filesystems,
where the cost of an allocation is about the same as the cost of a
lookup. But that situation is not true for distributed filesystems.
On the other hand, keeping inactive nodes for a long time hold memory
in the file server process, and when the kernel runs out of vnodes, it
produce reclaim avalanches that increase lattency for other operations.

We do not reclaim inactive vnodes immediatly either, as they may be
looked up again shortly. Instead we introduce a grace time and we
reclaim nodes that have been inactive beyond the grace time.

- Fix lookup/reclaim race condition.

The above improvement undercovered a race condition between lookup and
reclaim. If we reclaimed a vnode associated with a userland cookie while
a lookup returning that same cookiewas inprogress, then the kernel ends
up with a vnode associated with a cookie that has been reclaimed in
userland. Next operation on the cookie will crash (or at least confuse)
the filesystem.

We fix this by introducing a lookup count in kernel and userland. On
reclaim, the kernel sends the count, which enable userland to detect
situation where it initiated a lookup that is not completed in kernel.
In such a situation, the reclaim must be ignored, as the node is about
to be looked up again.

Revision 1.79 / (download) - annotate - [select for diffs], Sun Apr 8 15:04:41 2012 UTC (12 years ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, jmcneill-usbmp-base9, jmcneill-usbmp-base10
Changes since 1.78: +8 -1 lines
Diff to previous 1.78 (colored) to selected 1.71 (colored)

Add name and atttribute cache with filesytem provided TTL.
lookup, create, mknod, mkdir, symlink, getattr and setattr messages
have been extended so that attributes and their TTL can be provided
by the filesytem. lookup, create, mknod, mkdir, and symlink messages
are also extended so that the filesystem can provide name TTL.

Revision 1.78 / (download) - annotate - [select for diffs], Mon Aug 29 04:12:45 2011 UTC (12 years, 7 months ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, netbsd-6, jmcneill-usbmp
Changes since 1.77: +3 -1 lines
Diff to previous 1.77 (colored) to selected 1.71 (colored)

Add a mutex for operations that touch size (setattr, getattr, write, fsync).

This is required to avoid data corruption bugs, where a getattr slices
itself within a setattr operation, and sets the size to the stall value
it got from the filesystem. That value is smaller than the one set by
setattr, and the call to uvm_vnp_setsize() trigged a spurious truncate.
The result is a chunk of zeroed data in the file.

Such a situation can easily happen when the ioflush thread issue a
VOP_FSYNC/puffs_vnop_sync/flushvncache/dosetattrn while andother process
do a sys_stat/VOP_GETATTR/puffs_vnop_getattr.

This mutex on size operation can be removed the day we decide VOP_GETATTR
has to operated on a locked vnode, since the other operations that touch
size already require that.

Revision 1.77 / (download) - annotate - [select for diffs], Tue Jan 11 14:04:54 2011 UTC (13 years, 3 months ago) by kefren
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, jruoho-x86intr-base, jruoho-x86intr, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Changes since 1.76: +3 -1 lines
Diff to previous 1.76 (colored) to selected 1.71 (colored)

add advlock to puffs. ok pooka@
should fix kern/43321

Revision 1.76 / (download) - annotate - [select for diffs], Tue Jul 6 13:47:47 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, matt-mips64-premerge-20101231
Changes since 1.75: +5 -1 lines
Diff to previous 1.75 (colored) to selected 1.71 (colored)

Add compat to enable running puffs in a 64bit time_t kernel against
a server which runs in 32bit time_t namespace.

Revision 1.75 / (download) - annotate - [select for diffs], Thu Jan 7 23:02:34 2010 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1, uebayasi-xip-base
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.74: +2 -2 lines
Diff to previous 1.74 (colored) to selected 1.71 (colored)

Rename PUFFS_SOPREQ_EXIT to PUFFS_SOPREQSYS_EXIT to better signal
it comes from within the kernel instead of as a direct result of
a user request.

no functional change

Revision 1.74 / (download) - annotate - [select for diffs], Thu Jan 7 22:45:31 2010 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.73: +2 -1 lines
Diff to previous 1.73 (colored) to selected 1.71 (colored)

Add a PUFFS_UNMOUNT server->kernel request, which causes the kernel
to initiate self destruct, i.e. unmount(MNT_FORCE).  This, however,
is a semi-controlled self-destruct, since all caches are flushed
before the (possibly) violent unmount takes place.

Revision 1.73 / (download) - annotate - [select for diffs], Mon Dec 7 20:57:55 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.72: +25 -1 lines
Diff to previous 1.72 (colored) to selected 1.71 (colored)

Process flush requests from the file server in a separate thread
context.  This fixes a long-standing but seldomly seen deadlock,
where the kernel was holding pages busy (due to e.g. readahead
request) while waiting for the server to respond, and the server
made a callback into the kernel asking to invalidate those pages.
... or, well, theoretically fixes, since I didn't have any reliable
way of repeating the deadlock and I think I saw it only twice.

Revision 1.72 / (download) - annotate - [select for diffs], Thu Nov 5 19:42:44 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.71: +2 -2 lines
Diff to previous 1.71 (colored)

Kill suspend support.  It was never implemented correctly:
  * it depended on the biglock (in a very cruel way)
  * it was attached to userspace transactions rather than logical
    fs operations

(If someone wants to revisit it some day, most of the stuff can be
reused from cvs history)

Revision 1.71 / (download) - annotate - [selected], Thu Nov 5 19:22:57 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.70: +2 -1 lines
Diff to previous 1.70 (colored)

Reinstante PNODE_DYING.  vmlocking had a brief hiatus when it was not
a valid optimization, but that's long gone and once VOP_INACTIVE is
called and the file server says that the vnode is going to be recycled,
it really is going to be recycled extra references gained or not.

Revision 1.70 / (download) - annotate - [select for diffs], Mon Jan 28 21:06:37 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, nick-net80211-sync-base, nick-net80211-sync, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, nick-hppapmap, netbsd-5-base, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, mjf-devfs2-base, mjf-devfs2, mjf-devfs-base, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, hpcarm-cleanup-nbase, hpcarm-cleanup-base, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-socklock-base1, ad-audiomp2-base, ad-audiomp2
Branch point for: yamt-nfs-mp, netbsd-5, matt-nb5-mips64
Changes since 1.69: +12 -10 lines
Diff to previous 1.69 (colored) to selected 1.71 (colored)

For code clarity typedef void *puffs_cookie_t.

No functional change.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jan 2 22:37:20 2008 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.68: +2 -2 lines
Diff to previous 1.68 (colored) to selected 1.71 (colored)

More type-punning workarounds.  Curiously the kernel compilation
flags cause gcc to not complain.

Revision 1.68 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:43 2008 UTC (16 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.67: +1 -2 lines
Diff to previous 1.67 (colored) to selected 1.71 (colored)

Merge vmlocking2 to head.

Revision 1.67 / (download) - annotate - [select for diffs], Sat Dec 8 19:57:04 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.66: +2 -3 lines
Diff to previous 1.66 (colored) to selected 1.71 (colored)

Now that "l" is gone both as an argument to operations and from
componentname, remove all vestiges of puffs_cid.

Revision 1.66 / (download) - annotate - [select for diffs], Wed Dec 5 12:11:56 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: vmlocking2-base2, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base
Changes since 1.65: +3 -1 lines
Diff to previous 1.65 (colored) to selected 1.71 (colored)

Send a response message for flush operations from the kernel instead
of abusing the return value of write(2).

Revision 1.65 / (download) - annotate - [select for diffs], Tue Nov 20 11:51:02 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: vmlocking2-base1, vmlocking-nbase, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: vmlocking2
Changes since 1.64: +1 -3 lines
Diff to previous 1.64 (colored) to selected 1.71 (colored)

Retire M_PUFFS, use kmem(9) instead.

Revision 1.64 / (download) - annotate - [select for diffs], Sat Nov 17 21:55:29 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.63: +2 -2 lines
Diff to previous 1.63 (colored) to selected 1.71 (colored)

Make puffs_updatenode() take a puffs_node instead of a vnode.  This
way we don't need to worry if a vnode has been reclaimed from under
us.

Revision 1.63 / (download) - annotate - [select for diffs], Sat Nov 17 18:09:04 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.62: +3 -1 lines
Diff to previous 1.62 (colored) to selected 1.71 (colored)

Implement a biodone callback for async writes similar to reads and
use that when possible.

Revision 1.62 / (download) - annotate - [select for diffs], Fri Nov 16 20:32:18 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.61: +26 -11 lines
Diff to previous 1.61 (colored) to selected 1.71 (colored)

Restructure the messaging interface a bit more: make all interfacing
with the file server happen through puffs_msg_enqueue() and
puffs_msg_wait() instead of having a billion different routines.
Build the existing system upon these two.  Most importantly though,
decouple insertation into the op queue from the actual wait.  This
is useful for a number of reasons coming soon to a cvs repo near you.

Revision 1.61 / (download) - annotate - [select for diffs], Mon Nov 12 17:42:13 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored) to selected 1.71 (colored)

Bounds-check responses from userspace.

Revision 1.60 / (download) - annotate - [select for diffs], Sat Nov 10 21:45:07 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.59: +6 -16 lines
Diff to previous 1.59 (colored) to selected 1.71 (colored)

Part 2/n of extensive changes to request transport to/from userspace:

Rip the transport code completely out of puffs and generalize it
into an independent module which will be used for multiple purposes
in the future.  This module is called the Pass-to-Userspace
Transporter (known as "putter" among friends).

This is very much work-in-progress and one dependency with puffs
remains: the request framing format.

The device name is still /dev/puffs, but that will change soon.

Users of puffs need the following in their kernel configs now:
pseudo-device   putter

Revision 1.59 / (download) - annotate - [select for diffs], Thu Oct 11 19:41:14 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base, jmcneill-base
Branch point for: mjf-devfs, bouyer-xenamd64
Changes since 1.58: +41 -25 lines
Diff to previous 1.58 (colored) to selected 1.71 (colored)

Part 1/n of some pretty extensive changes to how the kernel module
interacts with the userspace file server:

  * since the kernel-user communication is not purely request-response
    anymore (hasn't been since 2006), try to rename some "request" to
    "message".  more similar mangling will take place in the future.

  * completely rework how messages are allocated.  previously most of
    them were borrowed from the stack (originally *all* of them),
    but now always allocate dynamically.  this makes the structure
    of the code much cleaner.  also makes it possible to fix a
    locking order violation.  it enables plenty of future enhancements.

  * start generalizing the transport interface to be independent of puffs

  * move transport interface to read/write instead of ioctl.  the
    old one had legacy design problems, and besides, ioctl's suck.
    implement a very generic version for now; this will be
    worked on later hopefully some day reaching "highly optimized".

  * implement libpuffs support behind existing library request
    interfaces.  this will change eventually (I hate those interfaces)

Revision 1.58 / (download) - annotate - [select for diffs], Tue Oct 9 20:57:06 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.57: +1 -14 lines
Diff to previous 1.57 (colored) to selected 1.71 (colored)

g/c more unused stuff

Revision 1.57 / (download) - annotate - [select for diffs], Tue Oct 9 15:49:34 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.56: +1 -3 lines
Diff to previous 1.56 (colored) to selected 1.71 (colored)

g/c vntouser_req(), it's not used anymore

Revision 1.56 / (download) - annotate - [select for diffs], Thu Oct 4 21:20:47 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base2
Changes since 1.55: +1 -11 lines
Diff to previous 1.55 (colored) to selected 1.71 (colored)

g/c the "sizeop" code previous used for ioctl/fcntl.  It was already
commented out and has bitrotted beyond all recognition, so it needs
complete rethinking.

Revision 1.55 / (download) - annotate - [select for diffs], Tue Oct 2 01:17:17 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.54: +3 -1 lines
Diff to previous 1.54 (colored) to selected 1.71 (colored)

If kernel resource allocation fails after the file server has
committed something, issue an abort.  The abort is done through
the regular op channel, e.g. failed mkdir leads to regular rmdir,
inactive and reclaim.  No internal interface is planned currently
for the one file system out of a million which would implement it
to benefit from the one case in a billion where kernel resource
allocation actually does fail and out of that one case in a trillion
where internal vs. external would make a difference.

Revision 1.54 / (download) - annotate - [select for diffs], Mon Oct 1 21:09:08 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.53: +18 -5 lines
Diff to previous 1.53 (colored) to selected 1.71 (colored)

* better error checking: validate error values received from userland
  to be vaild errno values
* include string describing error in PUFFS_ERR
* get rid of union in puffs_req, it's nothing but trouble
* pass pmp to async i/o callbacks

Revision 1.53 / (download) - annotate - [select for diffs], Thu Sep 27 23:21:08 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.52: +4 -1 lines
Diff to previous 1.52 (colored) to selected 1.71 (colored)

Split routines handling nodes from puffs_subr to puffs_node.
No functional change.

Revision 1.52 / (download) - annotate - [select for diffs], Thu Sep 27 21:44:12 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.51: +2 -1 lines
Diff to previous 1.51 (colored) to selected 1.71 (colored)

Differentiate between cookie2vnode returning an error and
return to caller, address unknown: no such cookie, no such node.
Make the callers use this info to either create a new vnode or bail.

Revision 1.51 / (download) - annotate - [select for diffs], Thu Sep 27 21:14:50 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.50: +2 -1 lines
Diff to previous 1.50 (colored) to selected 1.71 (colored)

Add error notifications, which are used to deliver errors from the
kernel to the file server for silly things the file server did,
e.g. attempting to create a file with size VSIZENOTSET.  The file
server can handle these as it chooses, but the default action is
for it to throw its hands in the air and sing "goodbye, cruel world,
it's over, walk on by".

Revision 1.50 / (download) - annotate - [select for diffs], Thu Sep 27 14:35:15 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.49: +11 -2 lines
Diff to previous 1.49 (colored) to selected 1.71 (colored)

Fix a race in how new cookies are checked.  Previously the checking
was done separate of inserting the cookie into the lookup structure
and without any form of interlock.  This could lead to the same
cookie pointing to two different nodes.  Remedy the race by creating
a separate "checked and ready to be inserted" cookie list which
serves as an interlock without having to hold a fs-global creation
lock.

Revision 1.49 / (download) - annotate - [select for diffs], Mon Sep 24 19:15:42 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.48: +1 -2 lines
Diff to previous 1.48 (colored) to selected 1.71 (colored)

add a few comments and g/c dead code

Revision 1.48 / (download) - annotate - [select for diffs], Mon Jul 30 09:04:58 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base, nick-csl-alignment-base5, matt-mips64-base, hpcarm-cleanup
Branch point for: yamt-x86pmap, matt-mips64, matt-armv6, jmcneill-pm
Changes since 1.47: +1 -3 lines
Diff to previous 1.47 (colored) to selected 1.71 (colored)

Move PUFFS_TYPEPREFIX to puffs_msgif.h since it's used in a macro there.

Revision 1.47 / (download) - annotate - [select for diffs], Sun Jul 22 18:22:49 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.46: +3 -1 lines
Diff to previous 1.46 (colored) to selected 1.71 (colored)

Keep track of the maximum size we have supplied the file server (or
it has supplied us).  If we fault pages which are at offset >= server
size, but less than the in-kernel vnode size, inform the file server
of the latest developments in file size before issueing the fault.
The avoids confusion with files which are not written start to finish.

fixes kern/36429 by yamt

Revision 1.46 / (download) - annotate - [select for diffs], Tue Jul 17 11:29:43 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: nick-csl-alignment-base
Branch point for: nick-csl-alignment
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored) to selected 1.71 (colored)

Set a file server supplied file system type in the type field and set
the mntfromname to be the place mounted from instead of the type.

Revision 1.45 / (download) - annotate - [select for diffs], Sun Jul 1 22:54:16 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: mjf-ufs-trans-base
Changes since 1.44: +4 -2 lines
Diff to previous 1.44 (colored) to selected 1.71 (colored)

Give the file server to ability to request the entire pathname buffer
under lookup by using PUFFS_KFLAG_LOOKUP_FULLPNBUF instead just the
current component.

Revision 1.44 / (download) - annotate - [select for diffs], Sun Jul 1 17:22:15 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.43: +3 -3 lines
Diff to previous 1.43 (colored) to selected 1.71 (colored)

Instead of supplying a plain pid, supply an abstract struct puffs_cid *,
which can currently be used to query the pid and lwpid.

Revision 1.43 / (download) - annotate - [select for diffs], Sun Jul 1 15:30:16 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.42: +4 -3 lines
Diff to previous 1.42 (colored) to selected 1.71 (colored)

make puffs_cred an opaque type

Revision 1.42 / (download) - annotate - [select for diffs], Sun Jun 24 22:16:04 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.41: +5 -2 lines
Diff to previous 1.41 (colored) to selected 1.71 (colored)

Split the NOCACHE option in twain: NOCACHE_NAME & NOCACHE_PAGE.

Revision 1.41 / (download) - annotate - [select for diffs], Thu Jun 21 14:54:49 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.40: +2 -3 lines
Diff to previous 1.40 (colored) to selected 1.71 (colored)

Refactor the pnode2vnode translation slightly so that VFS_ROOT
can use it directly.

Revision 1.40 / (download) - annotate - [select for diffs], Thu Jun 21 14:11:34 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.39: +2 -1 lines
Diff to previous 1.39 (colored) to selected 1.71 (colored)

Reorganize how the root vnode is fetched so that it doesn't always
go through VFS_ROOT() and allow to fetch it without locking it.
This allows us to call the cache flush operations also for the root
vnode and most notably fixes e.g. a "No such file or directory"
for a psshfs root directory ls -l when a file was locally deleted
and remotely re-created.

Also fix some sloppy programming in root node fetch (mostly cosmetic).

Revision 1.39 / (download) - annotate - [select for diffs], Wed Jun 6 01:55:00 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.38: +1 -4 lines
Diff to previous 1.38 (colored) to selected 1.71 (colored)

Move puffs to a two clause license where it already isn't so.  And
as agc pointed out, even files with the third clause were already
effectively two clause because of a slight bug in the language...

Revision 1.38 / (download) - annotate - [select for diffs], Sat May 19 16:50:49 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.37: +4 -3 lines
Diff to previous 1.37 (colored) to selected 1.71 (colored)

forgot to commit this with puffs_vnops.c 1.72:

Actually, we do need separate "no references in file server" and
"noref + inactive" flags if we wish to correctly support unix open
file semantics and optimize away pre-reclaim cache flushes.  So,
add PNODE_DYING which stands for norefs + inactive.

Revision 1.37 / (download) - annotate - [select for diffs], Fri May 18 15:46:09 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored) to selected 1.71 (colored)

Introduce noref setbacks, which the file server can use to signal
the kernel it has 0 references to the node in question.  In other
words, this can be used to avoid inactive(), or, if the file server
does not implement inactive, prompt reclaim for removed nodes.

Revision 1.36 / (download) - annotate - [select for diffs], Fri May 18 13:53:09 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.35: +12 -1 lines
Diff to previous 1.35 (colored) to selected 1.71 (colored)

Support VOP_POLL.  This requires some acrobatics on the puffs_node,
as we give a reference to userspace for the puffs_node for the
duration of the poll call.  So reference count puffs_node separately
from the parent vnode.  vref()/vrele() is not possible due to a possible
surprise visit from VOP_INACTIVE.

Revision 1.35 / (download) - annotate - [select for diffs], Thu May 17 13:59:22 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.34: +7 -4 lines
Diff to previous 1.34 (colored) to selected 1.71 (colored)

Make it possible for the file server to specify the root vnode type
and other information instead of always using VDIR.  To make this
possible without races, require all root node information already
in puffs_mount() and nuke puffs_start2() and the associated start
operation completely.

requested/inspired by Tobias Nygren

Revision 1.34 / (download) - annotate - [select for diffs], Mon May 7 17:14:54 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-idlelwp-base8
Changes since 1.33: +9 -8 lines
Diff to previous 1.33 (colored) to selected 1.71 (colored)

Introduce puffs "setbacks", which can be used to set certain flags
for nodes upon return from the userspace.  Currently it can be used
to indicate that the file server should be notified of "inactive"
in case the file server has opted to not receive inactive every
time the reference count for a vnode drops to zero.  (inactive is
a common event, almost never requires any action and must be executed
sychronously, so it is wasteful).

While doing this, cleanup the release-relock nonsense from the
vntouser*() arguments.  It was never enabled and the whole LOCKEDVP()
concept was very broken to begin with.

Revision 1.33 / (download) - annotate - [select for diffs], Tue May 1 12:18:40 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.32: +10 -7 lines
Diff to previous 1.32 (colored) to selected 1.71 (colored)

Fix a problem introduced when I converted puffs to use newlock2:
when unmounting the file system in case of a certain timing (and
possibly some other conditions), a thread would wait on a condition
variable, while another thread broadcast the cv and immediately
proceeded to destroy it.  The result was a system frozen completely
solid shorly after the process waiting for the cv woke up.  So
introduce reference counting to synchronize destruction of the
resources in unmount.

I was able to repeat the problem only on my laptop in some special
cases, so I do not know how common it was.  Ironically, killing
the file server process violently instead of unmount() didn't have
this problem because it never entered the unmount path from two
directions.

Revision 1.32 / (download) - annotate - [select for diffs], Mon Apr 16 13:03:26 2007 UTC (17 years ago) by pooka
Branch: MAIN
Changes since 1.31: +6 -2 lines
Diff to previous 1.31 (colored) to selected 1.71 (colored)

Give the file server the ability to specify the file handle length
instead of defining a static length file handle on the framework-level.

Revision 1.31 / (download) - annotate - [select for diffs], Fri Apr 13 13:31:11 2007 UTC (17 years ago) by pooka
Branch: MAIN
Changes since 1.30: +2 -2 lines
Diff to previous 1.30 (colored) to selected 1.71 (colored)

* add fhlen to kernel argument structure
* rename it to puffs_kargs instead of puffs_args

Revision 1.30 / (download) - annotate - [select for diffs], Wed Apr 4 16:13:51 2007 UTC (17 years ago) by pooka
Branch: MAIN
CVS Tags: thorpej-atomic-base, thorpej-atomic
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored) to selected 1.71 (colored)

Make it possible to interrupt waiters for fs operation completion
again.  This is useful until locking is further developed and basically
any deadlocks can be solved by killing appropriate processes.

Thanks especially to Tommi Kyntola and Antti Louko for sitting down
with me and discussing resource ownership and locking strategies
in implementing this.

Revision 1.29 / (download) - annotate - [select for diffs], Fri Mar 30 17:48:59 2007 UTC (17 years ago) by pooka
Branch: MAIN
Changes since 1.28: +11 -9 lines
Diff to previous 1.28 (colored) to selected 1.71 (colored)

* abstract ASYNCBIOREAD and let callers freely issue a callback called
  from putop.  even though there's only one user currently, makes code
  more readable
* move "delta" to a standard parameter in vntouser and get rid of the
  specialcase vntouser_delta

Revision 1.28 / (download) - annotate - [select for diffs], Thu Mar 29 16:04:26 2007 UTC (17 years ago) by pooka
Branch: MAIN
Changes since 1.27: +23 -34 lines
Diff to previous 1.27 (colored) to selected 1.71 (colored)

Convert spinlocks & sleep/wakeup to newlock2 locking stuff.  Fix a
bunch of bugs.

* park structures are now always allocated from a pool instead of a
  mixed stack/malloc allocation
* get rid of the whole adjbuf concept, always just alloc the maximal
  amount of memory to satisfy a request
* little regression: don't allow interrupting wait from file system
  to userspace; this had problems already before, but now the problems
  really started to shine through.  I'll try to make this work again
  some day.
* fix bmap to return a sensible value in runp

Revision 1.27 / (download) - annotate - [select for diffs], Tue Mar 20 10:21:59 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.26: +21 -5 lines
Diff to previous 1.26 (colored) to selected 1.71 (colored)

* rework the page cache interaction a bit: cache metadata in the
  kernel and flush it out all at once instead of continuous updating
* add support for delivering notifications to the file server about
  when a page was written to (but disabled by default for now).  the
  file server can use this to request flushing or invalidating the
  kernel page cache

Revision 1.26 / (download) - annotate - [select for diffs], Wed Mar 14 12:13:58 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Branch point for: reinoud-bufcleanup
Changes since 1.25: +8 -2 lines
Diff to previous 1.25 (colored) to selected 1.71 (colored)

Support B_READ|B_ASYNC in strategy by calling biodone() directly
when the file server puts the result.

Revision 1.25 / (download) - annotate - [select for diffs], Tue Feb 27 23:43:23 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Branch point for: vmlocking, mjf-ufs-trans
Changes since 1.24: +14 -5 lines
Diff to previous 1.24 (colored) to selected 1.71 (colored)

Make wait for the user file server PCATCHable.  This makes it
possible to recover the system by just killing processes in case
a file server manages to recurse into itself either by fault of
file server implementation or by pilot error.  The downside is that
the code is extremely hard to follow and practically screams out
for newlock2 (in addition to screaming "bug here").  The whole
PCATCH nonsense and induced megacomplexity can hopefully be avoided
in the future by tweaking other parts of the implementation.

Revision 1.24 / (download) - annotate - [select for diffs], Thu Feb 15 12:14:34 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp
Changes since 1.23: +7 -1 lines
Diff to previous 1.23 (colored) to selected 1.71 (colored)

Hide the debug prints behind PUFFSDEBUG instead of DEBUG.  Make the
latter define the former.

Revision 1.23 / (download) - annotate - [select for diffs], Mon Jan 29 01:52:44 2007 UTC (17 years, 2 months ago) by hubertf
Branch: MAIN
CVS Tags: post-newlock2-merge, newlock2-nbase, newlock2-base
Changes since 1.22: +1 -2 lines
Diff to previous 1.22 (colored) to selected 1.71 (colored)

Remove more duplicate headers.
Patch by Slava Semushin <slava.semushin@gmail.com>

Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.

Revision 1.22 / (download) - annotate - [select for diffs], Fri Jan 26 22:59:49 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.21: +5 -2 lines
Diff to previous 1.21 (colored) to selected 1.71 (colored)

Initial attempt at suspend/snapshot support for userspace file
servers.  This is still pretty much on the level "if it breaks ...".
It should work for single-threaded servers which handle one operation
from start to finish in one go.  Also, it does not yet totally
correctly synchronize metadata and data in some cases.  So needless
to say, it needs improvement, but it is possible that will have to
wait for some lock revampage.

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 21 16:29:31 2007 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.20: +6 -3 lines
Diff to previous 1.20 (colored) to selected 1.71 (colored)

optimize a bit: don't flush pages for vnodes which have no references
in the kernel or links in the backend

Revision 1.20 / (download) - annotate - [select for diffs], Mon Jan 15 23:29:08 2007 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.19: +6 -5 lines
Diff to previous 1.19 (colored) to selected 1.71 (colored)

Store puffs_node's on lists hashed with the cookie value instead
of just one flat list.

Revision 1.19 / (download) - annotate - [select for diffs], Mon Jan 15 20:40:29 2007 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.18: +2 -1 lines
Diff to previous 1.18 (colored) to selected 1.71 (colored)

* do not accept the directory cookie as the result of a lookup (otherwise
  we'd be locking against ourselves)
* do not accept duplicate cookies when creating new nodes

Revision 1.18 / (download) - annotate - [select for diffs], Tue Jan 9 18:14:31 2007 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.17: +4 -5 lines
Diff to previous 1.17 (colored) to selected 1.71 (colored)

Introduce flush operations, which the fs server can use to control
kernel caching.  Currently supported are only flushing the name
cache for a directory or flushing the name cache for the entire fs.

Also, get rid of PNODE_INACTIVE status, since it was racy and
essentially didn't work.  All this on top of being useless in the
first place ....

Revision 1.17 / (download) - annotate - [select for diffs], Tue Jan 2 15:51:22 2007 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.16: +3 -1 lines
Diff to previous 1.16 (colored) to selected 1.71 (colored)

* check userspace version and prevent incompatible mount
* some general maintenance

Revision 1.16 / (download) - annotate - [select for diffs], Sat Dec 30 01:29:03 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Branch point for: yamt-lazymbuf
Changes since 1.15: +3 -1 lines
Diff to previous 1.15 (colored) to selected 1.71 (colored)

* use PUFFS_KFLAG_NOCACHE to also signal that we don't want the namecache
* enter files into the namecache immediately when new nodes are created
  (if it's a caching mount, of course)

Revision 1.15 / (download) - annotate - [select for diffs], Fri Dec 29 15:38:37 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored) to selected 1.71 (colored)

rename the kernel-provided componentname to puffs_kcn; libpuffs now
provides puffs_cn built on top of it

Revision 1.14 / (download) - annotate - [select for diffs], Sun Dec 10 22:33:31 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4
Changes since 1.13: +3 -2 lines
Diff to previous 1.13 (colored) to selected 1.71 (colored)

Fix a race condition that would cause the mountpoint to be cleaned
from under someone waiting for the fs server response in puffs_unmount()
if the descriptor was closed during the response wait (such as bug
leading to a crash in fs implementation unmount()).

Revision 1.13 / (download) - annotate - [select for diffs], Tue Dec 5 23:41:24 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-splraiseipl-base3
Branch point for: yamt-splraiseipl
Changes since 1.12: +5 -1 lines
Diff to previous 1.12 (colored) to selected 1.71 (colored)

shuffle functions around a bit: move the transport (/dev/puffs) to
a different file from the messaging (request contents).  no functional
change

Revision 1.12 / (download) - annotate - [select for diffs], Tue Dec 5 23:03:28 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.11: +11 -13 lines
Diff to previous 1.11 (colored) to selected 1.71 (colored)

Allow multiple requests to be transferred in each GET/PUTOP.  For
a single request, the performance is still the same.

Revision 1.11 / (download) - annotate - [select for diffs], Fri Dec 1 12:48:31 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored) to selected 1.71 (colored)

prefix kernel flags with PUFFS_KFLAG to have a separate namespace
from the library flags

Revision 1.10 / (download) - annotate - [select for diffs], Fri Dec 1 12:37:41 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.9: +8 -2 lines
Diff to previous 1.9 (colored) to selected 1.71 (colored)

don't call the fs server for all operations, only those it has told
us that it implements

Revision 1.9 / (download) - annotate - [select for diffs], Sat Nov 18 08:18:24 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Branch point for: newlock2
Changes since 1.8: +2 -1 lines
Diff to previous 1.8 (colored) to selected 1.71 (colored)

As a first generation best-effort hack, use NOCACHE to mean "file
size can change without the kernel knowing" and therefore query
the file size before invoking read or write operations.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Nov 17 17:48:02 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.7: +3 -1 lines
Diff to previous 1.7 (colored) to selected 1.71 (colored)

Introduce uncached operation, makes sense when the file system backend
can be modified from elsewhere than the file system interface

Revision 1.7 / (download) - annotate - [select for diffs], Thu Nov 9 13:09:34 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (colored) to selected 1.71 (colored)

few renames to better differentiate between mount & start.. plus some
other renaming

Revision 1.6 / (download) - annotate - [select for diffs], Tue Nov 7 22:10:18 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.5: +15 -5 lines
Diff to previous 1.5 (colored) to selected 1.71 (colored)

attach to genfs & support page cache.  most noticeable effect is
mmap and therefore execution of binaries starting to work, some
speed improvements with large file I/O also.  caching semantics
and error case handling most likely need revisiting.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Nov 6 23:18:18 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.4: +8 -2 lines
Diff to previous 1.4 (colored) to selected 1.71 (colored)

puffs_park always contains a specific puffs_req, so make it a member
instead of a pointer

Revision 1.4 / (download) - annotate - [select for diffs], Mon Nov 6 11:44:54 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.3: +4 -1 lines
Diff to previous 1.3 (colored) to selected 1.71 (colored)

make it possible to build & load puffs as an LKM

by Lubomir Kundrak, PR kern/35000

Revision 1.3 / (download) - annotate - [select for diffs], Fri Oct 27 12:25:16 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored) to selected 1.71 (colored)

support fifos

Revision 1.2 / (download) - annotate - [select for diffs], Thu Oct 26 22:52:47 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.1: +10 -3 lines
Diff to previous 1.1 (colored) to selected 1.71 (colored)

support specfs

Revision 1.1 / (download) - annotate - [select for diffs], Sun Oct 22 22:43:23 2006 UTC (17 years, 6 months ago) by pooka
Branch: MAIN
Diff to selected 1.71 (colored)

kernel portion of puffs - the Pass-to-Userspace Framework File System.
It contains the VFS attachment and userspace message-passing interface.

This work was initially started and completed for Google SoC 2005
and tweaked to work a bit better in the past few weeks.  While
being far from complete, it is functional enough to be able and
stable to host a fairly general-purpose in-memory file system in
userspace.  Even so, puffs should be considered experimental and
no binary compatibility for interfaces or crash-freedom or zero
security implications should be relied upon just yet.

The GSoC project was mentored by William Studenmund and the final
review for the code was done by Christos.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>