The NetBSD Project

CVS log for src/sys/fs/puffs/puffs_msgif.c

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.94 / (download) - annotate - [select for diffs], Thu Oct 17 21:03:27 2013 UTC (6 months ago) by christos
Branch: MAIN
CVS Tags: tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, HEAD
Changes since 1.93: +2 -6 lines
Diff to previous 1.93 (colored)

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

Revision 1.89.2.2 / (download) - annotate - [select for diffs], Wed Jan 16 05:33:40 2013 UTC (15 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.89.2.1: +3 -3 lines
Diff to previous 1.89.2.1 (colored) to branchpoint 1.89 (colored) next main 1.90 (colored)

sync with (a bit old) head

Revision 1.92.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:02:40 2012 UTC (16 months, 4 weeks ago) by tls
Branch: tls-maxphys
Changes since 1.92: +3 -3 lines
Diff to previous 1.92 (colored) next main 1.93 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.93 / (download) - annotate - [select for diffs], Mon Nov 5 17:27:38 2012 UTC (17 months, 1 week ago) by dholland
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, tls-maxphys-base, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Changes since 1.92: +3 -3 lines
Diff to previous 1.92 (colored)

Excise struct componentname from the namecache.

This uglifies the interface, because several operations need to be
passed the namei flags and cache_lookup also needs for the time being
to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.

The glop should be able to go away eventually but requires structural
cleanup elsewhere first.

This change requires a kernel bump.

Revision 1.89.2.1 / (download) - annotate - [select for diffs], Tue Oct 30 17:22:24 2012 UTC (17 months, 2 weeks ago) by yamt
Branch: yamt-pagecache
Changes since 1.89: +72 -9 lines
Diff to previous 1.89 (colored)

sync with head

Revision 1.89.8.1 / (download) - annotate - [select for diffs], Sun Aug 12 13:13:21 2012 UTC (20 months ago) by martin
Branch: netbsd-6
CVS Tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus
Changes since 1.89: +72 -9 lines
Diff to previous 1.89 (colored) next main 1.90 (colored)

Pull up following revision(s) (requested by manu in ticket #438):
	lib/libperfuse/perfuse_priv.h: revision 1.31
	sys/fs/puffs/puffs_msgif.h: revision 1.80
	sys/fs/puffs/puffs_vnops.c: revision 1.171
	lib/libpuffs/puffs_ops.3: revision 1.31
	sys/fs/puffs/puffs_vnops.c: revision 1.172
	sys/fs/puffs/puffs_vnops.c: revision 1.173
	sys/fs/puffs/puffs_vnops.c: revision 1.174
	usr.sbin/perfused/perfused.c: revision 1.24
	sys/fs/puffs/puffs_sys.h: revision 1.80
	sys/fs/puffs/puffs_sys.h: revision 1.81
	sys/fs/puffs/puffs_sys.h: revision 1.82
	lib/libperfuse/subr.c: revision 1.19
	lib/libperfuse/perfuse.c: revision 1.30
	sys/fs/puffs/puffs_msgif.c: revision 1.90
	sys/fs/puffs/puffs_msgif.c: revision 1.91
	sys/fs/puffs/puffs_msgif.c: revision 1.92
	lib/libperfuse/ops.c: revision 1.59
	lib/libpuffs/puffs.3: revision 1.53
	lib/libperfuse/debug.c: revision 1.12
	lib/libpuffs/puffs.3: revision 1.54
	sys/fs/puffs/puffs_vnops.c: revision 1.167
	sys/fs/puffs/puffs_msgif.h: revision 1.79
	usr.sbin/perfused/msg.c: revision 1.21
	sys/fs/puffs/puffs_vfsops.c: revision 1.102
	sys/fs/puffs/puffs_vfsops.c: revision 1.103
	sys/fs/puffs/puffs_vfsops.c: revision 1.105
	lib/libpuffs/puffs.h: revision 1.123
	lib/libperfuse/perfuse_if.h: revision 1.20
	lib/libperfuse/perfuse.c: revision 1.29
	lib/libpuffs/dispatcher.c: revision 1.42
	lib/libpuffs/dispatcher.c: revision 1.43
- Fix same vnodes associated with multiple cookies
The scheme used to retreive known nodes on lookup was flawed, as it only
used parent and name. This produced a different cookie for the same file
if it was renamed, when looking up ../ or when dealing with multiple files
associated with the same name through link(2).
We therefore abandon the use of node name and introduce hashed lists of
inodes. This causes a huge rewrite of reclaim code, which do not attempt
to keep parents allocated until all their children are reclaimed
- Fix race conditions in reclaim
There are a few situations where we issue multiple FUSE operations for
a PUFFS operation. On reclaim, we therefore have to wait for all FUSE
operation to complete, not just the current exchanges. We do this by
introducing node reference count with node_ref() and node_rele().
- Detect data loss caused by FAF
VOP_PUTPAGES causes FAF writes where the kernel does not check the
operation result. At least issue a warning on error.
- Enjoy FAF shortcut on setattr
No need to wait for the result if the kernel does not want it. There is
however an exception for setattr that touch the size, we need to wait
for completion because we have other operations queued for after the
resize.
- Fix fchmod() on write-open file
fchmod() on a node open with write privilege will send setattr with both mode
and size set. This confuses some FUSE filesystem. Therefore we send two FUSE
operations, one for mode, and one for size.
- Remove node TTL handling for netbsd-5 for simplicity sake. The code
still builds on netbsd-5 but does not have the node TTL feature anymore.
It works fine with kernel support on netbsd-6.
- 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.
Fix hang unmount bug introduced by last commit.
We introduced a slow queue for delayed reclaims, while the existing
queue for unmount, flush and exist has been renamed fast queue. Both
queues had timestamp for when an operation should be done, but it was
useless for the fast queue, which is always used to run an operation
ASAP. And the timestamp test had an error that turned ASAP into "at next
tick", but nobody what there to wake the thread at next tick, hence
the hang. The fix is to remove the useless and buggy timestamp test for
fast queue.
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.
Fix race condition between (create|mknod|mkdir|symlino) and reclaim, just
like we did it between lookup and reclaim.
Missing bit in previous commit (prevent race between create|mknod|mkdir|symlink
and reclaim)
Bump date for previous.
New sentence, new line; remove trailing whitespace; fix typos;
punctuation nits.
Add PUFFS_KFLAG_CACHE_DOTDOT so that vnodes hold a reference on their
parent, keeping them active, and allowing to lookup .. without sending
a request to the filesystem.
Enable the featuure for perfused, as this is how FUSE works.
Missing bit in previous commit (PUFFS_KFLAG_CACHE_DOTDOT option to avoid
looking up ..)

Revision 1.92 / (download) - annotate - [select for diffs], Fri Jul 27 07:38:44 2012 UTC (20 months, 3 weeks ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base6
Branch point for: tls-maxphys
Changes since 1.91: +12 -14 lines
Diff to previous 1.91 (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.91 / (download) - annotate - [select for diffs], Sun Jul 22 17:40:46 2012 UTC (20 months, 3 weeks ago) by manu
Branch: MAIN
Changes since 1.90: +7 -8 lines
Diff to previous 1.90 (colored)

Fix hang unmount bug introduced by last commit.

We introduced a slow queue for delayed reclaims, while the existing
queue for unmount, flush and exist has been renamed fast queue. Both
queues had timestamp for when an operation should be done, but it was
useless for the fast queue, which is always used to run an operation
ASAP. And the timestamp test had an error that turned ASAP into "at next
tick", but nobody what there to wake the thread at next tick, hence
the hang. The fix is to remove the useless and buggy timestamp test for
fast queue.

Revision 1.90 / (download) - annotate - [select for diffs], Sat Jul 21 05:17:10 2012 UTC (20 months, 4 weeks ago) by manu
Branch: MAIN
Changes since 1.89: +75 -9 lines
Diff to previous 1.89 (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.72.4.5 / (download) - annotate - [select for diffs], Wed Nov 2 20:11:12 2011 UTC (2 years, 5 months ago) by riz
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2
Changes since 1.72.4.4: +8 -2 lines
Diff to previous 1.72.4.4 (colored) to branchpoint 1.72 (colored) next main 1.73 (colored)

Pull up following revision(s) (requested by manu in ticket #1679):
	sys/fs/puffs/puffs_vnops.c: revision 1.157
	sys/fs/puffs/puffs_vnops.c: revision 1.158
	sys/fs/puffs/puffs_vnops.c: revision 1.159
	sys/fs/puffs/puffs_vfsops.c: revision 1.97
	sys/fs/puffs/puffs_vfsops.c: revision 1.99
	sys/fs/puffs/puffs_vnops.c: revision 1.160
	sys/fs/puffs/puffs_vfsops.c: revision 1.100
	sys/miscfs/syncfs/sync_subr.c: revision 1.47
	sys/fs/puffs/puffs_node.c: revision 1.21
	sys/fs/puffs/puffs_node.c: revision 1.22
	sys/fs/puffs/puffs_msgif.c: revision 1.88
	sys/fs/puffs/puffs_msgif.c: revision 1.89
	sys/fs/puffs/puffs_vnops.c: revision 1.156
Make sure ioflush does not sleep in PUFFS code path, waiting for a mutex,
a memory allocation, or a response from the filesystem.
This avoids deadlocks in the following situations:
1) when memory is low: ioflush waits the fileystem, the fielsystem waits
   for memory
2) when the filesystem does not respond (e.g.: network outage ona
   distributed filesystem)
Fix the build that was broken by struct lwp *updateproc reference in
RUMP-visible code. Instead of checking that updateproc (aka ioflush,
aka syncer) will not sleep in PUFFS code, I check for any kernel thread:
after all none of them are designed to hang awaiting for a remote filesystem
operation to complete.
Roll back the change that forced kernel threads to not sleep in PUFFS.
The change does not make consensus, since only pagedaemon should need it.
Other threads will tolerate sleeping, and problems here are only symptoms
that something is going wrong in memory management. The cause, not the
symptoms, need to be fixed.
Make sure pagedaemon does not sleep for memory in puffs_vnop_sleep.
Add KASSERT on any sleeping memory allocation to check it cannot happen again.
Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them

Revision 1.89 / (download) - annotate - [select for diffs], Wed Oct 19 01:39:29 2011 UTC (2 years, 6 months ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, netbsd-6
Changes since 1.88: +3 -12 lines
Diff to previous 1.88 (colored)

Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them

Revision 1.88 / (download) - annotate - [select for diffs], Tue Oct 18 15:39:09 2011 UTC (2 years, 6 months ago) by manu
Branch: MAIN
Changes since 1.87: +18 -2 lines
Diff to previous 1.87 (colored)

Make sure pagedaemon does not sleep for memory in puffs_vnop_sleep.
Add KASSERT on any sleeping memory allocation to check it cannot happen again.

Revision 1.72.4.4 / (download) - annotate - [select for diffs], Fri Jul 15 23:41:13 2011 UTC (2 years, 9 months ago) by riz
Branch: netbsd-5
Changes since 1.72.4.3: +51 -14 lines
Diff to previous 1.72.4.3 (colored) to branchpoint 1.72 (colored)

Pull up following revision(s) (requested by manu in ticket #1604):
	sys/fs/puffs/puffs_msgif.c: revision 1.84
Apply patch from PR kern/44093 by yamt:
Interrupt server wait only on certain signals (same set at nfs -i)
instead of all signals.  According to the PR this helps with
"git clone" run on a puffs file system.

Revision 1.87 / (download) - annotate - [select for diffs], Sun Jul 3 08:57:43 2011 UTC (2 years, 9 months ago) by mrg
Branch: MAIN
Changes since 1.86: +4 -4 lines
Diff to previous 1.86 (colored)

avoid some uninitialised variable warnings from GCC.
at least the puffs one seems valid, but i'm not 100% sure.

Revision 1.85.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:20:15 2011 UTC (2 years, 9 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.85: +3 -3 lines
Diff to previous 1.85 (colored) next main 1.86 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.86 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:54 2011 UTC (2 years, 10 months ago) by rmind
Branch: MAIN
Changes since 1.85: +3 -3 lines
Diff to previous 1.85 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.84.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:09:23 2011 UTC (2 years, 10 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.84: +9 -9 lines
Diff to previous 1.84 (colored) next main 1.85 (colored)

Sync with HEAD.

Revision 1.72.4.3 / (download) - annotate - [select for diffs], Fri May 20 21:50:09 2011 UTC (2 years, 11 months ago) by bouyer
Branch: netbsd-5
Changes since 1.72.4.2: +14 -51 lines
Diff to previous 1.72.4.2 (colored) to branchpoint 1.72 (colored)

Revert ticket 1604, it does't build.

Revision 1.72.4.2 / (download) - annotate - [select for diffs], Thu May 19 21:00:16 2011 UTC (2 years, 11 months ago) by bouyer
Branch: netbsd-5
Changes since 1.72.4.1: +51 -14 lines
Diff to previous 1.72.4.1 (colored) to branchpoint 1.72 (colored)

Pull up following revision(s) (requested by manu in ticket #1604):
	sys/fs/puffs/puffs_msgif.c: revision 1.84 via patch
Apply patch from PR kern/44093 by yamt:
Interrupt server wait only on certain signals (same set at nfs -i)
instead of all signals.  According to the PR this helps with
"git clone" run on a puffs file system.

Revision 1.80.4.2 / (download) - annotate - [select for diffs], Sat Mar 5 20:55:07 2011 UTC (3 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.80.4.1: +110 -28 lines
Diff to previous 1.80.4.1 (colored) to branchpoint 1.80 (colored) next main 1.81 (colored)

sync with head

Revision 1.84.4.1 / (download) - annotate - [select for diffs], Thu Feb 17 12:00:43 2011 UTC (3 years, 2 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.84: +9 -9 lines
Diff to previous 1.84 (colored) next main 1.85 (colored)

Sync with HEAD

Revision 1.85 / (download) - annotate - [select for diffs], Fri Feb 11 09:15:45 2011 UTC (3 years, 2 months ago) by yamt
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base
Branch point for: cherry-xenmp
Changes since 1.84: +9 -9 lines
Diff to previous 1.84 (colored)

puffs_msg_wait: check PARKFLAG_HASERROR before PARKFLAG_CALL.  PR/44240.

Revision 1.84 / (download) - annotate - [select for diffs], Mon Nov 15 20:31:41 2010 UTC (3 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231, jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.83: +50 -13 lines
Diff to previous 1.83 (colored)

Apply patch from PR kern/44093 by yamt:

Interrupt server wait only on certain signals (same set at nfs -i)
instead of all signals.  According to the PR this helps with
"git clone" run on a puffs file system.

Revision 1.83 / (download) - annotate - [select for diffs], Fri Nov 12 17:46:09 2010 UTC (3 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.82: +10 -2 lines
Diff to previous 1.82 (colored)

Allow clients to reuse a "park".

Patch from <yamt>, fixes PR kern/44086 by him.

Revision 1.80.2.1 / (download) - annotate - [select for diffs], Tue Aug 17 06:47:19 2010 UTC (3 years, 8 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.80: +47 -10 lines
Diff to previous 1.80 (colored) next main 1.81 (colored)

Sync with HEAD.

Revision 1.68.10.4 / (download) - annotate - [select for diffs], Wed Aug 11 22:54:34 2010 UTC (3 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.68.10.3: +47 -10 lines
Diff to previous 1.68.10.3 (colored) to branchpoint 1.68 (colored) next main 1.69 (colored)

sync with head.

Revision 1.82 / (download) - annotate - [select for diffs], Tue Jul 6 17:00:06 2010 UTC (3 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
Changes since 1.81: +2 -5 lines
Diff to previous 1.81 (colored)

Remove groolingly spooky variable which has been haunting us for
several years without doing anything useful.

Revision 1.81 / (download) - annotate - [select for diffs], Tue Jul 6 13:47:47 2010 UTC (3 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.80: +47 -7 lines
Diff to previous 1.80 (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.72.12.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:28:13 2010 UTC (3 years, 11 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.72: +81 -9 lines
Diff to previous 1.72 (colored) next main 1.73 (colored)

sync to netbsd-5

Revision 1.80.4.1 / (download) - annotate - [select for diffs], Tue Mar 16 15:38:07 2010 UTC (4 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.80: +3 -3 lines
Diff to previous 1.80 (colored)

Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc().  It allows us to share the locks among UVM objects.

Revision 1.68.10.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:04:14 2010 UTC (4 years, 1 month ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.68.10.2: +134 -117 lines
Diff to previous 1.68.10.2 (colored) to branchpoint 1.68 (colored)

sync with head

Revision 1.80 / (download) - annotate - [select for diffs], Thu Jan 14 19:50:07 2010 UTC (4 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.79: +24 -9 lines
Diff to previous 1.79 (colored)

In case the operations thread has exited, do not queue any more
operations.  This prevents kernel memory leaks (one of which happened
every time the file system was unmounted via PUFFSOP_UNMOUNT ...
and incidentally would've been trivially caught with the old
malloc(9) interface.  I wonder if the message is to use a ton of
pools instead of regression-attractive kmem interface).

Revision 1.72.4.1 / (download) - annotate - [select for diffs], Sat Jan 9 01:22:57 2010 UTC (4 years, 3 months ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, matt-nb5-pq3-base, matt-nb5-pq3
Changes since 1.72: +81 -9 lines
Diff to previous 1.72 (colored)

Pull up following revision(s) (requested by pooka in ticket #1212):
	sys/fs/puffs/puffs_msgif.c: revision 1.76 via patch
	sys/fs/puffs/puffs_sys.h: revision 1.73 via patch
	sys/fs/puffs/puffs_vfsops.c: revision 1.84 via patch
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.79 / (download) - annotate - [select for diffs], Thu Jan 7 23:02:34 2010 UTC (4 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.78: +3 -3 lines
Diff to previous 1.78 (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.78 / (download) - annotate - [select for diffs], Thu Jan 7 22:59:27 2010 UTC (4 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.77: +3 -3 lines
Diff to previous 1.77 (colored)

Fix variable name in my commit tree too.

Revision 1.77 / (download) - annotate - [select for diffs], Thu Jan 7 22:45:31 2010 UTC (4 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.76: +48 -5 lines
Diff to previous 1.76 (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.76 / (download) - annotate - [select for diffs], Mon Dec 7 20:57:55 2009 UTC (4 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.75: +77 -11 lines
Diff to previous 1.75 (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.75 / (download) - annotate - [select for diffs], Mon Dec 7 15:51:52 2009 UTC (4 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.74: +3 -7 lines
Diff to previous 1.74 (colored)

Need to send protocol layer response instead of transport layer
return value.  While there, just collapse all non-supported types
into one entry.

Revision 1.74 / (download) - annotate - [select for diffs], Thu Nov 5 19:42:44 2009 UTC (4 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.73: +5 -108 lines
Diff to previous 1.73 (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.72.8.1 / (download) - annotate - [select for diffs], Wed May 13 17:21:51 2009 UTC (4 years, 11 months ago) by jym
Branch: jym-xensuspend
Changes since 1.72: +4 -4 lines
Diff to previous 1.72 (colored) next main 1.73 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.68.10.2 / (download) - annotate - [select for diffs], Mon May 4 08:13:43 2009 UTC (4 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.68.10.1: +7 -13 lines
Diff to previous 1.68.10.1 (colored) to branchpoint 1.68 (colored)

sync with head.

Revision 1.72.2.1 / (download) - annotate - [select for diffs], Tue Apr 28 07:36:53 2009 UTC (4 years, 11 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.72: +4 -4 lines
Diff to previous 1.72 (colored) next main 1.73 (colored)

Sync with HEAD.

Revision 1.73 / (download) - annotate - [select for diffs], Wed Mar 18 10:22:42 2009 UTC (5 years, 1 month ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base
Changes since 1.72: +4 -4 lines
Diff to previous 1.72 (colored)

Ansify function definitions w/o arguments. Generated with sed.

Revision 1.71.6.1 / (download) - annotate - [select for diffs], Sun Oct 19 22:17:18 2008 UTC (5 years, 6 months ago) by haad
Branch: haad-dm
Changes since 1.71: +5 -11 lines
Diff to previous 1.71 (colored) next main 1.72 (colored)

Sync with HEAD.

Revision 1.71.2.1 / (download) - annotate - [select for diffs], Fri Oct 10 22:34:13 2008 UTC (5 years, 6 months ago) by skrll
Branch: wrstuden-revivesa
Changes since 1.71: +5 -11 lines
Diff to previous 1.71 (colored) next main 1.72 (colored)

Sync with HEAD.

Revision 1.68.6.2 / (download) - annotate - [select for diffs], Sun Sep 28 10:40:50 2008 UTC (5 years, 6 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.68.6.1: +3 -9 lines
Diff to previous 1.68.6.1 (colored) to branchpoint 1.68 (colored) next main 1.69 (colored)

Sync with HEAD.

Revision 1.72 / (download) - annotate - [select for diffs], Thu Sep 25 14:17:29 2008 UTC (5 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, nick-hppapmap-base2, 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, 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, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5, matt-nb5-mips64, jym-xensuspend
Changes since 1.71: +5 -11 lines
Diff to previous 1.71 (colored)

PR kern/39307 (mfs will sometimes panic at umount time)

Change dounmount() so that it never drops the caller provided reference.
Garbage collecting 'struct mount' is up to the caller.

Revision 1.68.6.1 / (download) - annotate - [select for diffs], Mon Jun 2 13:24:05 2008 UTC (5 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.68: +5 -39 lines
Diff to previous 1.68 (colored)

Sync with HEAD.

Revision 1.68.8.1 / (download) - annotate - [select for diffs], Sun May 18 12:35:02 2008 UTC (5 years, 11 months ago) by yamt
Branch: yamt-pf42
Changes since 1.68: +5 -39 lines
Diff to previous 1.68 (colored) next main 1.69 (colored)

sync with head.

Revision 1.68.10.1 / (download) - annotate - [select for diffs], Fri May 16 02:25:18 2008 UTC (5 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.68: +5 -39 lines
Diff to previous 1.68 (colored)

sync with head.

Revision 1.71 / (download) - annotate - [select for diffs], Tue May 6 18:43:44 2008 UTC (5 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base2, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa, haad-dm
Changes since 1.70: +5 -39 lines
Diff to previous 1.70 (colored)

PR kern/38141 lookup/vfs_busy acquire rwlock recursively

Simplify the mount locking. Remove all the crud to deal with recursion on
the mount lock, and crud to deal with unmount as another weirdo lock.

Hopefully this will once and for all fix the deadlocks with this. With this
commit there are two locks on each mount:

- krwlock_t mnt_unmounting. This is used to prevent unmount across critical
  sections like getnewvnode(). It's only ever read locked with rw_tryenter(),
  and is only ever write locked in dounmount(). A write hold can't be taken
  on this lock if the current LWP could hold a vnode lock.

- kmutex_t mnt_updating. This is taken by threads updating the mount, for
  example when going r/o -> r/w, and is only present to serialize updates.
  In order to take this lock, a read hold must first be taken on
  mnt_unmounting, and the two need to be held across the operation.

One effect of this change: previously if an unmount failed, we would make a
half hearted attempt to back out of it gracefully, but that was unlikely to
work in a lot of cases. Now while an unmount that will be aborted is in
progress, new file operations within the mount will fail instead of being
delayed. That is unlikely to be a problem though, because if the admin
requests unmount of a file system then s(he) has made a decision to deny
access to the resource.

Revision 1.70 / (download) - annotate - [select for diffs], Wed Apr 30 12:49:16 2008 UTC (5 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.69: +5 -5 lines
Diff to previous 1.69 (colored)

PR kern/38135 vfs_busy/vfs_trybusy confusion

The previous fix worked, but it opened a window where mounts could have
disappeared from mountlist while the caller was traversing it using
vfs_trybusy(). Fix that.

Revision 1.69 / (download) - annotate - [select for diffs], Tue Apr 29 23:51:04 2008 UTC (5 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.68: +3 -3 lines
Diff to previous 1.68 (colored)

kern/38135 vfs_busy/vfs_trybusy confusion

The symptom was that sometimes file systems would occasionally not appear
in output from 'df' or 'mount' if the system was busy. Resolution:

- Make mount locks work somewhat like vm_map locks.
- vfs_trybusy() now only fails if the mount is gone, or if someone is
  unmounting the file system. Simple contention on mnt_lock doesn't
  cause it to fail.
- vfs_busy() will wait even if the file system is being unmounted.

Revision 1.40.6.4 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:56 2008 UTC (6 years ago) by matt
Branch: matt-armv6
Changes since 1.40.6.3: +13 -20 lines
Diff to previous 1.40.6.3 (colored) to branchpoint 1.40 (colored) next main 1.41 (colored)

sync with HEAD

Revision 1.51.2.3 / (download) - annotate - [select for diffs], Mon Feb 18 21:06:39 2008 UTC (6 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.51.2.2: +15 -22 lines
Diff to previous 1.51.2.2 (colored) to branchpoint 1.51 (colored) next main 1.52 (colored)

Sync with HEAD.

Revision 1.13.2.9 / (download) - annotate - [select for diffs], Mon Feb 4 09:23:58 2008 UTC (6 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.8: +13 -20 lines
Diff to previous 1.13.2.8 (colored) next main 1.14 (colored)

sync with head.

Revision 1.68 / (download) - annotate - [select for diffs], Thu Jan 31 08:23:04 2008 UTC (6 years, 2 months ago) by tnn
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp, mjf-devfs2
Changes since 1.67: +4 -3 lines
Diff to previous 1.67 (colored)

- Needs sys/atomic.h for atomic_inc_uint()
- Quench compiler warning about signed/unsigned mismatch when building LKM

Revision 1.67 / (download) - annotate - [select for diffs], Wed Jan 30 14:16:43 2008 UTC (6 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.66: +2 -4 lines
Diff to previous 1.66 (colored)

Expunge references to lockmgr.

Revision 1.66 / (download) - annotate - [select for diffs], Wed Jan 30 11:57:24 2008 UTC (6 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.65: +8 -15 lines
Diff to previous 1.65 (colored)

Make it compile. I'll leave it to pooka to figure out what is the correct
thing here because I don't understand what this code is doing.

Revision 1.65 / (download) - annotate - [select for diffs], Wed Jan 30 11:47:00 2008 UTC (6 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.64: +3 -3 lines
Diff to previous 1.64 (colored)

PR kern/37706 (forced unmount of file systems is unsafe):

- Do reference counting for 'struct mount'. Each vnode associated with a
  mount takes a reference, and in turn the mount takes a reference to the
  vfsops.
- Now that mounts are reference counted, replace the overcomplicated mount
  locking inherited from 4.4BSD with a recursable rwlock.

Revision 1.64 / (download) - annotate - [select for diffs], Mon Jan 28 21:06:36 2008 UTC (6 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.63: +5 -4 lines
Diff to previous 1.63 (colored)

For code clarity typedef void *puffs_cookie_t.

No functional change.

Revision 1.13.2.8 / (download) - annotate - [select for diffs], Mon Jan 21 09:45:50 2008 UTC (6 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.7: +8 -8 lines
Diff to previous 1.13.2.7 (colored)

sync with head

Revision 1.40.6.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:55:47 2008 UTC (6 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.40.6.2: +525 -229 lines
Diff to previous 1.40.6.2 (colored) to branchpoint 1.40 (colored)

sync with HEAD

Revision 1.61.4.2 / (download) - annotate - [select for diffs], Tue Jan 8 22:11:26 2008 UTC (6 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.61.4.1: +1 -1 lines
Diff to previous 1.61.4.1 (colored) to branchpoint 1.61 (colored) next main 1.62 (colored)

Sync with HEAD

Revision 1.63 / (download) - annotate - [select for diffs], Wed Jan 2 22:33:10 2008 UTC (6 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored)

silence gcc about break type-punning

Revision 1.61.4.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:55:33 2008 UTC (6 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.61: +7 -7 lines
Diff to previous 1.61 (colored)

Sync with HEAD

Revision 1.62 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:43 2008 UTC (6 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.61: +7 -7 lines
Diff to previous 1.61 (colored)

Merge vmlocking2 to head.

Revision 1.40.4.10 / (download) - annotate - [select for diffs], Sun Dec 9 19:38:09 2007 UTC (6 years, 4 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.40.4.9: +47 -13 lines
Diff to previous 1.40.4.9 (colored) to branchpoint 1.40 (colored) next main 1.41 (colored)

Sync with HEAD.

Revision 1.51.2.2 / (download) - annotate - [select for diffs], Sat Dec 8 18:20:17 2007 UTC (6 years, 4 months ago) by mjf
Branch: mjf-devfs
Changes since 1.51.2.1: +49 -16 lines
Diff to previous 1.51.2.1 (colored) to branchpoint 1.51 (colored)

Sync with HEAD.

Revision 1.60.2.1 / (download) - annotate - [select for diffs], Sat Dec 8 17:57:37 2007 UTC (6 years, 4 months ago) by ad
Branch: vmlocking2
Changes since 1.60: +51 -17 lines
Diff to previous 1.60 (colored) next main 1.61 (colored)

Sync with head.

Revision 1.13.2.7 / (download) - annotate - [select for diffs], Fri Dec 7 17:32:02 2007 UTC (6 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.6: +228 -226 lines
Diff to previous 1.13.2.6 (colored)

sync with head

Revision 1.61 / (download) - annotate - [select for diffs], Wed Dec 5 12:11:56 2007 UTC (6 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.60: +47 -13 lines
Diff to previous 1.60 (colored)

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

Revision 1.40.4.9 / (download) - annotate - [select for diffs], Tue Nov 27 19:37:47 2007 UTC (6 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.8: +3 -3 lines
Diff to previous 1.40.4.8 (colored) to branchpoint 1.40 (colored)

Sync with HEAD. amd64 Xen support needs testing.

Revision 1.60 / (download) - annotate - [select for diffs], Mon Nov 26 12:57:26 2007 UTC (6 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: vmlocking2-base1, vmlocking-nbase
Branch point for: vmlocking2
Changes since 1.59: +3 -3 lines
Diff to previous 1.59 (colored)

In case the userspace wait is interrupted, don't use ERESTART as
the return value, rather use EINTR.

reported by Reinoud

Revision 1.40.4.8 / (download) - annotate - [select for diffs], Wed Nov 21 21:55:54 2007 UTC (6 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.7: +183 -215 lines
Diff to previous 1.40.4.7 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Revision 1.47.2.4 / (download) - annotate - [select for diffs], Wed Nov 21 21:19:43 2007 UTC (6 years, 4 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.47.2.3: +3 -4 lines
Diff to previous 1.47.2.3 (colored) to branchpoint 1.47 (colored) next main 1.48 (colored)

Sync with HEAD

Revision 1.59 / (download) - annotate - [select for diffs], Tue Nov 20 11:51:01 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: bouyer-xenamd64-base2, bouyer-xenamd64-base
Changes since 1.58: +3 -4 lines
Diff to previous 1.58 (colored)

Retire M_PUFFS, use kmem(9) instead.

Revision 1.51.2.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:48:28 2007 UTC (6 years, 5 months ago) by mjf
Branch: mjf-devfs
Changes since 1.51: +497 -237 lines
Diff to previous 1.51 (colored)

Sync with HEAD.

Revision 1.47.2.3 / (download) - annotate - [select for diffs], Sun Nov 18 19:35:44 2007 UTC (6 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.47.2.2: +180 -211 lines
Diff to previous 1.47.2.2 (colored) to branchpoint 1.47 (colored)

Sync with HEAD

Revision 1.58 / (download) - annotate - [select for diffs], Sat Nov 17 18:03:15 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.57: +6 -6 lines
Diff to previous 1.57 (colored)

fix some debug prints

Revision 1.57 / (download) - annotate - [select for diffs], Fri Nov 16 20:32:17 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.56: +178 -209 lines
Diff to previous 1.56 (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.13.2.6 / (download) - annotate - [select for diffs], Thu Nov 15 11:44:35 2007 UTC (6 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.5: +330 -41 lines
Diff to previous 1.13.2.5 (colored)

sync with head.

Revision 1.40.4.7 / (download) - annotate - [select for diffs], Wed Nov 14 19:04:36 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.6: +31 -20 lines
Diff to previous 1.40.4.6 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Revision 1.47.2.2 / (download) - annotate - [select for diffs], Tue Nov 13 16:01:44 2007 UTC (6 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.47.2.1: +338 -39 lines
Diff to previous 1.47.2.1 (colored) to branchpoint 1.47 (colored)

Sync with HEAD

Revision 1.56 / (download) - annotate - [select for diffs], Mon Nov 12 17:42:13 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.55: +13 -7 lines
Diff to previous 1.55 (colored)

Bounds-check responses from userspace.

Revision 1.55 / (download) - annotate - [select for diffs], Mon Nov 12 16:39:34 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.54: +23 -18 lines
Diff to previous 1.54 (colored)

* split the putter header into a kernel version and a userland version
  + install latter to /usr/include/dev/putter
* remove last dependencies to puffs from putter, it's completely
  independent now

Revision 1.54 / (download) - annotate - [select for diffs], Mon Nov 12 14:30:56 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored)

Move putter code from directly under dev/ to dev/putter/

no functional change

Revision 1.40.4.6 / (download) - annotate - [select for diffs], Sun Nov 11 16:47:50 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.5: +295 -15 lines
Diff to previous 1.40.4.5 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Nov 10 21:45:06 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.52: +289 -6 lines
Diff to previous 1.52 (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.40.6.2 / (download) - annotate - [select for diffs], Thu Nov 8 10:59:57 2007 UTC (6 years, 5 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.40.6.1: +8 -11 lines
Diff to previous 1.40.6.1 (colored) to branchpoint 1.40 (colored)

sync with -HEAD

Revision 1.52 / (download) - annotate - [select for diffs], Wed Nov 7 00:23:20 2007 UTC (6 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.51: +8 -11 lines
Diff to previous 1.51 (colored)

Merge from vmlocking:

- pool_cache changes.
- Debugger/procfs locking fixes.
- Other minor changes.

Revision 1.40.6.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:31:13 2007 UTC (6 years, 5 months ago) by matt
Branch: matt-armv6
Changes since 1.40: +348 -478 lines
Diff to previous 1.40 (colored)

sync with HEAD

Revision 1.40.4.5 / (download) - annotate - [select for diffs], Sun Nov 4 21:03:31 2007 UTC (6 years, 5 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.40.4.4: +14 -16 lines
Diff to previous 1.40.4.4 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Revision 1.51 / (download) - annotate - [select for diffs], Sun Nov 4 17:32:34 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: jmcneill-base
Branch point for: mjf-devfs
Changes since 1.50: +14 -16 lines
Diff to previous 1.50 (colored)

Make some comments match current reality.  No functional change.

Revision 1.40.4.4 / (download) - annotate - [select for diffs], Sun Oct 28 20:11:09 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.3: +12 -2 lines
Diff to previous 1.40.4.3 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Revision 1.13.2.5 / (download) - annotate - [select for diffs], Sat Oct 27 11:35:09 2007 UTC (6 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.4: +337 -465 lines
Diff to previous 1.13.2.4 (colored)

sync with head.

Revision 1.40.4.3 / (download) - annotate - [select for diffs], Fri Oct 26 15:48:18 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.2: +319 -421 lines
Diff to previous 1.40.4.2 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.47.2.1 / (download) - annotate - [select for diffs], Thu Oct 25 22:39:57 2007 UTC (6 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.47: +8 -3 lines
Diff to previous 1.47 (colored)

Sync with HEAD.

Revision 1.50 / (download) - annotate - [select for diffs], Thu Oct 25 15:22:25 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.49: +12 -2 lines
Diff to previous 1.49 (colored)

Reference mountpoint when fetching operations and release waiters
in unmount.

Revision 1.49 / (download) - annotate - [select for diffs], Sun Oct 21 14:28:05 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.48: +6 -2 lines
Diff to previous 1.48 (colored)

Always provide caller information from the kernel based on curlwp.
(but don't deprecate the old puffs_cid interface just yet)

Revision 1.48 / (download) - annotate - [select for diffs], Fri Oct 19 14:38:45 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.47: +4 -3 lines
Diff to previous 1.47 (colored)

When doing a read operation, don't copy the whole kernel buffer to
userspace, since it doesn't contain any information yet.  I should
still rework this more so this is just a quickie to get the read/write
style interface more up to speed with the ioctl version.

Revision 1.40.8.2 / (download) - annotate - [select for diffs], Sun Oct 14 11:48:31 2007 UTC (6 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.40.8.1: +314 -421 lines
Diff to previous 1.40.8.1 (colored) to branchpoint 1.40 (colored) next main 1.41 (colored)

sync with head.

Revision 1.19.2.8 / (download) - annotate - [select for diffs], Fri Oct 12 17:03:16 2007 UTC (6 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.19.2.7: +314 -422 lines
Diff to previous 1.19.2.7 (colored) next main 1.20 (colored)

Sync with head.

Revision 1.47 / (download) - annotate - [select for diffs], Thu Oct 11 23:04:21 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base
Branch point for: bouyer-xenamd64
Changes since 1.46: +3 -2 lines
Diff to previous 1.46 (colored)

Handle suspend and flush requests from the file server.

Revision 1.46 / (download) - annotate - [select for diffs], Thu Oct 11 19:41:13 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.45: +309 -393 lines
Diff to previous 1.45 (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.45 / (download) - annotate - [select for diffs], Tue Oct 9 15:49:34 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.44: +16 -40 lines
Diff to previous 1.44 (colored)

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

Revision 1.19.2.7 / (download) - annotate - [select for diffs], Tue Oct 9 13:44:18 2007 UTC (6 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.19.2.6: +49 -85 lines
Diff to previous 1.19.2.6 (colored)

Sync with head.

Revision 1.40.4.2 / (download) - annotate - [select for diffs], Sun Oct 7 13:25:06 2007 UTC (6 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40.4.1: +2 -82 lines
Diff to previous 1.40.4.1 (colored) to branchpoint 1.40 (colored)

Sync with HEAD.

Revision 1.40.8.1 / (download) - annotate - [select for diffs], Sat Oct 6 15:29:47 2007 UTC (6 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.40: +49 -85 lines
Diff to previous 1.40 (colored)

sync with head.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Oct 4 21:20:47 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base2
Changes since 1.43: +2 -82 lines
Diff to previous 1.43 (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.40.4.1 / (download) - annotate - [select for diffs], Tue Oct 2 18:28:52 2007 UTC (6 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.40: +49 -5 lines
Diff to previous 1.40 (colored)

Sync with HEAD.

Revision 1.43 / (download) - annotate - [select for diffs], Tue Oct 2 01:17:17 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.42: +21 -2 lines
Diff to previous 1.42 (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.42 / (download) - annotate - [select for diffs], Mon Oct 1 21:09:07 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.41: +8 -6 lines
Diff to previous 1.41 (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.41 / (download) - annotate - [select for diffs], Thu Sep 27 21:14:49 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.40: +25 -2 lines
Diff to previous 1.40 (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.13.2.4 / (download) - annotate - [select for diffs], Mon Sep 3 14:40:29 2007 UTC (6 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.3: +596 -195 lines
Diff to previous 1.13.2.3 (colored)

sync with head.

Revision 1.19.2.6 / (download) - annotate - [select for diffs], Sat Sep 1 12:56:47 2007 UTC (6 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.19.2.5: +9 -11 lines
Diff to previous 1.19.2.5 (colored)

Update for pool_cache API changes.

Revision 1.19.2.5 / (download) - annotate - [select for diffs], Mon Aug 20 21:26:08 2007 UTC (6 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.19.2.4: +4 -2 lines
Diff to previous 1.19.2.4 (colored)

Sync with HEAD.

Revision 1.39.2.1 / (download) - annotate - [select for diffs], Wed Aug 15 13:48:58 2007 UTC (6 years, 8 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.39: +4 -2 lines
Diff to previous 1.39 (colored) next main 1.40 (colored)

Sync with HEAD.

Revision 1.40.10.2 / (download) - annotate - [select for diffs], Thu Jul 19 22:05:23 2007 UTC (6 years, 9 months ago) by pooka
Branch: matt-mips64
Changes since 1.40.10.1: +1006 -0 lines
Diff to previous 1.40.10.1 (colored) to branchpoint 1.40 (colored) next main 1.41 (colored)

add debug printf

Revision 1.40.10.1, Thu Jul 19 22:05:22 2007 UTC (6 years, 9 months ago) by pooka
Branch: matt-mips64
Changes since 1.40: +0 -1006 lines
FILE REMOVED

file puffs_msgif.c was added on branch matt-mips64 on 2007-07-19 22:05:23 +0000

Revision 1.40 / (download) - annotate - [select for diffs], Thu Jul 19 22:05:22 2007 UTC (6 years, 9 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.39: +4 -2 lines
Diff to previous 1.39 (colored)

add debug printf

Revision 1.19.4.1 / (download) - annotate - [select for diffs], Wed Jul 11 20:09:28 2007 UTC (6 years, 9 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.19: +546 -306 lines
Diff to previous 1.19 (colored) next main 1.20 (colored)

Sync with head.

Revision 1.39 / (download) - annotate - [select for diffs], Mon Jul 9 21:10:48 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base, mjf-ufs-trans-base
Branch point for: nick-csl-alignment
Changes since 1.38: +3 -2 lines
Diff to previous 1.38 (colored)

Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.19.2.4 / (download) - annotate - [select for diffs], Sat Jun 9 23:58:00 2007 UTC (6 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.19.2.3: +2 -5 lines
Diff to previous 1.19.2.3 (colored)

Sync with head.

Revision 1.19.2.3 / (download) - annotate - [select for diffs], Fri Jun 8 14:15:00 2007 UTC (6 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.19.2.2: +128 -81 lines
Diff to previous 1.19.2.2 (colored)

Sync with head.

Revision 1.38 / (download) - annotate - [select for diffs], Wed Jun 6 01:54:59 2007 UTC (6 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.37: +2 -5 lines
Diff to previous 1.37 (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.37 / (download) - annotate - [select for diffs], Fri May 18 15:46:09 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.36: +13 -2 lines
Diff to previous 1.36 (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.18.2.5 / (download) - annotate - [select for diffs], Thu May 17 13:41:43 2007 UTC (6 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.18.2.4: +49 -47 lines
Diff to previous 1.18.2.4 (colored) to branchpoint 1.18 (colored) next main 1.19 (colored)

sync with head.

Revision 1.36 / (download) - annotate - [select for diffs], Tue May 8 21:16:55 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-idlelwp-base8
Changes since 1.35: +7 -5 lines
Diff to previous 1.35 (colored)

If the op was interrupted, decrease ops waiting for fetch from the
file server only if the op was still waiting for fetch (as opposed
to waiting for the response).  Also, properly flag the possible
following inactive as an op for which we do not want to wait for
the response from the file server.

Revision 1.35 / (download) - annotate - [select for diffs], Mon May 7 17:14:54 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.34: +44 -44 lines
Diff to previous 1.34 (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.18.2.4 / (download) - annotate - [select for diffs], Mon May 7 10:55:42 2007 UTC (6 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.18.2.3: +70 -35 lines
Diff to previous 1.18.2.3 (colored) to branchpoint 1.18 (colored)

sync with head.

Revision 1.34 / (download) - annotate - [select for diffs], Tue May 1 12:18:40 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.33: +11 -8 lines
Diff to previous 1.33 (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.33 / (download) - annotate - [select for diffs], Tue Apr 24 09:44:57 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.32: +9 -2 lines
Diff to previous 1.32 (colored)

remember to flag park as done when we're done with it

Revision 1.32 / (download) - annotate - [select for diffs], Sun Apr 22 21:52:37 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.31: +9 -5 lines
Diff to previous 1.31 (colored)

Now that puffs_park is allocated from the heap and actually freed
by the userdead routine, don't do a TAILQ_FOREACH but rather an
honest for loop.

Revision 1.31 / (download) - annotate - [select for diffs], Sat Apr 21 10:36:59 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.30: +47 -25 lines
Diff to previous 1.30 (colored)

Take care not to access park->park_preq if the waiter is gone, as
that memory is no longer available.

Revision 1.30 / (download) - annotate - [select for diffs], Fri Apr 20 21:35:31 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.29: +2 -3 lines
Diff to previous 1.29 (colored)

don't mutex_enter() manually, we've already park_reference()d a few
lines earlier for entering the same mutex

Revision 1.18.2.3 / (download) - annotate - [select for diffs], Sun Apr 15 16:03:46 2007 UTC (7 years ago) by yamt
Branch: yamt-idlelwp
Changes since 1.18.2.2: +461 -354 lines
Diff to previous 1.18.2.2 (colored) to branchpoint 1.18 (colored)

sync with head.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Apr 11 09:43:19 2007 UTC (7 years ago) by pooka
Branch: MAIN
CVS Tags: thorpej-atomic-base, thorpej-atomic
Changes since 1.28: +3 -4 lines
Diff to previous 1.28 (colored)

make overspammy debug printf less overspammy

Revision 1.19.2.2 / (download) - annotate - [select for diffs], Tue Apr 10 13:26:35 2007 UTC (7 years ago) by ad
Branch: vmlocking
Changes since 1.19.2.1: +473 -278 lines
Diff to previous 1.19.2.1 (colored)

Sync with head.

Revision 1.19.2.1 / (download) - annotate - [select for diffs], Thu Apr 5 21:57:48 2007 UTC (7 years ago) by ad
Branch: vmlocking
Changes since 1.19: +3 -2 lines
Diff to previous 1.19 (colored)

Compile fixes.

Revision 1.28 / (download) - annotate - [select for diffs], Wed Apr 4 21:02:30 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.27: +6 -6 lines
Diff to previous 1.27 (colored)

Fix one more bug from today's commit: don't remove the op for which
getops runs out of file server buffer space from the request queue.
Otherwise that operation silently vanishes and things go, well, quite
wrong.

Revision 1.27 / (download) - annotate - [select for diffs], Wed Apr 4 20:22:47 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.26: +3 -4 lines
Diff to previous 1.26 (colored)

fix two loop mutex botches in previous

Revision 1.26 / (download) - annotate - [select for diffs], Wed Apr 4 16:13:51 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.25: +180 -59 lines
Diff to previous 1.25 (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.25 / (download) - annotate - [select for diffs], Wed Apr 4 15:50:56 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.24: +95 -95 lines
Diff to previous 1.24 (colored)

s/ppark/park/ to make all the variable names consistent - park is
always a pointer now.  no functional change

Revision 1.24 / (download) - annotate - [select for diffs], Fri Mar 30 17:48:57 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.23: +63 -125 lines
Diff to previous 1.23 (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.23 / (download) - annotate - [select for diffs], Thu Mar 29 22:11:43 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.22: +6 -11 lines
Diff to previous 1.22 (colored)

in userdead assign waiter return value only if there is a waiter for
a particular request

Revision 1.20.2.1 / (download) - annotate - [select for diffs], Thu Mar 29 19:27:54 2007 UTC (7 years ago) by reinoud
Branch: reinoud-bufcleanup
Changes since 1.20: +320 -250 lines
Diff to previous 1.20 (colored) next main 1.21 (colored)

Pullup to -current

Revision 1.22 / (download) - annotate - [select for diffs], Thu Mar 29 16:04:26 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.21: +305 -250 lines
Diff to previous 1.21 (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.18.2.2 / (download) - annotate - [select for diffs], Sat Mar 24 14:55:57 2007 UTC (7 years ago) by yamt
Branch: yamt-idlelwp
Changes since 1.18.2.1: +96 -9 lines
Diff to previous 1.18.2.1 (colored) to branchpoint 1.18 (colored)

sync with head.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Mar 20 10:21:58 2007 UTC (7 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.20: +17 -2 lines
Diff to previous 1.20 (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.20 / (download) - annotate - [select for diffs], Wed Mar 14 12:13:58 2007 UTC (7 years, 1 month ago) by pooka
Branch: MAIN
Branch point for: reinoud-bufcleanup
Changes since 1.19: +81 -9 lines
Diff to previous 1.19 (colored)

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

Revision 1.18.2.1 / (download) - annotate - [select for diffs], Mon Mar 12 05:58:12 2007 UTC (7 years, 1 month ago) by rmind
Branch: yamt-idlelwp
Changes since 1.18: +183 -24 lines
Diff to previous 1.18 (colored)

Sync with HEAD.

Revision 1.19 / (download) - annotate - [select for diffs], Tue Feb 27 23:43:23 2007 UTC (7 years, 1 month ago) by pooka
Branch: MAIN
Branch point for: vmlocking, mjf-ufs-trans
Changes since 1.18: +183 -24 lines
Diff to previous 1.18 (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.13.2.3 / (download) - annotate - [select for diffs], Mon Feb 26 09:10:57 2007 UTC (7 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.2: +81 -7 lines
Diff to previous 1.13.2.2 (colored)

sync with head.

Revision 1.6.2.5 / (download) - annotate - [select for diffs], Fri Feb 9 21:03:52 2007 UTC (7 years, 2 months ago) by ad
Branch: newlock2
Changes since 1.6.2.4: +10 -6 lines
Diff to previous 1.6.2.4 (colored) next main 1.7 (colored)

Sync with HEAD.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Feb 3 16:29:05 2007 UTC (7 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: post-newlock2-merge, newlock2-nbase, newlock2-base, ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp
Changes since 1.17: +10 -6 lines
Diff to previous 1.17 (colored)

fstrans owner automatically gets a normal lock, don't need to lazy lock

pointed out by hannken

Revision 1.6.2.4 / (download) - annotate - [select for diffs], Thu Feb 1 08:48:33 2007 UTC (7 years, 2 months ago) by ad
Branch: newlock2
Changes since 1.6.2.3: +77 -7 lines
Diff to previous 1.6.2.3 (colored)

Sync with head.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Jan 29 15:42:50 2007 UTC (7 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.16: +5 -5 lines
Diff to previous 1.16 (colored)

Change fstrans enum types to upper case.
No functional change.

From Antti Kantee <pooka@netbsd.org>

Revision 1.16 / (download) - annotate - [select for diffs], Fri Jan 26 22:59:49 2007 UTC (7 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.15: +72 -6 lines
Diff to previous 1.15 (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.15 / (download) - annotate - [select for diffs], Fri Jan 19 13:01:15 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.14: +6 -2 lines
Diff to previous 1.14 (colored)

debug print requests going into the queue

Revision 1.14 / (download) - annotate - [select for diffs], Mon Jan 15 23:29:08 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored)

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

Revision 1.6.2.3 / (download) - annotate - [select for diffs], Fri Jan 12 01:04:05 2007 UTC (7 years, 3 months ago) by ad
Branch: newlock2
Changes since 1.6.2.2: +211 -633 lines
Diff to previous 1.6.2.2 (colored)

Sync with head.

Revision 1.13.2.2 / (download) - annotate - [select for diffs], Sat Dec 30 20:50:00 2006 UTC (7 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13.2.1: +531 -0 lines
Diff to previous 1.13.2.1 (colored)

sync with head.

Revision 1.13.2.1, Fri Dec 29 01:37:11 2006 UTC (7 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.13: +0 -531 lines
FILE REMOVED

file puffs_msgif.c was added on branch yamt-lazymbuf on 2006-12-30 20:50:00 +0000

Revision 1.13 / (download) - annotate - [select for diffs], Fri Dec 29 01:37:11 2006 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Branch point for: yamt-lazymbuf
Changes since 1.12: +3 -4 lines
Diff to previous 1.12 (colored)

Don't allow calls to be queued while MOUNTING.  We don't make any
kernel->server calls at that time and it allows a window where
operations use an incorrect root node cookie.

XXX: there's still a (very much smaller and biglock safe) race, but
that's going to be solved by some more thorough restructuring

Revision 1.10.2.3 / (download) - annotate - [select for diffs], Mon Dec 18 11:42:15 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.10.2.2: +13 -8 lines
Diff to previous 1.10.2.2 (colored) to branchpoint 1.10 (colored) next main 1.11 (colored)

sync with head.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Dec 10 23:53:51 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4
Changes since 1.11: +7 -5 lines
Diff to previous 1.11 (colored)

Don't return EWOULDBLOCK in case we have delivered some requests
even if we are operating on a nonblocking descriptor.

Revision 1.11 / (download) - annotate - [select for diffs], Sun Dec 10 22:37:04 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.10: +8 -5 lines
Diff to previous 1.10 (colored)

PCATCH in tsleep while waiting for operations in getop.  Otherwise
we could end up in an unkillable deadlock if GETOP was called when
an operation that had locked the root vnode was already in userspace.

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Sun Dec 10 07:18:38 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.10.2.1: +527 -0 lines
Diff to previous 1.10.2.1 (colored) to branchpoint 1.10 (colored)

sync with head.

Revision 1.10.2.1, Tue Dec 5 23:41:24 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.10: +0 -527 lines
FILE REMOVED

file puffs_msgif.c was added on branch yamt-splraiseipl on 2006-12-10 07:18:38 +0000

Revision 1.10 / (download) - annotate - [select for diffs], Tue Dec 5 23:41:24 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-splraiseipl-base3
Branch point for: yamt-splraiseipl
Changes since 1.9: +6 -517 lines
Diff to previous 1.9 (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.9 / (download) - annotate - [select for diffs], Tue Dec 5 23:03:28 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.8: +221 -143 lines
Diff to previous 1.8 (colored)

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

Revision 1.8 / (download) - annotate - [select for diffs], Tue Nov 21 01:53:33 2006 UTC (7 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.7: +5 -3 lines
Diff to previous 1.7 (colored)

if we are going to bail due to the mountpoint being gone from under
us while waiting for syncer lock, release the newly acquired syncer
lock prior to bailing

Revision 1.7 / (download) - annotate - [select for diffs], Tue Nov 21 01:51:42 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.6: +14 -9 lines
Diff to previous 1.6 (colored)

cosmetics

Revision 1.6.2.2 / (download) - annotate - [select for diffs], Sat Nov 18 21:39:20 2006 UTC (7 years, 5 months ago) by ad
Branch: newlock2
Changes since 1.6.2.1: +953 -0 lines
Diff to previous 1.6.2.1 (colored)

Sync with head.

Revision 1.6.2.1, Tue Nov 14 19:36:50 2006 UTC (7 years, 5 months ago) by ad
Branch: newlock2
Changes since 1.6: +0 -953 lines
FILE REMOVED

file puffs_msgif.c was added on branch newlock2 on 2006-11-18 21:39:20 +0000

Revision 1.6 / (download) - annotate - [select for diffs], Tue Nov 14 19:36:50 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Branch point for: newlock2
Changes since 1.5: +27 -3 lines
Diff to previous 1.5 (colored)

Fix a race condition with unmount where the mountpoint might disappear
from under us while waiting for syncer_lock and before we got to vfs_busy.
This happens easily e.g. when the userspace server loses its will to
live in VOP_RECLAIM, which is called from vflush() in VFS_UNMOUNT.  We
get two competing unmounters.  When the first one finishes, it releases
syncer_lock.  Now the second one tries to vfs_busy(), but is greeted
with garbage in *mp.

XXX: Technically this is a more general issue and should be fixed
elsewhere, but it's hard to trigger it with normal file systems
unless they are unmounted "simultaneously" twice and are dirty
enough for flushing to take a while.  So make a note about it in
the little black book next to the poems and postpone the crusade
for now.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Nov 9 13:09:34 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored)

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

Revision 1.4 / (download) - annotate - [select for diffs], Tue Nov 7 22:10:18 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.3: +49 -14 lines
Diff to previous 1.3 (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.3 / (download) - annotate - [select for diffs], Mon Nov 6 23:18:18 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.2: +28 -36 lines
Diff to previous 1.2 (colored)

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

Revision 1.2 / (download) - annotate - [select for diffs], Wed Oct 25 12:04:14 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.1: +12 -3 lines
Diff to previous 1.1 (colored)

If the control descriptor is closed, mark userspace dead and wakeup
all waiters *before* trying to get the syncer lock necessary for
dounmount().  This prevents a deadlock if the userspace server dies
while the syncer is running.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Oct 22 22:43:23 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN

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>