#
1.142 |
|
02-Mar-2024 |
mlelstv |
Avoid overflow when computing kern.ipc.shmmax. Keep shmmax (bytes) and shmall (pages) values aligned and use arithmetic everywhere instead of shifts. Should fix PR 57979
|
Revision tags: netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
|
#
1.141 |
|
09-Oct-2019 |
chs |
simpler fix for the race between shmat() and shmdt(): change shmat() to hold shm_lock until it is completely done.
|
#
1.140 |
|
09-Oct-2019 |
chs |
revert rev 1.139 (fixing a race between shmat() and shmdt()) that approach turned out to be too complicated.
|
#
1.139 |
|
01-Oct-2019 |
chs |
in shmdt(), wait until shmat() completes before detaching.
Reported-by: syzbot+8f470a1bf36b47ae0040@syzkaller.appspotmail.com Reported-by: syzbot+45810b4c41ed65d9148d@syzkaller.appspotmail.com
|
#
1.138 |
|
23-Aug-2019 |
maxv |
Fix stupid bugs in linux_sys_shmctl(): the index could be out of bound (page fault) and there was no proper locking.
Maybe we should just remove LINUX_SHM_STAT, like compat_linux32.
|
#
1.137 |
|
07-Aug-2019 |
pgoyette |
Many years ago someone created a new __link_set_sysctl_funcs to hold the list of routines that need to be called for setting up sysctl variables. This worked great for all code included in the kernel itself, but didn't deal with modules that want to create their own sysctl data. So, we ended up with a lot of #ifdef _MODULE blocks so modules could explicitly call their setup functions when loaded as non-built-in modules.
So today, we complete the task that was started so many years ago.
When modules are loaded, after we've called xxx_modcmd(INIT...) we check if the module contains its own __link_set_sysctl_funcs, and if so we call the functions listed. We add a struct sysctllog member to the struct module so we can call sysctl_teardown() when the module gets unloaded. (The sequence of events ensures that the sysctl stuff doesn't get created until the rest of the module's init code does any required memory allocation.)
So, no more need to explicitly call the sysctl setup routines when built as a loadable module.
|
#
1.136 |
|
06-Aug-2019 |
riastradh |
Acquire shmseg uobj reference while we hold shm_lock.
Otherwise nothing prevents it from being detached under our feet when we drop shm_lock.
Reported-by: syzbot+a76c618a6808a0fda475@syzkaller.appspotmail.com
|
Revision tags: netbsd-9-base phil-wifi-20190609
|
#
1.135 |
|
10-Jun-2019 |
chs |
branches: 1.135.2; shmctl(SHM_LOCK) does not need to mess with mappings of the shm segment, uvm_obj_wirepages() is sufficient. this fixes the problem reported in https://syzkaller.appspot.com/bug?id=71f9271d761f5b6ed517a18030dc04f0135e6179
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; 1.131.18; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.141 |
|
09-Oct-2019 |
chs |
simpler fix for the race between shmat() and shmdt(): change shmat() to hold shm_lock until it is completely done.
|
#
1.140 |
|
09-Oct-2019 |
chs |
revert rev 1.139 (fixing a race between shmat() and shmdt()) that approach turned out to be too complicated.
|
#
1.139 |
|
01-Oct-2019 |
chs |
in shmdt(), wait until shmat() completes before detaching.
Reported-by: syzbot+8f470a1bf36b47ae0040@syzkaller.appspotmail.com Reported-by: syzbot+45810b4c41ed65d9148d@syzkaller.appspotmail.com
|
#
1.138 |
|
23-Aug-2019 |
maxv |
Fix stupid bugs in linux_sys_shmctl(): the index could be out of bound (page fault) and there was no proper locking.
Maybe we should just remove LINUX_SHM_STAT, like compat_linux32.
|
#
1.137 |
|
07-Aug-2019 |
pgoyette |
Many years ago someone created a new __link_set_sysctl_funcs to hold the list of routines that need to be called for setting up sysctl variables. This worked great for all code included in the kernel itself, but didn't deal with modules that want to create their own sysctl data. So, we ended up with a lot of #ifdef _MODULE blocks so modules could explicitly call their setup functions when loaded as non-built-in modules.
So today, we complete the task that was started so many years ago.
When modules are loaded, after we've called xxx_modcmd(INIT...) we check if the module contains its own __link_set_sysctl_funcs, and if so we call the functions listed. We add a struct sysctllog member to the struct module so we can call sysctl_teardown() when the module gets unloaded. (The sequence of events ensures that the sysctl stuff doesn't get created until the rest of the module's init code does any required memory allocation.)
So, no more need to explicitly call the sysctl setup routines when built as a loadable module.
|
#
1.136 |
|
06-Aug-2019 |
riastradh |
Acquire shmseg uobj reference while we hold shm_lock.
Otherwise nothing prevents it from being detached under our feet when we drop shm_lock.
Reported-by: syzbot+a76c618a6808a0fda475@syzkaller.appspotmail.com
|
Revision tags: netbsd-9-base phil-wifi-20190609
|
#
1.135 |
|
10-Jun-2019 |
chs |
branches: 1.135.2; shmctl(SHM_LOCK) does not need to mess with mappings of the shm segment, uvm_obj_wirepages() is sufficient. this fixes the problem reported in https://syzkaller.appspot.com/bug?id=71f9271d761f5b6ed517a18030dc04f0135e6179
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; 1.131.18; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.139 |
|
01-Oct-2019 |
chs |
in shmdt(), wait until shmat() completes before detaching.
Reported-by: syzbot+8f470a1bf36b47ae0040@syzkaller.appspotmail.com Reported-by: syzbot+45810b4c41ed65d9148d@syzkaller.appspotmail.com
|
#
1.138 |
|
23-Aug-2019 |
maxv |
Fix stupid bugs in linux_sys_shmctl(): the index could be out of bound (page fault) and there was no proper locking.
Maybe we should just remove LINUX_SHM_STAT, like compat_linux32.
|
#
1.137 |
|
07-Aug-2019 |
pgoyette |
Many years ago someone created a new __link_set_sysctl_funcs to hold the list of routines that need to be called for setting up sysctl variables. This worked great for all code included in the kernel itself, but didn't deal with modules that want to create their own sysctl data. So, we ended up with a lot of #ifdef _MODULE blocks so modules could explicitly call their setup functions when loaded as non-built-in modules.
So today, we complete the task that was started so many years ago.
When modules are loaded, after we've called xxx_modcmd(INIT...) we check if the module contains its own __link_set_sysctl_funcs, and if so we call the functions listed. We add a struct sysctllog member to the struct module so we can call sysctl_teardown() when the module gets unloaded. (The sequence of events ensures that the sysctl stuff doesn't get created until the rest of the module's init code does any required memory allocation.)
So, no more need to explicitly call the sysctl setup routines when built as a loadable module.
|
#
1.136 |
|
06-Aug-2019 |
riastradh |
Acquire shmseg uobj reference while we hold shm_lock.
Otherwise nothing prevents it from being detached under our feet when we drop shm_lock.
Reported-by: syzbot+a76c618a6808a0fda475@syzkaller.appspotmail.com
|
Revision tags: netbsd-9-base phil-wifi-20190609
|
#
1.135 |
|
10-Jun-2019 |
chs |
branches: 1.135.2; shmctl(SHM_LOCK) does not need to mess with mappings of the shm segment, uvm_obj_wirepages() is sufficient. this fixes the problem reported in https://syzkaller.appspot.com/bug?id=71f9271d761f5b6ed517a18030dc04f0135e6179
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; 1.131.18; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.138 |
|
23-Aug-2019 |
maxv |
Fix stupid bugs in linux_sys_shmctl(): the index could be out of bound (page fault) and there was no proper locking.
Maybe we should just remove LINUX_SHM_STAT, like compat_linux32.
|
#
1.137 |
|
07-Aug-2019 |
pgoyette |
Many years ago someone created a new __link_set_sysctl_funcs to hold the list of routines that need to be called for setting up sysctl variables. This worked great for all code included in the kernel itself, but didn't deal with modules that want to create their own sysctl data. So, we ended up with a lot of #ifdef _MODULE blocks so modules could explicitly call their setup functions when loaded as non-built-in modules.
So today, we complete the task that was started so many years ago.
When modules are loaded, after we've called xxx_modcmd(INIT...) we check if the module contains its own __link_set_sysctl_funcs, and if so we call the functions listed. We add a struct sysctllog member to the struct module so we can call sysctl_teardown() when the module gets unloaded. (The sequence of events ensures that the sysctl stuff doesn't get created until the rest of the module's init code does any required memory allocation.)
So, no more need to explicitly call the sysctl setup routines when built as a loadable module.
|
#
1.136 |
|
06-Aug-2019 |
riastradh |
Acquire shmseg uobj reference while we hold shm_lock.
Otherwise nothing prevents it from being detached under our feet when we drop shm_lock.
Reported-by: syzbot+a76c618a6808a0fda475@syzkaller.appspotmail.com
|
Revision tags: netbsd-9-base phil-wifi-20190609
|
#
1.135 |
|
10-Jun-2019 |
chs |
shmctl(SHM_LOCK) does not need to mess with mappings of the shm segment, uvm_obj_wirepages() is sufficient. this fixes the problem reported in https://syzkaller.appspot.com/bug?id=71f9271d761f5b6ed517a18030dc04f0135e6179
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; 1.131.18; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.137 |
|
07-Aug-2019 |
pgoyette |
Many years ago someone created a new __link_set_sysctl_funcs to hold the list of routines that need to be called for setting up sysctl variables. This worked great for all code included in the kernel itself, but didn't deal with modules that want to create their own sysctl data. So, we ended up with a lot of #ifdef _MODULE blocks so modules could explicitly call their setup functions when loaded as non-built-in modules.
So today, we complete the task that was started so many years ago.
When modules are loaded, after we've called xxx_modcmd(INIT...) we check if the module contains its own __link_set_sysctl_funcs, and if so we call the functions listed. We add a struct sysctllog member to the struct module so we can call sysctl_teardown() when the module gets unloaded. (The sequence of events ensures that the sysctl stuff doesn't get created until the rest of the module's init code does any required memory allocation.)
So, no more need to explicitly call the sysctl setup routines when built as a loadable module.
|
#
1.136 |
|
06-Aug-2019 |
riastradh |
Acquire shmseg uobj reference while we hold shm_lock.
Otherwise nothing prevents it from being detached under our feet when we drop shm_lock.
Reported-by: syzbot+a76c618a6808a0fda475@syzkaller.appspotmail.com
|
Revision tags: netbsd-9-base phil-wifi-20190609
|
#
1.135 |
|
10-Jun-2019 |
chs |
shmctl(SHM_LOCK) does not need to mess with mappings of the shm segment, uvm_obj_wirepages() is sufficient. this fixes the problem reported in https://syzkaller.appspot.com/bug?id=71f9271d761f5b6ed517a18030dc04f0135e6179
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; 1.131.18; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
Revision tags: phil-wifi-20190609
|
#
1.135 |
|
10-Jun-2019 |
chs |
shmctl(SHM_LOCK) does not need to mess with mappings of the shm segment, uvm_obj_wirepages() is sufficient. this fixes the problem reported in https://syzkaller.appspot.com/bug?id=71f9271d761f5b6ed517a18030dc04f0135e6179
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
Revision tags: isaki-audio2-base
|
#
1.134 |
|
10-Apr-2019 |
pgoyette |
Replace some "panic()" calls with simple "printf() ; return error"
There's no good reason for these build-time parameters to be allowed to panic the kernel when it is easy to simply disable the module code and fail gracefully.
While we're at it, similarly replace panic() when malloc fails to also fail gracefully.
|
#
1.133 |
|
21-Feb-2019 |
mrg |
for sysv ipc stat operations, explicitly copy the exported parts instead of the whole ds structure.
besides triggering a recently added assert in netbsd32, this stops exposing kernel addresses.
copy the mode clamping to 0777 from sem to shm and msg.
while here, make sure that the compat callers to sysv_ipc clear the contents of the compat structure before setting the result members to ensure padding bytes are cleared.
don't set/copy _sem_base, _msg_first, _msg_last or _shm_internal. even if used, which seems very dodgy, they leak KVAs as well. possibly this may affect linux binaries, in particular, the comments around _shm_internal ("XXX Oh well.") may mean apps rely upon these but hopefully not -- the comments date back to rev 1.1 in 1995.
the _key, _seq and _msg_cbytes members are exported as before as i found multiple consumers of these (no less than ipcs(1), and they appear to be useful for debugging and more.
XXX: the naming of compat functions have too many styles. there are at least 3 different ones changed here.
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.132 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 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 nick-nhusb-base-20170204 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
branches: 1.131.10; 1.131.16; We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.2; 1.125.4; 1.125.6; 1.125.10; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
Revision tags: 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
|
#
1.131 |
|
26-Nov-2015 |
martin |
We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers.
|
#
1.130 |
|
06-Nov-2015 |
pgoyette |
In sysv_sem.c, defer establishment of exithook so we can initialize the module code from module_init() rather than waiting until after calling exec_init(). Use a RUN_ONCE routine at entry to each sys_sem* syscall to establish the exithook, and no longer KASSERT that the hook has been set before removing it. (A manually loaded module can be unloaded before any syscalls have been invoked.)
Remove the conditional calls to the various xxx_init() routines from init_main.c - we now rely on module_init() to handle initialization.
Let each sub-component's xxx_init() routine handle its own sysctl sub-tree initialization; this removes another set of #ifdef ugliness.
Tested both built-in and loadable versions and verified that atf test kernel/t_sysv passes.
|
#
1.129 |
|
05-Nov-2015 |
pgoyette |
Now that SYSVSHM is modularized, reattach the linkages from uvm so that we can correctly clean up on process exit or fork.
Without this, firefox attaches to a shared memory segment but doesn't detach before exit. Thus once firefox causes an autoload for sysv_ipc it cannot be unloaded since the segment still retains references.
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.128 |
|
13-May-2015 |
pgoyette |
More prep: add a xxxfini() routine to each subcomponent so we can clean up after ourselves. Mostly, this checks to make sure that there are no active itmes, and then deallocates wired kernel virtual memory. For SYSVSEM, we also disestablish the exithook() so we won't try to call it after destroying its memory pool!
|
#
1.127 |
|
13-May-2015 |
pgoyette |
More preparation for modularizing the SYSVxxx options. Here we change the kern.ipc.sysvxxx sysctls into dynamic values, so each sub-component of SYSVxxx can declare its own availability.
|
#
1.126 |
|
12-May-2015 |
pgoyette |
In preparation for modularization of the SYSV* options, restore the use of opt_sysv.h to get the -DSYSVxxx definitions.
|
Revision tags: 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-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.125 |
|
27-May-2014 |
njoly |
branches: 1.125.4; In shmrealloc(), add missing condvar initialisations for segments copied from previous location.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.124 |
|
25-Feb-2014 |
pooka |
branches: 1.124.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.123 |
|
13-Mar-2012 |
elad |
branches: 1.123.2; 1.123.4; Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE 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 netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.122 |
|
27-Aug-2011 |
christos |
branches: 1.122.2; 1.122.6; Add an optional pglist argument to uvm_obj_wirepages, to be filled with the list of pages that were wired.
|
#
1.121 |
|
30-Jul-2011 |
uebayasi |
Correct sizes to pass uvm_km_free(9) in error paths.
|
#
1.120 |
|
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.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.119 |
|
13-May-2011 |
rmind |
branches: 1.119.2; - Replace shmmap_entry_pool with kmem(9), as pool is not worth. - Sprinkle __cacheline_aligned and __read_mostly.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.118 |
|
27-Jul-2010 |
jakllsch |
branches: 1.118.2; Use 'z' printf format modifier to print size_t in debug code.
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.117 |
|
05-Oct-2009 |
rmind |
branches: 1.117.2; 1.117.4; shmexit: simplify a lot by avoiding unnecessary memory allocations, since it is a last reference, just re-lock and check mapping list again. Often there wont be re-locks at all, moreover, shm_lock is not contended at all.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.116 |
|
06-Mar-2009 |
joerg |
Remove SHMMAXPGS from all kernel configs. Dynamically compute the initial limit as 1/4 of the physical memory. Ensure the limit is at least 1024 pages, the old default on most platforms.
|
Revision tags: nick-hppapmap-base2 mjf-devfs2-base
|
#
1.115 |
|
11-Jan-2009 |
christos |
branches: 1.115.2; merge christos-time_t
|
Revision tags: christos-time_t-nbase christos-time_t-base
|
#
1.114 |
|
22-Dec-2008 |
rmind |
sys_shmat: initialise shmid of shmmap entry earlier. Now error path, i.e. shm_delete_mapping, wont use random value.
|
Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.113 |
|
27-Oct-2008 |
erh |
branches: 1.113.2; Change the order of error checks in shmget so EEXIST is returned before EINVAL or EACCESS so callers have a more reliable way to tell if a shared memory segment already exists.
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.112 |
|
07-Oct-2008 |
rmind |
branches: 1.112.2; - Allow changing of kern.ipc.shmmax, just to avoid confusion. - Change type of kern.ipc.shmmax to CTLTYPE_QUAD.
|
#
1.111 |
|
19-Sep-2008 |
rmind |
Fix the aligning of memory blocks again, finally... Tested by <martin> on his sparc64 box.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.110 |
|
31-May-2008 |
ad |
branches: 1.110.4; shmrealloc: destroy condition variables before freeing them.
|
#
1.109 |
|
29-May-2008 |
rmind |
sys_shmget: use the correct size variable for uobj_wirepages(). Adjust shm_memlock() for consistency too.
Fixes PR/38782, reported by Adam Hoka.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
#
1.108 |
|
11-May-2008 |
rmind |
sys_shmget: fix an object leak in case of error.
|
#
1.107 |
|
28-Apr-2008 |
martin |
branches: 1.107.2; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.106 |
|
12-Apr-2008 |
rmind |
branches: 1.106.2; 1.106.4; Fix shared memory code that it could handle > 4GB addresses correctly. PR/38109, patch (a little bit modified) from Chris Brand.
|
Revision tags: 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.105 |
|
30-Jan-2008 |
njoly |
branches: 1.105.6; 1.105.8; Fix shm_cv/newshm_cv offset value by using the correct sizeof argument (kcondvar_t -> struct shmid_ds).
ok by rmind@
|
#
1.104 |
|
27-Jan-2008 |
rmind |
- sys_shmget: size type must be size_t, not int. Should avoid possible problems with huge allocations. - shmrealloc: use newshmni for calculation of new sz, shminfo.shmmni was a mistake. Convert sz to size_t type.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.103 |
|
07-Jan-2008 |
ad |
Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.102 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3
|
#
1.101 |
|
20-Dec-2007 |
dsl |
Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-mips64-base jmcneill-pm-base nick-csl-alignment-base yamt-idlelwp-base8 reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.100 |
|
29-Apr-2007 |
msaitoh |
branches: 1.100.8; 1.100.14; 1.100.16; 1.100.20; fix typos
|
Revision tags: thorpej-atomic-base
|
#
1.99 |
|
12-Mar-2007 |
ad |
branches: 1.99.2; Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
1.98 |
|
04-Mar-2007 |
christos |
branches: 1.98.2; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.97 |
|
22-Feb-2007 |
thorpej |
TRUE -> true, FALSE -> false
|
#
1.96 |
|
15-Feb-2007 |
ad |
branches: 1.96.2; Replace some uses of lockmgr() / simplelocks.
|
Revision tags: post-newlock2-merge
|
#
1.95 |
|
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
Revision tags: newlock2-nbase newlock2-base
|
#
1.94 |
|
07-Feb-2007 |
rmind |
PR/28458: shmat(2) shmaddr argument is not honored as intended. Patch applied, thanks for Minoura Makoto.
Please note, that one should fail if cannot attach to shmaddr, but not attach it to other place.
OK by uwe@
|
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 yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
|
#
1.93 |
|
28-Nov-2006 |
ad |
Avoid sleeping with a held simple_lock.
|
#
1.92 |
|
25-Nov-2006 |
christos |
PR/34837: Mindaguas: Add SysV SHM dynamic reallocation and locking to the physical memory
|
#
1.91 |
|
01-Nov-2006 |
yamt |
remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.90 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.89 |
|
23-Jul-2006 |
ad |
branches: 1.89.4; 1.89.6; Use the LWP cached credentials where sane.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.88 |
|
07-Jun-2006 |
kardel |
merge FreeBSD timecounters from branch simonb-timecounters - struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.87 |
|
14-May-2006 |
elad |
branches: 1.87.2; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.86 |
|
07-Dec-2005 |
thorpej |
branches: 1.86.4; 1.86.6; 1.86.8; 1.86.10; 1.86.12; Use ANSI function delcs.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.85 |
|
10-Nov-2005 |
christos |
fix debugging; remove some defines that are now in the header file.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base kent-audio2-base
|
#
1.84 |
|
01-Apr-2005 |
yamt |
branches: 1.84.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
Revision tags: yamt-km-base4
|
#
1.83 |
|
26-Mar-2005 |
fvdl |
Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants. * Add a new function pointer to struct emul, pointing at a function that will return the default VM map address. The default function is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS macro. This gives emulations control over the default map address, and allows things to be mapped at the right address (in 32bit range) for COMPAT_NETBSD32. * Add code to adjust the data and stack limits when a COMPAT_NETBSD32 or COMPAT_SVR4_32 binary is executed. * Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr instead (emulations might have set it differently) * Since this changes struct emul, bump kernel version to 3.99.2
Tested on amd64, compile-tested on sparc64.
|
Revision tags: yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.82 |
|
17-Oct-2004 |
jdolecek |
branches: 1.82.4; 1.82.6; 1.82.10; fix typo (missing &)
|
#
1.81 |
|
17-Oct-2004 |
jdolecek |
use nointr allocator for shmmap_entry_pool - this is always accessed from process context
|
#
1.80 |
|
16-Oct-2004 |
jdolecek |
kill the indirection via struct shm_handle and store pointer to the uvm object direct to _shm_private; the indirection doesn't serve any useful purpose and just wastes memory and cpu cycles
|
#
1.79 |
|
28-Sep-2004 |
jdolecek |
add flag for shmget(2) to specify that later shmat(2) for the shared memory segment should succeed even if the segment would be marked removed; use this to implement the Linux-compatible semantics of shmat(2)
this fixes the old Linux VMware3 graphics problem with local display, and possibly other local Linux X clients using MIT-SHM
|
#
1.78 |
|
28-Sep-2004 |
jdolecek |
fold shmat1() back into sys_shmat(), the change in rev 1.64 is not sufficient for Linux-compatible shmat() behaviour - shmat() for the removed shared memory segment must work from all callers, the shared memory id could be passed e.g. to native X server via MIT-SHM
temporarily remove the functionality, the Linux-compatible semantics will be reimplemented differently
|
#
1.77 |
|
25-Apr-2004 |
simonb |
Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
Revision tags: netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.76 |
|
23-Mar-2004 |
junyoung |
branches: 1.76.2; - Nuke __P(). - Drop trailing spaces.
|
#
1.75 |
|
06-Feb-2004 |
christos |
include <uvm/uvm_object.h> for the benefit of ports that don't include it in <machine/pmap.h>
|
#
1.74 |
|
05-Feb-2004 |
christos |
- Don't use uao_ functions directly; use them through the pgops methods. - Fix missing reference leak in the error path of shmat() mentioned in Full-Disclosure.
|
#
1.73 |
|
06-Dec-2003 |
simonb |
Wrap long line.
|
#
1.72 |
|
05-Dec-2003 |
jdolecek |
add #ifdef DEBUG segnum sanity check in shm_delete_mapping()
|
#
1.71 |
|
26-Oct-2003 |
jdolecek |
allocate virtual memory for SYSV shm, msg and semaphore structures separately from the bufpages, so that it would be possible to eventually make their limits changeable in runtime
make static all local variables which do not need to be exported to other kernel parts
|
#
1.70 |
|
10-Sep-2003 |
drochner |
Fix the "COW" case if a process does a detach() between fork() and exit(): we have to lookup the entry in the private copy again, otherwise the wrong list is manipulated. should fix a panic on postgres shutdown reported by Marc Recht
being here, improve sone debug messages
|
#
1.69 |
|
09-Sep-2003 |
drochner |
Make per-process shm segment descriptor magement scale better for large shminfo.shmseg, in view of the fact that only few processes utilize a significant fraction of it: -turn the table into a linked list, elements allocated from a pool(9) -On fork(), just bump a refcount instead of copying the list; it will be decremented on exit() and exec(). Only copy if an attach or detach takes place in between, which is rarely the case.
|
#
1.68 |
|
20-Feb-2003 |
atatat |
branches: 1.68.2; Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
#
1.67 |
|
01-Feb-2003 |
thorpej |
Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
#
1.66 |
|
30-Jan-2003 |
atatat |
Two small changes to the ELF exec code:
(1) ELFNAME(load_file)() now takes a pointer to the entry point offset, instead of taking a pointer to the entry point itself. This allows proper adjustment of the ultimate entry point at a higher level if the object containing the entry point is moved before the exec is finished.
(2) Introduce VMCMD_FIXED, which means the address at which a given vmcmd describes a mapping is fixed (ie, should not be moved). Don't set this for entries pertaining to ld.so.
Also some minor comment/whitespace tweaks.
|
#
1.65 |
|
18-Jan-2003 |
thorpej |
Merge the nathanw_sa branch.
|
Revision tags: netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.64 |
|
03-Apr-2002 |
fvdl |
branches: 1.64.4; Split off the backend of the shmat system call, and find removed segments if requested. This enables the linux compat code to be bug compatible (under Linux, shmat() to a removed segment works).
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base
|
#
1.63 |
|
15-Nov-2001 |
lukem |
don't need <sys/types.h> when including <sys/param.h>
|
Revision tags: thorpej-mips-cache-base
|
#
1.62 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.61 |
|
15-Mar-2001 |
chs |
branches: 1.61.2; 1.61.6; eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
#
1.60 |
|
14-Nov-2000 |
thorpej |
branches: 1.60.2; NBPG -> PAGE_SIZE
|
#
1.59 |
|
13-Sep-2000 |
thorpej |
Add an align argument to uvm_map() and some callers of that routine. Works similarly fto pmap_prefer(), but allows callers to specify a minimum power-of-two alignment of the region. How we ever got along without this for so long is beyond me.
|
#
1.58 |
|
22-Jul-2000 |
simonb |
Delete a couple of <uvm/uvm_extern.h> includes that were for <sys/sysctl.h> only.
|
#
1.57 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.56 |
|
02-Jun-2000 |
simonb |
branches: 1.56.2; Add new sysctl node "KERN_SYSVIPC_INFO" with "KERN_SYSVIPC_MSG_INFO", "KERN_SYSVIPC_SEM_INFO" and "KERN_SYSVIPC_SHM_INFO" to return the info and data structures for the relevent SysV IPC types. The return structures use fixed-size types and should be compat32 safe. All user-visible changes are protected with #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
Make all variable declarations extern in msg.h, sem.h and shm.h and add relevent variable declarations to sysv_*.c and remove unneeded header files from those .c files.
Make compat14 SysV IPC conversion functions and sysctl_file() static.
Change the data pointer to "void *" in sysctl_clockrate(), sysctl_ntptime(), sysctl_file() and sysctl_doeproc().
|
Revision tags: minoura-xpg4dl-base
|
#
1.55 |
|
15-Apr-2000 |
simonb |
branches: 1.55.2; Remove shmsegs declaration from conf/param.c - it doesn't belong here. Instead, put it in kern/sysv_shm.c.
|
#
1.54 |
|
26-Mar-2000 |
kleink |
Merge parts of chs-ubc2 into the trunk: * Remove the casts to vaddr_t from the round_page() and trunc_page() macros to make them type-generic, which is necessary i.e. to operate on file offsets without truncating them. * In due course, cast pointer arguments to these macros to an appropriate integral type (paddr_t, vaddr_t).
Originally done by Chuck Silvers, updated by myself.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.53 |
|
03-Dec-1999 |
ragge |
First round of discarding the CL* macros.
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.52 |
|
25-Aug-1999 |
thorpej |
branches: 1.52.2; 1.52.8; Overhaul of the SVID IPC facilities, primarily to use the types specified by the Single UNIX Specification version 2, rather than the SVR2-derived types. While I was here, I did a namespace sweep to expose the constants and strucutures, and structure members described by SUSv2; documentation updates coming shortly.
Fixes kern/8158.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 chs-ubc2-base netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.51 |
|
24-Mar-1999 |
mrg |
branches: 1.51.4; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
Revision tags: kenh-if-detach-base chs-ubc-base
|
#
1.50 |
|
21-Oct-1998 |
tron |
No need to get definition of "SYSV..." from "opt_sysv.h" because they must be set if these files are compiled.
|
#
1.49 |
|
19-Oct-1998 |
tron |
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
|
#
1.48 |
|
15-Aug-1998 |
mycroft |
Make copyright notices with my name consistent.
|
#
1.47 |
|
13-Aug-1998 |
eeh |
Merge paddr_t changes into the main branch.
|
#
1.46 |
|
04-Aug-1998 |
perry |
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. bcopy(x, y, z) -> memcpy(y, x, z) ovbcopy(x, y, z) -> memmove(y, x, z) bcmp(x, y, z) -> memcmp(x, y, z) bzero(x, y) -> memset(x, 0, y)
|
Revision tags: eeh-paddr_t-base
|
#
1.45 |
|
24-Jul-1998 |
thorpej |
branches: 1.45.2; uvm_deallocate() takes an address and a size, not an address range. From ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834.
|
#
1.44 |
|
07-May-1998 |
kleink |
Various SysV IPC prototype changes.
|
#
1.43 |
|
10-Feb-1998 |
mrg |
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
#
1.42 |
|
05-Feb-1998 |
mrg |
initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
#
1.41 |
|
03-Jan-1998 |
thorpej |
Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s, and update internal interfaces appropriately.
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base marc-pcmcia-base
|
#
1.40 |
|
09-Oct-1997 |
drochner |
Fix error handling - call wakeup() in error case too.
|
#
1.39 |
|
07-Oct-1997 |
drochner |
Use a swap pager backed VM object for sysV shm instead of kernel VM. Mostly from FreeBSD.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp is-newarp-before-merge is-newarp-base
|
#
1.38 |
|
01-Sep-1996 |
christos |
branches: 1.38.10; Calling shmdt(2) before calling shmat(2) would crash the system because p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where that might happen too. This was the reason why sunxdoom would panic the system in SVR4 emulation.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.37 |
|
16-Mar-1996 |
christos |
branches: 1.37.4; Fix printf() formats.
|
#
1.36 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.35 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
#
1.34 |
|
09-Dec-1995 |
mycroft |
Remove unused third arg to shmfork().
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.33 |
|
07-Oct-1995 |
mycroft |
Prefix names of system call implementation functions with `sys_'.
|
#
1.32 |
|
19-Sep-1995 |
thorpej |
Make system calls conform to a standard prototype and bring those prototypes into scope.
|
#
1.31 |
|
29-Jun-1995 |
cgd |
try to insure that the 'default' address for shm segments is the same from process to process. It apparently is on SysV systems, and some programs depend on this. Suggested by John Birrell <jb@werple.mira.net.au>.
|
#
1.30 |
|
24-Jun-1995 |
christos |
Extracted all of the compat_xxx routines, and created a library [libcompat] for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy or worth eliminating (yet).
|
#
1.29 |
|
05-Jun-1995 |
pk |
We need some compat_10 routines if COMPAT_SUNOS is on (PR #1008).
|
#
1.28 |
|
10-May-1995 |
christos |
tty_tb.c: need to include ioctl_compat.h in order to compile. sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by COMPAT_HPUX. There should be a better way... rest: Add #ifdef COMPAT_HPUX where needed
|
#
1.27 |
|
22-Dec-1994 |
cgd |
kill the #if 0 around SHM_*LOCK. makes no difference, though...
|
#
1.26 |
|
20-Oct-1994 |
cgd |
update for new syscall args description mechanism
|
#
1.25 |
|
31-Aug-1994 |
mycroft |
Decrease shm_nused when a segment is deleted.
|
#
1.24 |
|
22-Aug-1994 |
deraadt |
initialize shmmax to `# of pages' at compile time; multiply by NBPG at boot time (in shminit). This supports architecture families with varying values for NBPG, and does not break ipcs.
|
Revision tags: netbsd-1-0-base
|
#
1.23 |
|
04-Jul-1994 |
glass |
branches: 1.23.2; returning a gift
|
#
1.22 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.21 |
|
25-Jun-1994 |
mycroft |
shm map is pageable.
|
#
1.20 |
|
03-Jun-1994 |
mycroft |
Use the same algorithm as mmap() with MAP_ANON for placing the segment.
|
#
1.19 |
|
03-Jun-1994 |
mycroft |
Get rid of unneeded bzero().
|
#
1.18 |
|
03-Jun-1994 |
cgd |
sane initialization. fix bug kern/274
|
#
1.17 |
|
25-May-1994 |
mycroft |
Update copyright.
|
#
1.16 |
|
25-May-1994 |
mycroft |
If we try to create a key that's already being created, wait.
|
#
1.15 |
|
25-May-1994 |
mycroft |
And finally, some optimization.
|
#
1.14 |
|
25-May-1994 |
mycroft |
Fix this up some more. (I just read SVID again.)
|
#
1.13 |
|
25-May-1994 |
mycroft |
Generalize ipcperm() a little.
|
#
1.12 |
|
25-May-1994 |
mycroft |
Clean this up a bit, and fix several bugs.
|
#
1.11 |
|
25-May-1994 |
hpeyerl |
sysv_shm.c from Adam. sysv_ipc.c from me. and various sundry changes to make sysv_ipc.c fit in. (somewhat untested and not very pleasant reading material)
|
#
1.10 |
|
08-Jan-1994 |
cgd |
SHM_LOCK and SHM_UNLOCK aren't just HPUXCOMPAT
|
#
1.9 |
|
08-Jan-1994 |
mycroft |
#include vm_user.h.
|
#
1.8 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
#
1.7 |
|
14-Nov-1993 |
cgd |
Add the System V message queue and semaphore facilities. Implemented by Daniel Boulet <danny@BouletFermat.ab.ca>
|
Revision tags: magnum-base
|
#
1.6 |
|
01-Aug-1993 |
mycroft |
branches: 1.6.2; Add RCS identifiers (this time on the correct side of the branch), and incorporate recent changes in netbsd-0-9 branch.
|
Revision tags: netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.5 |
|
17-Jul-1993 |
mycroft |
Finish moving struct definitions outside of function declarations.
|
#
1.4 |
|
04-Jul-1993 |
cgd |
shminit has void return type.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
09-Apr-1993 |
cgd |
From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When mprotect()-ing the address range afterwards, no protection was checked regarding the protection of the file originally opened. So when you open /usr/bin/su RDONLY and SHARED you could afterwards change the mmapped region to READ|WRITE. This gave the possibility to obtain root privs obviously.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|