| History log of /src/sys/fs/puffs/puffs_msgif.c |
| Revision | | Date | Author | Comments |
| 1.108 |
| 01-Feb-2025 |
andvar | s/furher/further/ in comment.
|
| 1.107 |
| 09-Feb-2024 |
andvar | branches: 1.107.2; fix spelling mistakes, mainly in comments and log messages.
|
| 1.106 |
| 15-May-2020 |
maxv | hardclock_ticks -> getticks()
|
| 1.105 |
| 23-Feb-2020 |
ad | UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial PV list locking in the x86 pmap. Others to follow later.
|
| 1.104 |
| 01-Mar-2019 |
pgoyette | branches: 1.104.6; Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly discussed on irc.
NFCI intended.
Ride the earlier kernel bump - it;s getting crowded.
|
| 1.103 |
| 29-Jan-2019 |
pgoyette | Normalize all the compat hooks' names to the form
<subsystem>_<function>_<version>_hook
NFCI
XXX Note that although this introduces a change in the kernel-to- XXX module interface, we are NOT bumping the kernel version number. XXX We will bump the version number once the interface stabilizes.
|
| 1.102 |
| 27-Jan-2019 |
pgoyette | Merge the [pgoyette-compat] branch
|
| 1.101 |
| 17-Apr-2017 |
hannken | branches: 1.101.10; 1.101.12; Add vfs_ref(mp) and vfs_rele(mp) to add or remove a reference to struct mount. Rename vfs_destroy(mp) to vfs_rele(mp) and replace incrementing mp->mnt_refcnt with vfs_ref(mp).
|
| 1.100 |
| 26-Dec-2016 |
skrll | branches: 1.100.2; Hold the interlock when calling cv_broadcast as per condvar(9)
|
| 1.99 |
| 07-Jul-2016 |
msaitoh | branches: 1.99.2; KNF. Remove extra spaces. No functional change.
|
| 1.98 |
| 06-May-2015 |
hannken | Remove miscfs/syncfs and
- move the syncer into kern/vfs_subr.c.
- change the syncer to process the mountlist and VFS_SYNC as appropriate.
- use an API for mount points similiar to the API for vnodes: - vfs_syncer_add_to_worklist(struct mount *mp) to add - vfs_syncer_remove_from_worklist(struct mount *mp) to remove a mount.
No objections on tech-kern@
|
| 1.97 |
| 10-Nov-2014 |
maxv | branches: 1.97.2; Do not uselessly include <sys/malloc.h>.
|
| 1.96 |
| 05-Sep-2014 |
matt | Don't use C++ class and this keywords as variables.
|
| 1.95 |
| 28-Aug-2014 |
hannken | 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.
|
| 1.94 |
| 17-Oct-2013 |
christos | branches: 1.94.4; - remove unused variables - add _NOERROR flavor macros for the case where errors are ignored.
|
| 1.93 |
| 05-Nov-2012 |
dholland | branches: 1.93.2; 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.
|
| 1.92 |
| 27-Jul-2012 |
manu | branches: 1.92.2; 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.
|
| 1.91 |
| 22-Jul-2012 |
manu | 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.
|
| 1.90 |
| 21-Jul-2012 |
manu | - 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.
|
| 1.89 |
| 19-Oct-2011 |
manu | branches: 1.89.2; 1.89.8; Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them
|
| 1.88 |
| 18-Oct-2011 |
manu | 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.
|
| 1.87 |
| 03-Jul-2011 |
mrg | avoid some uninitialised variable warnings from GCC. at least the puffs one seems valid, but i'm not 100% sure.
|
| 1.86 |
| 12-Jun-2011 |
rmind | 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.
|
| 1.85 |
| 11-Feb-2011 |
yamt | branches: 1.85.2; puffs_msg_wait: check PARKFLAG_HASERROR before PARKFLAG_CALL. PR/44240.
|
| 1.84 |
| 15-Nov-2010 |
pooka | branches: 1.84.2; 1.84.4; 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.
|
| 1.83 |
| 12-Nov-2010 |
pooka | Allow clients to reuse a "park".
Patch from <yamt>, fixes PR kern/44086 by him.
|
| 1.82 |
| 06-Jul-2010 |
pooka | Remove groolingly spooky variable which has been haunting us for several years without doing anything useful.
|
| 1.81 |
| 06-Jul-2010 |
pooka | Add compat to enable running puffs in a 64bit time_t kernel against a server which runs in 32bit time_t namespace.
|
| 1.80 |
| 14-Jan-2010 |
pooka | branches: 1.80.2; 1.80.4; 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).
|
| 1.79 |
| 07-Jan-2010 |
pooka | 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
|
| 1.78 |
| 07-Jan-2010 |
pooka | Fix variable name in my commit tree too.
|
| 1.77 |
| 07-Jan-2010 |
pooka | 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.
|
| 1.76 |
| 07-Dec-2009 |
pooka | 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.
|
| 1.75 |
| 07-Dec-2009 |
pooka | Need to send protocol layer response instead of transport layer return value. While there, just collapse all non-supported types into one entry.
|
| 1.74 |
| 05-Nov-2009 |
pooka | 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)
|
| 1.73 |
| 18-Mar-2009 |
cegger | Ansify function definitions w/o arguments. Generated with sed.
|
| 1.72 |
| 25-Sep-2008 |
ad | branches: 1.72.2; 1.72.4; 1.72.8; 1.72.12; 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.
|
| 1.71 |
| 06-May-2008 |
ad | branches: 1.71.2; 1.71.6; 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.
|
| 1.70 |
| 30-Apr-2008 |
ad | 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.
|
| 1.69 |
| 29-Apr-2008 |
ad | 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.
|
| 1.68 |
| 31-Jan-2008 |
tnn | branches: 1.68.6; 1.68.8; 1.68.10; - Needs sys/atomic.h for atomic_inc_uint() - Quench compiler warning about signed/unsigned mismatch when building LKM
|
| 1.67 |
| 30-Jan-2008 |
ad | Expunge references to lockmgr.
|
| 1.66 |
| 30-Jan-2008 |
ad | 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.
|
| 1.65 |
| 30-Jan-2008 |
ad | 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.
|
| 1.64 |
| 28-Jan-2008 |
pooka | For code clarity typedef void *puffs_cookie_t.
No functional change.
|
| 1.63 |
| 02-Jan-2008 |
pooka | silence gcc about break type-punning
|
| 1.62 |
| 02-Jan-2008 |
ad | Merge vmlocking2 to head.
|
| 1.61 |
| 05-Dec-2007 |
pooka | branches: 1.61.4; Send a response message for flush operations from the kernel instead of abusing the return value of write(2).
|
| 1.60 |
| 26-Nov-2007 |
pooka | branches: 1.60.2; In case the userspace wait is interrupted, don't use ERESTART as the return value, rather use EINTR.
reported by Reinoud
|
| 1.59 |
| 20-Nov-2007 |
pooka | Retire M_PUFFS, use kmem(9) instead.
|
| 1.58 |
| 17-Nov-2007 |
pooka | fix some debug prints
|
| 1.57 |
| 16-Nov-2007 |
pooka | 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.
|
| 1.56 |
| 12-Nov-2007 |
pooka | Bounds-check responses from userspace.
|
| 1.55 |
| 12-Nov-2007 |
pooka | * 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
|
| 1.54 |
| 12-Nov-2007 |
pooka | Move putter code from directly under dev/ to dev/putter/
no functional change
|
| 1.53 |
| 10-Nov-2007 |
pooka | 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
|
| 1.52 |
| 07-Nov-2007 |
ad | Merge from vmlocking:
- pool_cache changes. - Debugger/procfs locking fixes. - Other minor changes.
|
| 1.51 |
| 04-Nov-2007 |
pooka | branches: 1.51.2; Make some comments match current reality. No functional change.
|
| 1.50 |
| 25-Oct-2007 |
pooka | Reference mountpoint when fetching operations and release waiters in unmount.
|
| 1.49 |
| 21-Oct-2007 |
pooka | Always provide caller information from the kernel based on curlwp. (but don't deprecate the old puffs_cid interface just yet)
|
| 1.48 |
| 19-Oct-2007 |
pooka | 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.
|
| 1.47 |
| 11-Oct-2007 |
pooka | branches: 1.47.2; Handle suspend and flush requests from the file server.
|
| 1.46 |
| 11-Oct-2007 |
pooka | 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)
|
| 1.45 |
| 09-Oct-2007 |
pooka | g/c vntouser_req(), it's not used anymore
|
| 1.44 |
| 04-Oct-2007 |
pooka | 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.
|
| 1.43 |
| 02-Oct-2007 |
pooka | 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.
|
| 1.42 |
| 01-Oct-2007 |
pooka | * 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
|
| 1.41 |
| 27-Sep-2007 |
pooka | 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".
|
| 1.40 |
| 19-Jul-2007 |
pooka | branches: 1.40.4; 1.40.6; 1.40.8; 1.40.10; add debug printf
|
| 1.39 |
| 09-Jul-2007 |
ad | branches: 1.39.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
| 1.38 |
| 06-Jun-2007 |
pooka | 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...
|
| 1.37 |
| 18-May-2007 |
pooka | 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.
|
| 1.36 |
| 08-May-2007 |
pooka | 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.
|
| 1.35 |
| 07-May-2007 |
pooka | 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.
|
| 1.34 |
| 01-May-2007 |
pooka | 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.
|
| 1.33 |
| 24-Apr-2007 |
pooka | remember to flag park as done when we're done with it
|
| 1.32 |
| 22-Apr-2007 |
pooka | 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.
|
| 1.31 |
| 21-Apr-2007 |
pooka | Take care not to access park->park_preq if the waiter is gone, as that memory is no longer available.
|
| 1.30 |
| 20-Apr-2007 |
pooka | don't mutex_enter() manually, we've already park_reference()d a few lines earlier for entering the same mutex
|
| 1.29 |
| 11-Apr-2007 |
pooka | make overspammy debug printf less overspammy
|
| 1.28 |
| 04-Apr-2007 |
pooka | 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.
|
| 1.27 |
| 04-Apr-2007 |
pooka | fix two loop mutex botches in previous
|
| 1.26 |
| 04-Apr-2007 |
pooka | 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.
|
| 1.25 |
| 04-Apr-2007 |
pooka | s/ppark/park/ to make all the variable names consistent - park is always a pointer now. no functional change
|
| 1.24 |
| 30-Mar-2007 |
pooka | * 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
|
| 1.23 |
| 29-Mar-2007 |
pooka | in userdead assign waiter return value only if there is a waiter for a particular request
|
| 1.22 |
| 29-Mar-2007 |
pooka | 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
|
| 1.21 |
| 20-Mar-2007 |
pooka | * 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
|
| 1.20 |
| 14-Mar-2007 |
pooka | branches: 1.20.2; Support B_READ|B_ASYNC in strategy by calling biodone() directly when the file server puts the result.
|
| 1.19 |
| 27-Feb-2007 |
pooka | branches: 1.19.2; 1.19.4; 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.
|
| 1.18 |
| 03-Feb-2007 |
pooka | branches: 1.18.2; fstrans owner automatically gets a normal lock, don't need to lazy lock
pointed out by hannken
|
| 1.17 |
| 29-Jan-2007 |
hannken | Change fstrans enum types to upper case. No functional change.
From Antti Kantee <pooka@netbsd.org>
|
| 1.16 |
| 26-Jan-2007 |
pooka | 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.
|
| 1.15 |
| 19-Jan-2007 |
pooka | debug print requests going into the queue
|
| 1.14 |
| 15-Jan-2007 |
pooka | Store puffs_node's on lists hashed with the cookie value instead of just one flat list.
|
| 1.13 |
| 29-Dec-2006 |
pooka | branches: 1.13.2; 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
|
| 1.12 |
| 10-Dec-2006 |
pooka | Don't return EWOULDBLOCK in case we have delivered some requests even if we are operating on a nonblocking descriptor.
|
| 1.11 |
| 10-Dec-2006 |
pooka | 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.
|
| 1.10 |
| 05-Dec-2006 |
pooka | branches: 1.10.2; shuffle functions around a bit: move the transport (/dev/puffs) to a different file from the messaging (request contents). no functional change
|
| 1.9 |
| 05-Dec-2006 |
pooka | Allow multiple requests to be transferred in each GET/PUTOP. For a single request, the performance is still the same.
|
| 1.8 |
| 21-Nov-2006 |
pooka | 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
|
| 1.7 |
| 21-Nov-2006 |
pooka | cosmetics
|
| 1.6 |
| 14-Nov-2006 |
pooka | branches: 1.6.2; 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.
|
| 1.5 |
| 09-Nov-2006 |
pooka | few renames to better differentiate between mount & start.. plus some other renaming
|
| 1.4 |
| 07-Nov-2006 |
pooka | 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.
|
| 1.3 |
| 06-Nov-2006 |
pooka | puffs_park always contains a specific puffs_req, so make it a member instead of a pointer
|
| 1.2 |
| 25-Oct-2006 |
pooka | 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.
|
| 1.1 |
| 22-Oct-2006 |
pooka | 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.
|
| 1.6.2.5 |
| 09-Feb-2007 |
ad | Sync with HEAD.
|
| 1.6.2.4 |
| 01-Feb-2007 |
ad | Sync with head.
|
| 1.6.2.3 |
| 12-Jan-2007 |
ad | Sync with head.
|
| 1.6.2.2 |
| 18-Nov-2006 |
ad | Sync with head.
|
| 1.6.2.1 |
| 14-Nov-2006 |
ad | file puffs_msgif.c was added on branch newlock2 on 2006-11-18 21:39:20 +0000
|
| 1.10.2.3 |
| 18-Dec-2006 |
yamt | sync with head.
|
| 1.10.2.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
| 1.10.2.1 |
| 05-Dec-2006 |
yamt | file puffs_msgif.c was added on branch yamt-splraiseipl on 2006-12-10 07:18:38 +0000
|
| 1.13.2.9 |
| 04-Feb-2008 |
yamt | sync with head.
|
| 1.13.2.8 |
| 21-Jan-2008 |
yamt | sync with head
|
| 1.13.2.7 |
| 07-Dec-2007 |
yamt | sync with head
|
| 1.13.2.6 |
| 15-Nov-2007 |
yamt | sync with head.
|
| 1.13.2.5 |
| 27-Oct-2007 |
yamt | sync with head.
|
| 1.13.2.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
| 1.13.2.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
| 1.13.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
| 1.13.2.1 |
| 29-Dec-2006 |
yamt | file puffs_msgif.c was added on branch yamt-lazymbuf on 2006-12-30 20:50:00 +0000
|
| 1.18.2.5 |
| 17-May-2007 |
yamt | sync with head.
|
| 1.18.2.4 |
| 07-May-2007 |
yamt | sync with head.
|
| 1.18.2.3 |
| 15-Apr-2007 |
yamt | sync with head.
|
| 1.18.2.2 |
| 24-Mar-2007 |
yamt | sync with head.
|
| 1.18.2.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
| 1.19.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
| 1.19.2.8 |
| 12-Oct-2007 |
ad | Sync with head.
|
| 1.19.2.7 |
| 09-Oct-2007 |
ad | Sync with head.
|
| 1.19.2.6 |
| 01-Sep-2007 |
ad | Update for pool_cache API changes.
|
| 1.19.2.5 |
| 20-Aug-2007 |
ad | Sync with HEAD.
|
| 1.19.2.4 |
| 09-Jun-2007 |
ad | Sync with head.
|
| 1.19.2.3 |
| 08-Jun-2007 |
ad | Sync with head.
|
| 1.19.2.2 |
| 10-Apr-2007 |
ad | Sync with head.
|
| 1.19.2.1 |
| 05-Apr-2007 |
ad | Compile fixes.
|
| 1.20.2.1 |
| 29-Mar-2007 |
reinoud | Pullup to -current
|
| 1.39.2.1 |
| 15-Aug-2007 |
skrll | Sync with HEAD.
|
| 1.40.10.2 |
| 19-Jul-2007 |
pooka | add debug printf
|
| 1.40.10.1 |
| 19-Jul-2007 |
pooka | file puffs_msgif.c was added on branch matt-mips64 on 2007-07-19 22:05:23 +0000
|
| 1.40.8.2 |
| 14-Oct-2007 |
yamt | sync with head.
|
| 1.40.8.1 |
| 06-Oct-2007 |
yamt | sync with head.
|
| 1.40.6.4 |
| 23-Mar-2008 |
matt | sync with HEAD
|
| 1.40.6.3 |
| 09-Jan-2008 |
matt | sync with HEAD
|
| 1.40.6.2 |
| 08-Nov-2007 |
matt | sync with -HEAD
|
| 1.40.6.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
| 1.40.4.10 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
| 1.40.4.9 |
| 27-Nov-2007 |
joerg | Sync with HEAD. amd64 Xen support needs testing.
|
| 1.40.4.8 |
| 21-Nov-2007 |
joerg | Sync with HEAD.
|
| 1.40.4.7 |
| 14-Nov-2007 |
joerg | Sync with HEAD.
|
| 1.40.4.6 |
| 11-Nov-2007 |
joerg | Sync with HEAD.
|
| 1.40.4.5 |
| 04-Nov-2007 |
jmcneill | Sync with HEAD.
|
| 1.40.4.4 |
| 28-Oct-2007 |
joerg | Sync with HEAD.
|
| 1.40.4.3 |
| 26-Oct-2007 |
joerg | 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.
|
| 1.40.4.2 |
| 07-Oct-2007 |
joerg | Sync with HEAD.
|
| 1.40.4.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
| 1.47.2.4 |
| 21-Nov-2007 |
bouyer | Sync with HEAD
|
| 1.47.2.3 |
| 18-Nov-2007 |
bouyer | Sync with HEAD
|
| 1.47.2.2 |
| 13-Nov-2007 |
bouyer | Sync with HEAD
|
| 1.47.2.1 |
| 25-Oct-2007 |
bouyer | Sync with HEAD.
|
| 1.51.2.3 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
| 1.51.2.2 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
| 1.51.2.1 |
| 19-Nov-2007 |
mjf | Sync with HEAD.
|
| 1.60.2.1 |
| 08-Dec-2007 |
ad | Sync with head.
|
| 1.61.4.2 |
| 08-Jan-2008 |
bouyer | Sync with HEAD
|
| 1.61.4.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
| 1.68.10.4 |
| 11-Aug-2010 |
yamt | sync with head.
|
| 1.68.10.3 |
| 11-Mar-2010 |
yamt | sync with head
|
| 1.68.10.2 |
| 04-May-2009 |
yamt | sync with head.
|
| 1.68.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
| 1.68.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
| 1.68.6.2 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.68.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.71.6.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
| 1.71.2.1 |
| 10-Oct-2008 |
skrll | Sync with HEAD.
|
| 1.72.12.1 |
| 21-Apr-2010 |
matt | sync to netbsd-5
|
| 1.72.8.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
| 1.72.4.5 |
| 02-Nov-2011 |
riz | 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
|
| 1.72.4.4 |
| 15-Jul-2011 |
riz | 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.
|
| 1.72.4.3 |
| 20-May-2011 |
bouyer | Revert ticket 1604, it does't build.
|
| 1.72.4.2 |
| 19-May-2011 |
bouyer | 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.
|
| 1.72.4.1 |
| 09-Jan-2010 |
snj | 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.
|
| 1.72.2.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
| 1.80.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
| 1.80.4.1 |
| 16-Mar-2010 |
rmind | Change struct uvm_object::vmobjlock to be dynamically allocated with mutex_obj_alloc(). It allows us to share the locks among UVM objects.
|
| 1.80.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
| 1.84.4.1 |
| 17-Feb-2011 |
bouyer | Sync with HEAD
|
| 1.84.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
| 1.85.2.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.89.8.1 |
| 12-Aug-2012 |
martin | 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 ..)
|
| 1.89.2.3 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.89.2.2 |
| 16-Jan-2013 |
yamt | sync with (a bit old) head
|
| 1.89.2.1 |
| 30-Oct-2012 |
yamt | sync with head
|
| 1.92.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
| 1.92.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.92.2.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
| 1.93.2.1 |
| 18-May-2014 |
rmind | sync with head
|
| 1.94.4.2 |
| 17-Jan-2015 |
martin | Pull up following revision(s) (requested by maxv in ticket #427): sys/compat/svr4/svr4_schedctl.c: revision 1.8 sys/netinet/tcp_timer.c: revision 1.88 sys/miscfs/genfs/layer_vfsops.c: revision 1.45 sys/compat/svr4/svr4_ioctl.c: revision 1.37 sys/ufs/chfs/chfs_vfsops.c: revision 1.14 sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30 sys/compat/common/kern_time_50.c: revision 1.28 sys/netinet6/ip6_forward.c: revision 1.74 sys/miscfs/umapfs/umap_vnops.c: revision 1.57 sys/compat/svr4/svr4_fcntl.c: revision 1.74 distrib/sets/lists/comp/mi: revision 1.1931 sys/netinet6/udp6_output.c: revision 1.46 sys/fs/puffs/puffs_compat.c: revision 1.3 sys/fs/udf/udf_rename.c: revision 1.11 sys/compat/svr4/svr4_filio.c: revision 1.24 sys/fs/udf/udf_rename.c: revision 1.12 sys/netinet/tcp_usrreq.c: revision 1.202 sys/miscfs/umapfs/umap_subr.c: revision 1.29 sys/compat/linux/common/linux_fadvise64.c: revision 1.3 sys/netinet/if_atm.c: revision 1.34 sys/miscfs/procfs/procfs_subr.c: revision 1.106 sys/miscfs/genfs/layer_subr.c: revision 1.37 sys/netinet/tcp_sack.c: revision 1.30 sys/compat/freebsd/freebsd_misc.c: revision 1.33 sys/compat/freebsd/freebsd_file.c: revision 1.33 sys/ufs/chfs/chfs_vnode.c: revision 1.12 sys/compat/svr4/svr4_ttold.c: revision 1.34 sys/compat/linux/common/linux_file.c: revision 1.114 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43 sys/compat/linux/common/linux_signal.c: revision 1.76 sys/compat/common/compat_util.c: revision 1.46 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18 sys/compat/svr4/svr4_sockio.c: revision 1.36 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32 sys/compat/svr4/svr4_signal.c: revision 1.66 sys/kern/kern_exec.c: revision 1.410 sys/fs/puffs/puffs_vfsops.c: revision 1.115 sys/compat/svr4/svr4_exec_elf64.c: revision 1.15 sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50 sys/compat/linux32/common/linux32_misc.c: revision 1.24 sys/netinet/in_pcb.c: revision 1.153 sys/sys/malloc.h: revision 1.116 sys/compat/common/if_43.c: revision 1.9 share/man/man9/Makefile: revision 1.380 sys/netinet/tcp_vtw.c: revision 1.12 sys/miscfs/umapfs/umap_vfsops.c: revision 1.95 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186 sys/compat/common/uipc_syscalls_43.c: revision 1.46 sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115 sys/fs/puffs/puffs_msgif.c: revision 1.97 sys/compat/svr4/svr4_ipc.c: revision 1.27 sys/compat/linux/common/linux_exec.c: revision 1.117 sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66 sys/netinet/tcp_output.c: revision 1.179 sys/compat/svr4/svr4_termios.c: revision 1.28 sys/fs/udf/udf_strat_bootstrap.c: revision 1.4 sys/fs/puffs/puffs_subr.c: revision 1.67 sys/fs/puffs/puffs_node.c: revision 1.36 sys/miscfs/overlay/overlay_vnops.c: revision 1.21 sys/fs/cd9660/cd9660_node.c: revision 1.34 sys/netinet/raw_ip.c: revision 1.146 sys/sys/mallocvar.h: revision 1.13 sys/miscfs/overlay/overlay_vfsops.c: revision 1.63 share/man/man9/malloc.9: revision 1.50 sys/netinet6/dest6.c: revision 1.18 sys/compat/linux/common/linux_uselib.c: revision 1.33 sys/compat/linux/common/linux_socket.c: revision 1.120 share/man/man9/malloc.9: revision 1.51 sys/netinet/tcp_subr.c: revision 1.257 sys/compat/linux/common/linux_socketcall.c: revision 1.45 sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3 sys/compat/freebsd/freebsd_ipc.c: revision 1.17 sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109 sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17 sys/netinet6/in6_pcb.c: revision 1.132 sys/netinet6/in6_ifattach.c: revision 1.94 sys/compat/svr4/svr4_exec_elf32.c: revision 1.15 sys/miscfs/nullfs/null_vfsops.c: revision 1.90 sys/fs/cd9660/cd9660_util.c: revision 1.12 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48 sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20 sys/miscfs/procfs/procfs_vfsops.c: revision 1.94 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28 sys/compat/linux/common/linux_sched.c: revision 1.67 sys/compat/linux/common/linux_exec_aout.c: revision 1.67 sys/compat/linux/common/linux_pipe.c: revision 1.67 sys/compat/linux/common/linux_llseek.c: revision 1.34 sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10 Do not uselessly include <sys/malloc.h>. Cleanup: - remove struct kmembuckets (dead) - correctly deadify MALLOC_XX - remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead) - remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT() and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc New sentence, new line. Bump date for previous. Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9) man pages.
|
| 1.94.4.1 |
| 29-Aug-2014 |
martin | Pull up following revision(s) (requested by hannken in ticket #67): sys/fs/puffs/puffs_sys.h: revision 1.86 sys/fs/puffs/puffs_vfsops.c: revision 1.114 sys/fs/puffs/puffs_msgif.c: revision 1.95 sys/fs/puffs/puffs_node.c: revision 1.32 sys/fs/puffs/puffs_vnops.c: revision 1.184 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.
|
| 1.97.2.4 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
| 1.97.2.3 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
| 1.97.2.2 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
| 1.97.2.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
| 1.99.2.2 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.99.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.100.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.101.12.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
| 1.101.12.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.101.10.11 |
| 22-Jan-2019 |
pgoyette | Convert the MODULE_{,VOID_}HOOK_CALL macros to do everything in-line rather than defining an intermediate hook##call function. Almost all of the hooks are called only once, and although we lose the ability of doing things like
if (MODULE_HOOK_CALL(...) == 0) ...
we simplify things quite a bit. With this change, we no longer need to have both declaration and definition macros, and the definition no longer needs to have both prototype argument list and a "real" argument list.
FWIW, the above if now needs to written as
int ret;
MODULE_HOOK_CALL(..., ret); if (ret == 0) ...
with appropriate use of braces {}.
|
| 1.101.10.10 |
| 21-Jan-2019 |
pgoyette | No need to declare the hook_call() function for void hooks. So remove and simplify.
|
| 1.101.10.9 |
| 18-Jan-2019 |
pgoyette | Don't restrict hooks to having only int or void types. Pass the hook's type to the various macros, as needed.
Allows us to reduce diffs to original in at least one or two places (we no longer have to provide an additional parameter to the hook routine for returning a non-int return value).
|
| 1.101.10.8 |
| 14-Jan-2019 |
pgoyette | Create a variant of the HOOK macros that handles hook routines of type void, and use them where appropriate.
|
| 1.101.10.7 |
| 13-Jan-2019 |
pgoyette | Remove the HOOK2 versions of the MODULE_HOOK macros. There were only a few uses, and using them led to some lack of clarity in the code. Instead, we now use two separate hooks, with names that make it clear(er) what we're doing.
This also positions us to start unraveling some of the rtsock_50 mess, which will need (at least) five hooks.
|
| 1.101.10.6 |
| 29-Sep-2018 |
pgoyette | In MODULE_HOOK_CALL_DECL we don't need to provide the actual argument list for calling the hook function, nor do we need to provide the default value (for when the hook has not been set).
|
| 1.101.10.5 |
| 18-Sep-2018 |
pgoyette | The COMPAT_HOOK macros were renamed to MODULE_HOOK, adjust all callers
|
| 1.101.10.4 |
| 18-Sep-2018 |
pgoyette | Split the COMPAT_CALL_HOOK to separate the declaration from the implementation. Some hooks are called from multiple source files, and the old method resulted in duplicate implementations.
Implement MP-safe hooks for the usb_subr_30 code. Pass the helper functions as arguments to the compat code so it does not have to determine if the kernel contains usb code.
|
| 1.101.10.3 |
| 17-Sep-2018 |
pgoyette | Adapt (most of) the indirect function pointers to the new MP-safe mechanism. Still remaining are the compat_netbsd32 stuff, and some usb subroutines.
|
| 1.101.10.2 |
| 24-Mar-2018 |
pgoyette | Use function pointers to call the compatability functions.
|
| 1.101.10.1 |
| 24-Mar-2018 |
pgoyette | Add fs/puffs compat_50 to the modules
|
| 1.104.6.1 |
| 29-Feb-2020 |
ad | Sync with head.
|
| 1.107.2.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|