#
1.56 |
|
17-May-2020 |
ad |
PR kern/55268: tmpfs is slow
tmpfs_getpages(): handle the PGO_LOCKED case and implement lazy update of atime/mtime.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
#
1.55 |
|
19-Apr-2018 |
christos |
s/static inline/static __inline/g for consistency.
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.54 |
|
01-Mar-2017 |
hannken |
branches: 1.54.12; Change the protocol to update a mounted file system from read-write to read-only and vice versa:
- Add an internal flag IMNT_WANTRDONLY. - Set either IMNT_WANTRDWR or IMNT_WANTRDONLY if going from or to read-only. - After successfull call to VFS_MOUNT() set or clear MNT_RDONLY.
Adapt tmpfs and rumpfs to the new protocol. Other file systems will be updated when they get the IMNT_CAN_RWTORO property.
Welcome to 7.99.64
|
Revision tags: nick-nhusb-base-20170204
|
#
1.53 |
|
27-Jan-2017 |
hannken |
Run vflush() when going from read/write to read only.
|
Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.52 |
|
06-Jul-2015 |
hannken |
branches: 1.52.2; 1.52.4; Change tmpfs to vcache. - Use tmpfs node address as key. - Remove tn_vlock, field tn_vnode now protected by vcache. - Add a hold count to tmpfs node to prevent nodes from disappearing while tmpfs_fhtovp() trys to vcache_get() them. Last holder destroys reclaimed nodes. - Remove the now unneeded parent unlock/lock for lookup of '..'.
|
#
1.51 |
|
06-Jul-2015 |
hannken |
Use VFS_PROTOS() for tmpfs.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.50 |
|
07-Jun-2014 |
martin |
branches: 1.50.4; Remove the hardcoded 4 MB free kernel memory limit and replace it by uvmexp.freetarg, as discussed on tech-kern. Main purpose is to make tmpfs usable (as far as possible) on small memory machines. This is a bit experimental, but we need to give it some real world exposure to see how well it works.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.49 |
|
30-Apr-2014 |
christos |
handle MNT_UPDATE
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.48 |
|
23-Nov-2013 |
rmind |
branches: 1.48.2; - Simplify tmpfs_update(), eliminate tmpfs_note_t::tn_status and deferred timestamp updates. Fix some incorrect updates and plug some missing ones. Should fix PR/48385. - tmpfs_rmdir: avoid O(n) scan when the directory is not empty and whiteout entries were never added.
|
#
1.47 |
|
18-Nov-2013 |
rmind |
Make tmpfs_node_t::tn_gen a 32-bit number, keep it in sync with tmpfs_fid_t. Also, change tn_status to unsigned while here.
|
#
1.46 |
|
08-Nov-2013 |
rmind |
tmpfs: replace the broken tmpfs_dircookie() logic which uses the node address truncated to 31 bits (required for 32-bit readdir compatibility, e.g. linux32). Instead, assign 2^31 range using the following logic: - The first half of the 2^31 is assigned incrementally (the fast path). - When exceeded, use the second half of 2^31, but manage with vmem(9).
It will require 2 billion files per-directory to trigger vmem(9) usage. Also, while here, add some fixes for tmpfs_unmount().
Should fix PR/47739, PR/47480, PR/46088 and PR/41068. Thanks to wiz@ for stress testing.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.45 |
|
27-Sep-2011 |
christos |
branches: 1.45.2; 1.45.12; 1.45.16; define and use TMPFS_MAXNAMLEN instead of MAXNAMLEN
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.44 |
|
29-May-2011 |
rmind |
- Rework and document inode reference counting. Also document inode life cycle (destruction part). Perform link counting in tmpfs_dir_attach() and tmpfs_dir_detach(), instead of alloc/free and arbitrary places. Fixes PR/44285, PR/44288, PR/44657 and likely PR/42484.
- Fix the race between the lookup and inode destruction. Fixes PR/43167 and its duplicates PR/40088, PR/40757.
- Improve tmpfs_rename() locking a little, fix kqueue event notifications and also fix PR/43617. Add simplistic tmpfs_parentcheck_p(); to be expanded and used for further rename() locking fixes.
- Cache directory entry "hint" in the tmpfs node, add tmpfs_dir_cached(), and thus avoid unnecessary lookup in tmpfs_remove() and tmpfs_rmdir().
- Set correct _PC_FILESIZEBITS value in tmpfs_pathconf(). Fixes PR/43576.
- Few minor fixes.
|
#
1.43 |
|
29-May-2011 |
christos |
undo the multiple inclusion protection part.
|
#
1.42 |
|
29-May-2011 |
rmind |
- Prevent tmpfs.h from inclusion in userland. - Clean up and KNF tmpfs.h a little bit.
|
#
1.41 |
|
24-May-2011 |
rmind |
- Describe some locking. - Add VOP argument comments, add some asserts. - Update/fix/remove outdated/missleading comments. - Clean up, de-indent, KNF, misc.
No functional changes intended.
|
#
1.40 |
|
19-May-2011 |
rmind |
- tmpfs: do not create dirent/node pools per-mount, there is no need to. - tmpfs_mount: fix a leak of mount structures in error path.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base
|
#
1.39 |
|
13-Jan-2011 |
pooka |
branches: 1.39.2; Add some support for unionfs (not built by default). It's still missing at least opaque directory support, but until someone figures out how that should work on ffs (see PR kern/kern/44383), there's no point in trying to figure out how it should work here.
|
Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.38 |
|
22-Jun-2010 |
rmind |
Replace tmpfs_pool custom allocator code with a simpler layer for memory accounting. Use wired memory (which can be limited) for meta-data, and kmem(9) for string allocations.
Close PR/31944. Fix PR/38361 while here. OK ad@.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 uebayasi-xip-base1 netbsd-5-1-RC1 yamt-nfs-mp-base9 uebayasi-xip-base netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-premerge-20091211 yamt-nfs-mp-base8 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 yamt-nfs-mp-base7 netbsd-5-0-1-RELEASE jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base simonb-wapbl-nbase simonb-wapbl-base mjf-devfs2-base
|
#
1.37 |
|
29-Jul-2008 |
pooka |
branches: 1.37.14; 1.37.16; Solve the fstat-wants-to-look-at-kernel-data-structures in a nicer way: don't export the fs internals to innocent userspace programs which just want to mount the file system.
|
#
1.36 |
|
28-Jul-2008 |
pooka |
shuffle around some more defs for fstat
noticed by Kurt Schreiner on current-users
|
#
1.35 |
|
28-Jul-2008 |
pooka |
Install mount argument structure header just like every other file system.
|
Revision tags: wrstuden-revivesa-base-1 wrstuden-revivesa-base
|
#
1.34 |
|
19-Jun-2008 |
christos |
branches: 1.34.2; - setting the birthdate is valid in setattr. - don't call nanotime if not needed. - don't call tempfs_update() if tempfs_chtimes succeeded, because it just did.
|
Revision tags: yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.33 |
|
28-Apr-2008 |
martin |
branches: 1.33.2; 1.33.4; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.32 |
|
06-Feb-2008 |
jmmv |
branches: 1.32.6; 1.32.8; 1.32.10; u_int is not a C99 standard type, so spell it out completely as unsigned int.
|
#
1.31 |
|
06-Feb-2008 |
jmmv |
Drop trailing whitespace.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.30 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base jmcneill-pm-base
|
#
1.29 |
|
08-Dec-2007 |
pooka |
branches: 1.29.4; Remove cn_lwp from struct componentname. curlwp should be used from on. The NDINIT() macro no longer takes the lwp parameter and associates the credentials of the calling thread with the namei structure.
|
Revision tags: vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 bouyer-xenamd64-base2 vmlocking-nbase bouyer-xenamd64-base reinoud-bufcleanup-base
|
#
1.28 |
|
10-Nov-2007 |
ad |
branches: 1.28.2; Back out the tmpfs changes; there appears to be a bug lurking.
|
#
1.27 |
|
06-Nov-2007 |
ad |
Merge from vmlocking.
|
Revision tags: nick-csl-alignment-base5 jmcneill-base yamt-x86pmap-base4 yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base vmlocking-base ad-audiomp-base
|
#
1.26 |
|
22-Feb-2007 |
thorpej |
branches: 1.26.4; 1.26.16; 1.26.18; 1.26.24; TRUE -> true, FALSE -> false
|
#
1.25 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.24 |
|
13-Nov-2006 |
jmmv |
branches: 1.24.4; Fix typo in comment.
|
#
1.23 |
|
05-Nov-2006 |
jmmv |
Protect the dircookie stuff with _KERNEL. Fixes build problems of mount_tmpfs as reported by Hisashi T Fujinaka in private mail.
|
#
1.22 |
|
05-Nov-2006 |
jmmv |
Truncate directory cookies to 31 bits to avoid problems exposed in Linux binaries which cast the returned values to 64-bits and fail due to sign expansion. More details are provided in the big comment in tmpfs.h that describes how the new tmpfs_dircookie works.
This is a rather ugly hack that shall be fixed with a cleaner solution, but this resolves the problem in an effective way.
Fixes kern PR/32034.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.21 |
|
23-Jul-2006 |
ad |
branches: 1.21.4; 1.21.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base simonb-timecounters-base
|
#
1.20 |
|
27-May-2006 |
yamt |
branches: 1.20.4; hide more by ifdef _KERNEL.
|
Revision tags: yamt-pdpolicy-base5
|
#
1.19 |
|
14-May-2006 |
elad |
branches: 1.19.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base
|
#
1.18 |
|
31-Mar-2006 |
riz |
Swap the order of the tf_gen and tf_id members of struct tmpfs_fid, since tf_id needs 8-byte alignment on some architectures (like amd64). struct tmpfs_fid now fits in 16 bytes on amd64 again. OK matt@
|
#
1.17 |
|
26-Mar-2006 |
martin |
Restrict generation numbers to 32bit values - we would have had to bump _VFS_MAXFIDSZ to 24 otherwise for 64bit archs.
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.16 |
|
16-Feb-2006 |
perry |
branches: 1.16.2; 1.16.4; 1.16.6; Change "inline" back to "__inline" in .h files -- C99 is still too new, and some apps compile things in C89 mode. C89 keywords stay.
As per core@.
|
#
1.15 |
|
16-Feb-2006 |
jmmv |
Do not use unnamed structures/unions without instances; they break the build under vax because of gcc 2.95. Found by he@.
|
#
1.14 |
|
10-Feb-2006 |
christos |
make the include files usable from userland.
|
#
1.13 |
|
24-Dec-2005 |
jmmv |
branches: 1.13.2; 1.13.4; 1.13.6; Remove a conditional by always using inlined functions in favour of macros. This way, the code is clearer and there shouldn't be any performance difference (if the compiler DTRT). Suggested by chs@.
|
#
1.12 |
|
11-Dec-2005 |
christos |
merge ktrace-lwp.
|
Revision tags: ktrace-lwp-base
|
#
1.11 |
|
06-Dec-2005 |
yamt |
VFS_TO_TMPFS: remove a wrong assertion. it's wrong because TMPFS_PAGES_MAX can be decreased.
|
#
1.10 |
|
03-Dec-2005 |
christos |
- protect userland exported files against multiple inclusion. - make sure that kernel only files don't compile in userland using #error - XXX: some kernel only files still get installed. - XXX: some files used in userland, don't get installed.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.9 |
|
02-Nov-2005 |
yamt |
branches: 1.9.2; merge yamt-vop branch. remove following VOPs.
VOP_BLKATOFF VOP_VALLOC VOP_BALLOC VOP_REALLOCBLKS VOP_VFREE VOP_TRUNCATE VOP_UPDATE
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.8 |
|
29-Sep-2005 |
jmmv |
branches: 1.8.2; Implement the tmpfs_advlock operation. Makes "user-level" file locking work (aka lockf(3)).
|
#
1.7 |
|
28-Sep-2005 |
yamt |
tmpfs_getattr: return up-to-date timestamps.
|
#
1.6 |
|
23-Sep-2005 |
jmmv |
Kill the tmpfs(9) manual page; it was just documenting internal details of tmpfs' "API" and was already rotting.
Instead, merge all the relevant comments into the code. This includes acknowledgements to Google's Summer of Code 2005 program (they were in the AUTHORS section of tmpfs(9) before), so all the files need to be changed to include this sentence alongside the title. (Note that this was not a requirement of the program.)
|
#
1.5 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.4 |
|
15-Sep-2005 |
yamt |
change the way to handle directory "offsets" so that they won't be changed when removing entries in the directory. some applications like cvs rely on this.
|
#
1.3 |
|
13-Sep-2005 |
yamt |
- don't waste/leak kva. - implement getpages/putpages. support mmap. - eliminate meaningless memcpy. - ubcify.
|
#
1.2 |
|
10-Sep-2005 |
jmmv |
wiz@ remembers that the preferred way to spell file-system in NetBSD is file system.
|
#
1.1 |
|
10-Sep-2005 |
jmmv |
Initial addition of tmpfs, an efficient memory file-system. This project was developed as part of Google's Summer of Code 2005 program. This change adds the kernel code, the mount_tmpfs utility, a regression test suite and does all other related changes to integrate these.
The file-system is still *experimental*. Therefore, it is disabled by default in all kernels. However, as typically done, a commented-out entry is added in them to ease its setup.
Note that I haven't commited the required mountd(8) changes to be able to export tmpfs file-systems because NFS support is still very unstable and because, before enabling it, I'd like to do some other changes.
OK'ed by my project mentor, William Studenmund (wrstuden@).
|