#
354762 |
|
16-Nov-2019 |
scottl |
MFC r354756:
Create a new sysctl tree, machdep.mitigations
Sponsored by: Intel
|
#
351358 |
|
21-Aug-2019 |
jhb |
MFC 348970,348974: Make the warning intervals for deprecated crypto algorithms tunable.
348970: Make the warning intervals for deprecated crypto algorithms tunable.
New sysctl/tunables can now set the interval (in seconds) between rate-limited crypto warnings. The new sysctls are: - kern.cryptodev_warn_interval for /dev/crypto - net.inet.ipsec.crypto_warn_interval for IPsec - kern.kgssapi_warn_interval for KGSSAPI
348974: Move declaration of warninterval out from under COMPAT_FREEBSD32.
This fixes builds of kernels without COMPAT_FREEBSD32.
|
#
347213 |
|
06-May-2019 |
erj |
MFC r345312: iflib: mark isc_driver_version as constant
(Additional comment by erj: This also adds a new sysctl_add_oid macro, SYSCTL_ADD_CONST_STRING, for displaying const strings. This commit also includes an edit to the sysctl.9 man page for it.)
Sponsored by: Intel Corporation
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
324748 |
|
19-Oct-2017 |
avg |
MFC r324311: sysctl-s in a module should be accessible only when the module is initialized
Sponsored by: Panzura
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
300718 |
|
26-May-2016 |
hselasky |
Add support for boolean sysctl's.
Because the size of bool can be implementation defined, make a bool sysctl handler which handle bools. Userspace sees the bools like unsigned 8-bit integers. Values are filtered to either 1 or 0 upon read and write, similar to what a compiler would do.
Requested by: kmacy @ Sponsored by: Mellanox Technologies
|
#
298981 |
|
03-May-2016 |
pfg |
sys/sys: minor spelling fixes.
While the changes are minor, these headers are very visible.
MFC after: 2 weeks
|
#
296933 |
|
16-Mar-2016 |
hselasky |
Improve the implementation and documentation of the SYSCTL_COUNTER_U64_ARRAY() macro.
- Add proper asserts to the SYSCTL_COUNTER_U64_ARRAY() macro that checks the size of the first element of the array. - Add an example to the counter(9) manual page how to use the SYSCTL_COUNTER_U64_ARRAY() macro. - Add some missing symbolic links for counter(9) while at it.
|
#
296880 |
|
14-Mar-2016 |
glebius |
Provide sysctl(9) macro to deal with array of counter(9).
|
#
296871 |
|
14-Mar-2016 |
glebius |
Revert r296868. The cast is useful to protect against passing incorrect argument type to the macro.
Submitted by: rstone
|
#
296868 |
|
14-Mar-2016 |
glebius |
Remove useless cast in SYSCTL_ADD_COUNTER_U64 macro.
|
#
290505 |
|
07-Nov-2015 |
cem |
Flesh out sysctl types further (follow-up of r290475)
Use the right intmax_t type instead of intptr_t in a few remaining places.
Add support for CTLFLAG_TUN for the new fixed with types. Bruce will be upset that the new handlers silently truncate tuned quad-sized inputs, but so do all of the existing handlers.
Add the new types to debug_dump_node, for whatever use that is.
Bump FreeBSD_version again, for good measure. We are changing SYSCTL_HANDLER_ARGS and a member of struct sysctl_oid to intmax_t.
Correct the sysctl typed NULL values for the fixed-width types. (Hat tip: hps@.)
Suggested by: hps (partial) Sponsored by: EMC / Isilon Storage Division
|
#
290493 |
|
07-Nov-2015 |
kib |
Correct the argument type in the sysctl_add_oid(9) prototype. On ILP32 machines, intptr_t and intmax_t are different types.
Submitted by: skra
|
#
290475 |
|
06-Nov-2015 |
cem |
Round out SYSCTL macros to the full set of fixed-width types
Add S8, S16, S32, and U32 types; add SYSCTL*() macros for them, as well as for the existing 64-bit types. (While SYSCTL*QUAD and UQUAD macros already exist, they do not take the same sort of 'val' parameter that the other macros do.)
Clean up the documented "types" in the sysctl.9 document. (These are macros and thus not real types, but the manual page documents intent.)
The sysctl_add_oid(9) arg2 has been bumped from intptr_t to intmax_t to accommodate 64-bit types on 32-bit pointer architectures.
This is just the kernel support piece; the userspace sysctl(1) support will follow in a later patch.
Submitted by: Ravi Pokala <rpokala@panasas.com> Reviewed by: cem Relnotes: no Sponsored by: Panasas Differential Revision: https://reviews.freebsd.org/D4091
|
#
290473 |
|
06-Nov-2015 |
mjg |
fd: implement kern.proc.nfds sysctl
Intended purpose is to provide an equivalent of OpenBSD's getdtablecount syscall for the compat library..
|
#
289773 |
|
22-Oct-2015 |
cem |
Sysctl: Add common support for U8, U16 types
Sponsored by: EMC / Isilon Storage Division
|
#
287835 |
|
15-Sep-2015 |
mjg |
sysctl: switch sysctllock to a sleepable rmlock, take 2
This restores r285125. Previous attempt was reverted due to a bug in rmlocks, which is fixed since r287833.
|
#
286094 |
|
30-Jul-2015 |
mjg |
Revert r285125 until rmlocks get fixed.
Right now there is a chance that sysctl unregister will cause reader to block on the sx lock associated with sysctl rmlock, in which case kernels with debug enabled will panic.
|
#
285125 |
|
04-Jul-2015 |
mjg |
sysctl: switch sysctllock to a sleepable rmlock
The lock is almost never taken for writing.
|
#
280005 |
|
14-Mar-2015 |
ian |
Define a convenience macro, SYSCTL_OUT_STR() for handling strings the standard way (including the nulterm byte in the data returned to userland).
This augments the existing sysctl_handle_string() in that this can be used with const strings without ugly inappropriate casting.
|
#
274167 |
|
06-Nov-2014 |
mjg |
Add sysctl kern.proc.cwd
It returns only current working directory of given process which saves a lot of overhead over kern.proc.filedesc if given proc has a lot of open fds.
Submitted by: Tiwei Bie <btw mail.ustc.edu.cn> (slightly modified) X-Additional: JuniorJobs project
|
#
273899 |
|
31-Oct-2014 |
hselasky |
Only put one CTASSERT() inside each macro to avoid compile issues. The problem is that the __LINE__ macro is constant inside a macro and results in identical assert statements when the compiler does not support the static builtin assert function.
MFC: 3 days Sponsored by: Mellanox Technologies
|
#
273455 |
|
22-Oct-2014 |
hselasky |
Allow overspecification of SYSCTL type in external kernel modules.
PR: 194523 MFC after: 3 days
|
#
273400 |
|
21-Oct-2014 |
mjg |
Rename sysctl_lock and _unlock to sysctl_xlock and _xunlock.
|
#
273378 |
|
21-Oct-2014 |
hselasky |
Fix minor typo in currently unused macro.
MFC after: 3 days
|
#
273377 |
|
21-Oct-2014 |
hselasky |
Fix multiple incorrect SYSCTL arguments in the kernel:
- Wrong integer type was specified.
- Wrong or missing "access" specifier. The "access" specifier sometimes included the SYSCTL type, which it should not, except for procedural SYSCTL nodes.
- Logical OR where binary OR was expected.
- Properly assert the "access" argument passed to all SYSCTL macros, using the CTASSERT macro. This applies to both static- and dynamically created SYSCTLs.
- Properly assert the the data type for both static and dynamic SYSCTLs. In the case of static SYSCTLs we only assert that the data pointed to by the SYSCTL data pointer has the correct size, hence there is no easy way to assert types in the C language outside a C-function.
- Rewrote some code which doesn't pass a constant "access" specifier when creating dynamic SYSCTL nodes, which is now a requirement.
- Updated "EXAMPLES" section in SYSCTL manual page.
MFC after: 3 days Sponsored by: Mellanox Technologies
|
#
268351 |
|
06-Jul-2014 |
marcel |
Remove ia64.
This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation
This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h
Discussed at: BSDcan
|
#
268005 |
|
28-Jun-2014 |
hselasky |
Compile fixes:
Remove duplicate "debug_ktr.mask" sysctl definition. Remove now unused variable from "kern_ktr.c". This fixes build of "ktr" which was broken by r267961.
Let the default value for "vm_kmem_size_scale" be zero. It is setup after that the sysctl has been initialized from "getenv()" in the "kmeminit()" function to equal the "VM_KMEM_SIZE_MAX" value, if zero. On Sparc64 the "VM_KMEM_SIZE_MAX" macro is not a constant. This fixes build of Sparc64 which was broken by r267961.
Add a special macro to dynamically create SYSCTL root nodes, because root nodes have a special parent. This fixes build of existing OFED module and CANBUS module for pc98 which was broken by r267961.
Add missing "sysctl.h" includes to get the needed sysctl header file declarations. This is needed after r267961.
MFC after: 2 weeks
|
#
267992 |
|
28-Jun-2014 |
hselasky |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
#
267985 |
|
27-Jun-2014 |
gjb |
Revert r267961, r267973:
These changes prevent sysctl(8) from returning proper output, such as:
1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
#
267961 |
|
27-Jun-2014 |
hselasky |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel.
Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change.
MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
#
267633 |
|
19-Jun-2014 |
hselasky |
Initialize sysctl OID structure by record.
MFC after: 2 weeks
|
#
262489 |
|
25-Feb-2014 |
jhb |
Remove more constants related to static sysctl nodes. The MAXID constants were primarily used to size the sysctl name list macros that were removed in r254295. A few other constants either did not have an associated sysctl node, or the associated node used OID_AUTO instead.
PR: ports/184525 (exp-run)
|
#
261595 |
|
07-Feb-2014 |
glebius |
sysctl_handle_counter_u64() doesn't use arg2 argument, thus simplify the SYSCTL_COUNTER_U64() macro.
Sponsored by: Nginx, Inc.
|
#
261593 |
|
07-Feb-2014 |
glebius |
Provide macros that allow easily export uma(9) zone limits and current usage via sysctl(9):
SYSCTL_UMA_MAX() SYSCTL_ADD_UMA_MAX() SYSCTL_UMA_CUR() SYSCTL_ADD_UMA_CUR()
Sponsored by: Nginx, Inc.
|
#
258661 |
|
26-Nov-2013 |
kib |
Add an kinfo sysctl to retrieve signal trampoline location for the given process.
Note that the correctness of the trampoline length returned for ABIs which do not use shared page depends on the correctness of the struct sysvec sv_szsigcodebase member, which will be fixed on as-need basis.
Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
255496 |
|
12-Sep-2013 |
jhb |
Fix a typo.
Approved by: re (gjb)
|
#
255078 |
|
30-Aug-2013 |
pjd |
Style cleanups.
|
#
254925 |
|
26-Aug-2013 |
jhb |
Remove most of the remaining sysctl name list macros. They were only ever intended for use in sysctl(8) and it has not used them for many years.
Reviewed by: bde Tested by: exp-run by bdrewery
|
#
249268 |
|
08-Apr-2013 |
glebius |
Merge from projects/counters: counter(9).
Introduce counter(9) API, that implements fast and raceless counters, provided (but not limited to) for gathering of statistical data.
See http://lists.freebsd.org/pipermail/freebsd-arch/2013-April/014204.html for more details.
In collaboration with: kib Reviewed by: luigi Tested by: ae, ray Sponsored by: Nginx, Inc.
|
#
244123 |
|
11-Dec-2012 |
pjd |
Similar to CTLFLAG_RDTUN, provide CTLFLAG_RWTUN that defines writable sysctl that can also be modified by loader tunable.
|
#
244101 |
|
10-Dec-2012 |
alfred |
Add CTLFLAG_STATS to sysctl flags
In preparation for sysctl(8) growing the ability to only print out boot/run-time tunables we need a way to differentiate between RW sysctl nodes that tune a particular thing, or simply export a stat that we want to allow the sysadmin to reset to 0 (or some other value).
To do so, we add the CTLFLAG_STATS which should be OR'd into the CTLFLAGs when exporting a "writable/resettable" statistic node via sysctl.
|
#
233389 |
|
23-Mar-2012 |
trociny |
Add a sysctl to set and retrieve binary osreldate of another process.
Suggested by: kib Reviewed by: kib MFC after: 2 weeks
|
#
232449 |
|
03-Mar-2012 |
jmallett |
o) Add COMPAT_FREEBSD32 support for MIPS kernels using the n64 ABI with userlands using the o32 ABI. This mostly follows nwhitehorn's lead in implementing COMPAT_FREEBSD32 on powerpc64. o) Add a new type to the freebsd32 compat layer, time32_t, which is time_t in the 32-bit ABI being used. Since the MIPS port is relatively-new, even the 32-bit ABIs use a 64-bit time_t. o) Because time{spec,val}32 has the same size and layout as time{spec,val} on MIPS with 32-bit compatibility, then, disable some code which assumes otherwise wrongly when built for MIPS. A more general macro to check in this case would seem like a good idea eventually. If someone adds support for using n32 userland with n64 kernels on MIPS, then they will have to add a variety of flags related to each piece of the ABI that can vary. That's probably the right time to generalize further. o) Add MIPS to the list of architectures which use PAD64_REQUIRED in the freebsd32 compat code. Probably this should be generalized at some point.
Reviewed by: gonzo
|
#
232181 |
|
26-Feb-2012 |
trociny |
Add sysctl to retrieve or set umask of another process.
Submitted by: Dmitry Banschikov <me ubique spb ru> Discussed with: kib, rwatson Reviewed by: kib MFC after: 2 weeks
|
#
228046 |
|
27-Nov-2011 |
trociny |
This should have been committed in r228030.
MFC after: 2 weeks
|
#
227955 |
|
24-Nov-2011 |
trociny |
Add sysctl to get process resource limits.
Reviewed by: kib MFC after: 2 weeks
|
#
227833 |
|
22-Nov-2011 |
trociny |
Add new sysctls, KERN_PROC_ENV and KERN_PROC_AUXV, to return environment strings and ELF auxiliary vectors from a process stack.
Make sysctl_kern_proc_args to read not cached arguments from the process stack.
Export proc_getargv() and proc_getenvv() so they can be reused by procfs and linprocfs.
Suggested by: kib Reviewed by: kib Discussed with: kib, rwatson, jilles Tested by: pho MFC after: 2 weeks
|
#
224159 |
|
17-Jul-2011 |
rwatson |
Define two new sysctl node flags: CTLFLAG_CAPRD and CTLFLAG_CAPRW, which may be jointly referenced via the mask CTLFLAG_CAPRW. Sysctls with these flags are available in Capsicum's capability mode; other sysctl nodes are not.
Flag several useful sysctls as available in capability mode, such as memory layout sysctls required by the run-time linker and malloc(3). Also expose access to randomness and available kernel features.
A few sysctls are enabled to support name->MIB conversion; these may leak information to capability mode by virtue of providing resolution on names not flagged for access in capability mode. This is, generally, not a huge problem, but might be something to resolve in the future. Flag these cases with XXX comments.
Submitted by: jonathan Sponsored by: Google, Inc.
|
#
219819 |
|
21-Mar-2011 |
jeff |
- Merge changes to the base system to support OFED. These include a wider arg2 for sysctl, updates to vlan code, IFT_INFINIBAND, and other miscellaneous small features.
|
#
217915 |
|
26-Jan-2011 |
mdf |
Remove the CTLFLAG_NOLOCK as it seems to be both unused and unfunctional. Wiring the user buffer has only been done explicitly since r101422.
Mark the kern.disks sysctl as MPSAFE since it is and it seems to have been mis-using the NOLOCK flag.
Partially break the KPI (but not the KBI) for the sysctl_req 'lock' field since this member should be private and the "REQ_LOCKED" state seems meaningless now.
|
#
217616 |
|
19-Jan-2011 |
mdf |
Introduce signed and unsigned version of CTLTYPE_QUAD, renaming existing uses. Rename sysctl_handle_quad() to sysctl_handle_64().
|
#
217586 |
|
19-Jan-2011 |
mdf |
sysctl(8) should use the CTLTYPE to determine the type of data when reading. (This was already done for writing to a sysctl). This requires all SYSCTL setups to specify a type. Most of them are now checked at compile-time.
Remove SYSCTL_*X* sysctl additions as the print being in hex should be controlled by the -x flag to sysctl(8).
Succested by: bde
|
#
217369 |
|
13-Jan-2011 |
mdf |
Add a 64-bit hex-printed sysctl(9) since there is at least one place in the code that wanted it. It is named X64 rather than XQUAD since the quad name is a historical abomination that should not be perpetuated.
|
#
217328 |
|
12-Jan-2011 |
mdf |
Fix a typo. XLONG should allow pointers to unsigned and signed long.
Submitted by: <bf1783 AT gmail DOT com>
|
#
217313 |
|
12-Jan-2011 |
mdf |
Add type checking for static and dynamic sysctls using scalar types. The code is turned off until the tree is fixed up so it compiles. __FreeBSD_version was already bumped once today, so skip the bump, but add an entry to UPDATING.
Note that __DESCR() is used in the SYSCTL_OID() macro and so is not needed in macros that invoke it. This use was inconsistent in the file and I have made it consistent any lines already being changed.
Reviewed by: bde (previous version), -arch (previous version)
|
#
217239 |
|
10-Jan-2011 |
jhb |
Add a nested include of <sys/linker_set.h> to make the sysctl(9) manpage accurate. <sys/linker_set.h> is one of the very few headers similar to <sys/queue.h> for which nested includes is allowed.
PR: docs/153654 Reviewed by: bde MFC after: 1 month
|
#
216060 |
|
29-Nov-2010 |
mdf |
Do not hold the sysctl lock across a call to the handler. This fixes a general LOR issue where the sysctl lock had no good place in the hierarchy. One specific instance is #284 on http://sources.zabbadoz.net/freebsd/lor.html .
Reviewed by: jhb MFC after: 1 month X-MFC-note: split oid_refcnt field for oid_running to preserve KBI
|
#
215821 |
|
25-Nov-2010 |
attilio |
Add a missing CTL description from CVS revision 1.147.
Sponsored by: Sandvine Incorporated Discussed with: Jeremie Le Hen <jeremie at le-hen dot org> MFC after: 3 days
|
#
212750 |
|
16-Sep-2010 |
mdf |
Re-add r212370 now that the LOR in powerpc64 has been resolved:
Add a drain function for struct sysctl_req, and use it for a variety of handlers, some of which had to do awkward things to get a large enough SBUF_FIXEDLEN buffer.
Note that some sysctl handlers were explicitly outputting a trailing NUL byte. This behaviour was preserved, though it should not be necessary.
Reviewed by: phk (original patch)
|
#
212572 |
|
13-Sep-2010 |
mdf |
Revert r212370, as it causes a LOR on powerpc. powerpc does a few unexpected things in copyout(9) and so wiring the user buffer is not sufficient to perform a copyout(9) while holding a random mutex.
Requested by: nwhitehorn
|
#
212370 |
|
09-Sep-2010 |
mdf |
Add a drain function for struct sysctl_req, and use it for a variety of handlers, some of which had to do awkward things to get a large enough FIXEDLEN buffer.
Note that some sysctl handlers were explicitly outputting a trailing NUL byte. This behaviour was preserved, though it should not be necessary.
Reviewed by: phk
|
#
209875 |
|
10-Jul-2010 |
nwhitehorn |
32-bit sysctl emulation is also interesting on powerpc64.
|
#
204170 |
|
21-Feb-2010 |
ed |
Add proper const keywords to sysctl(3) parameters.
The `name' and `newp' arguments can be marked const, because the buffers they refer to are never changed. While there, perform some other cleanups:
- Remove K&R from sysctl.c. - Implement sysctlbyname() using sysctlnametomib() to prevent duplication of an undocumented kernel interface. - Fix some whitespace nits.
It seems the prototypes are now in sync with NetBSD as well.
|
#
196176 |
|
13-Aug-2009 |
bz |
Make it possible to change the vnet sysctl variables on jails with their own virtual network stack. Jails only inheriting a network stack cannot change anything that cannot be changed from within a prison.
Reviewed by: rwatson, zec Approved by: re (kib)
|
#
195853 |
|
24-Jul-2009 |
brooks |
Introduce a new sysctl process mib, kern.proc.groups which adds the ability to retrieve the group list of each process.
Modify procstat's -s option to query this mib when the kinfo_proc reports that the field has been truncated. If the mib does not exist, fall back to the truncated list.
Reviewed by: rwatson Approved by: re (kib) MFC after: 2 weeks
|
#
195699 |
|
14-Jul-2009 |
rwatson |
Build on Jeff Roberson's linker-set based dynamic per-CPU allocator (DPCPU), as suggested by Peter Wemm, and implement a new per-virtual network stack memory allocator. Modify vnet to use the allocator instead of monolithic global container structures (vinet, ...). This change solves many binary compatibility problems associated with VIMAGE, and restores ELF symbols for virtualized global variables.
Each virtualized global variable exists as a "reference copy", and also once per virtual network stack. Virtualized global variables are tagged at compile-time, placing the in a special linker set, which is loaded into a contiguous region of kernel memory. Virtualized global variables in the base kernel are linked as normal, but those in modules are copied and relocated to a reserved portion of the kernel's vnet region with the help of a the kernel linker.
Virtualized global variables exist in per-vnet memory set up when the network stack instance is created, and are initialized statically from the reference copy. Run-time access occurs via an accessor macro, which converts from the current vnet and requested symbol to a per-vnet address. When "options VIMAGE" is not compiled into the kernel, normal global ELF symbols will be used instead and indirection is avoided.
This change restores static initialization for network stack global variables, restores support for non-global symbols and types, eliminates the need for many subsystem constructors, eliminates large per-subsystem structures that caused many binary compatibility issues both for monitoring applications (netstat) and kernel modules, removes the per-function INIT_VNET_*() macros throughout the stack, eliminates the need for vnet_symmap ksym(2) munging, and eliminates duplicate definitions of virtualized globals under VIMAGE_GLOBALS.
Bump __FreeBSD_version and update UPDATING.
Portions submitted by: bz Reviewed by: bz, zec Discussed with: gnn, jamie, jeff, jhb, julian, sam Suggested by: peter Approved by: re (kensmith)
|
#
194935 |
|
24-Jun-2009 |
jeff |
- Add a sysctl_dpcpu_long to support long typed pcpu stats. - Remove the #ifndef SMP case as the SMP code works on UP as well.
Reviewed by: sam
|
#
194784 |
|
23-Jun-2009 |
jeff |
Implement a facility for dynamic per-cpu variables. - Modules and kernel code alike may use DPCPU_DEFINE(), DPCPU_GET(), DPCPU_SET(), etc. akin to the statically defined PCPU_*. Requires only one extra instruction more than PCPU_* and is virtually the same as __thread for builtin and much faster for shared objects. DPCPU variables can be initialized when defined. - Modules are supported by relocating the module's per-cpu linker set over space reserved in the kernel. Modules may fail to load if there is insufficient space available. - Track space available for modules with a one-off extent allocator. Free may block for memory to allocate space for an extent.
Reviewed by: jhb, rwatson, kan, sam, grehan, marius, marcel, stas
|
#
194252 |
|
15-Jun-2009 |
jamie |
Get vnets from creds instead of threads where they're available, and from passed threads instead of curthread.
Reviewed by: zec, julian Approved by: bz (mentor)
|
#
191915 |
|
08-May-2009 |
zec |
Introduce a new virtualization container, provisionally named vprocg, to hold virtualized instances of hostname and domainname, as well as a new top-level virtualization struct vimage, which holds pointers to struct vnet and struct vprocg. Struct vprocg is likely to become replaced in the near future with a new jail management API import.
As a consequence of this change, change struct ucred to point to a struct vimage, instead of directly pointing to a vnet.
Merge vnet / vimage / ucred refcounting infrastructure from p4 / vimage branch.
Permit kldload / kldunload operations to be executed only from the default vimage context.
This change should have no functional impact on nooptions VIMAGE kernel builds.
Reviewed by: bz Approved by: julian (mentor)
|
#
191688 |
|
30-Apr-2009 |
zec |
Permit buiding kernels with options VIMAGE, restricted to only a single active network stack instance. Turning on options VIMAGE at compile time yields the following changes relative to default kernel build:
1) V_ accessor macros for virtualized variables resolve to structure fields via base pointers, instead of being resolved as fields in global structs or plain global variables. As an example, V_ifnet becomes:
options VIMAGE: ((struct vnet_net *) vnet_net)->_ifnet default build: vnet_net_0._ifnet options VIMAGE_GLOBALS: ifnet
2) INIT_VNET_* macros will declare and set up base pointers to be used by V_ accessor macros, instead of resolving to whitespace:
INIT_VNET_NET(ifp->if_vnet); becomes
struct vnet_net *vnet_net = (ifp->if_vnet)->mod_data[VNET_MOD_NET];
3) Memory for vnet modules registered via vnet_mod_register() is now allocated at run time in sys/kern/kern_vimage.c, instead of per vnet module structs being declared as globals. If required, vnet modules can now request the framework to provide them with allocated bzeroed memory by filling in the vmi_size field in their vmi_modinfo structures.
4) structs socket, ifnet, inpcbinfo, tcpcb and syncache_head are extended to hold a pointer to the parent vnet. options VIMAGE builds will fill in those fields as required.
5) curvnet is introduced as a new global variable in options VIMAGE builds, always pointing to the default and only struct vnet.
6) struct sysctl_oid has been extended with additional two fields to store major and minor virtualization module identifiers, oid_v_subs and oid_v_mod. SYSCTL_V_* family of macros will fill in those fields accordingly, and store the offset in the appropriate vnet container struct in oid_arg1. In sysctl handlers dealing with virtualized sysctls, the SYSCTL_RESOLVE_V_ARG1() macro will compute the address of the target variable and make it available in arg1 variable for further processing.
Unused fields in structs vnet_inet, vnet_inet6 and vnet_ipfw have been deleted.
Reviewed by: bz, rwatson Approved by: julian (mentor)
|
#
189577 |
|
09-Mar-2009 |
imp |
o Add declarations for a few more nodes widely used. o Minor formatting nit.
|
#
188232 |
|
06-Feb-2009 |
jhb |
Expand the scope of the sysctllock sx lock to protect the sysctl tree itself. Back in 1.1 of kern_sysctl.c the sysctl() routine wired the "old" userland buffer for most sysctls (everything except kern.vnode.*). I think to prevent issues with wiring too much memory it used a 'memlock' to serialize all sysctl(2) invocations, meaning that only one user buffer could be wired at a time. In 5.0 the 'memlock' was converted to an sx lock and renamed to 'sysctl lock'. However, it still only served the purpose of serializing sysctls to avoid wiring too much memory and didn't actually protect the sysctl tree as its name suggested. These changes expand the lock to actually protect the tree.
Later on in 5.0, sysctl was changed to not wire buffers for requests by default (sysctl_handle_opaque() will still wire buffers larger than a single page, however). As a result, user buffers are no longer wired as often. However, many sysctl handlers still wire user buffers, so it is still desirable to serialize userland sysctl requests. Kernel sysctl requests are allowed to run in parallel, however.
- Expose sysctl_lock()/sysctl_unlock() routines to exclusively lock the sysctl tree for a few places outside of kern_sysctl.c that manipulate the sysctl tree directly including the kernel linker and vfs_register(). - sysctl_register() and sysctl_unregister() require the caller to lock the sysctl lock using sysctl_lock() and sysctl_unlock(). The rest of the public sysctl API manage the locking internally. - Add a locked variant of sysctl_remove_oid() for internal use so that external uses of the API do not need to be aware of locking requirements. - The kernel linker no longer needs Giant when manipulating the sysctl tree. - Add a missing break to the loop in vfs_register() so that we stop looking at the sysctl MIB once we have changed it.
MFC after: 1 month
|
#
188039 |
|
02-Feb-2009 |
imp |
Use NULL in preference to '0' for pointers.
|
#
187658 |
|
23-Jan-2009 |
jhb |
- Mark all standalone INT/LONG/QUAD sysctl's MPSAFE. This is done inside the SYSCTL() macros and thus does not need to be done for all of the nodes scattered across the source tree. - Mark the name-cache related sysctl's (including debug.hashstat.*) MPSAFE. - Mark vm.loadavg MPSAFE. - Remove GIANT_REQUIRED from vmtotal() (everything in this routine already has sufficient locking) and mark vm.vmtotal MPSAFE. - Mark the vm.stats.(sys|vm).* sysctls MPSAFE.
|
#
187656 |
|
23-Jan-2009 |
jhb |
Add a flag to tag individual sysctl leaf nodes as MPSAFE and thus not needing Giant.
Submitted by: csjp (an older version)
|
#
185895 |
|
10-Dec-2008 |
zec |
Conditionally compile out V_ globals while instantiating the appropriate container structures, depending on VIMAGE_GLOBALS compile time option.
Make VIMAGE_GLOBALS a new compile-time option, which by default will not be defined, resulting in instatiations of global variables selected for V_irtualization (enclosed in #ifdef VIMAGE_GLOBALS blocks) to be effectively compiled out. Instantiate new global container structures to hold V_irtualized variables: vnet_net_0, vnet_inet_0, vnet_inet6_0, vnet_ipsec_0, vnet_netgraph_0, and vnet_gif_0.
Update the VSYM() macro so that depending on VIMAGE_GLOBALS the V_ macros resolve either to the original globals, or to fields inside container structures, i.e. effectively
#ifdef VIMAGE_GLOBALS #define V_rt_tables rt_tables #else #define V_rt_tables vnet_net_0._rt_tables #endif
Update SYSCTL_V_*() macros to operate either on globals or on fields inside container structs.
Extend the internal kldsym() lookups with the ability to resolve selected fields inside the virtualization container structs. This applies only to the fields which are explicitly registered for kldsym() visibility via VNET_MOD_DECLARE() and vnet_mod_register(), currently this is done only in sys/net/if.c.
Fix a few broken instances of MODULE_GLOBAL() macro use in SCTP code, and modify the MODULE_GLOBAL() macro to resolve to V_ macros, which in turn result in proper code being generated depending on VIMAGE_GLOBALS.
De-virtualize local static variables in sys/contrib/pf/net/pf_subr.c which were prematurely V_irtualized by automated V_ prepending scripts during earlier merging steps. PF virtualization will be done separately, most probably after next PF import.
Convert a few variable initializations at instantiation to initialization in init functions, most notably in ipfw. Also convert TUNABLE_INT() initializers for V_ variables to TUNABLE_FETCH_INT() in initializer functions.
Discussed at: devsummit Strassburg Reviewed by: bz, julian Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
|
#
185548 |
|
02-Dec-2008 |
peter |
Merge user/peter/kinfo branch as of r185547 into head.
This changes struct kinfo_filedesc and kinfo_vmentry such that they are same on both 32 and 64 bit platforms like i386/amd64 and won't require sysctl wrapping.
Two new OIDs are assigned. The old ones are available under COMPAT_FREEBSD7 - but it isn't that simple. The superceded interface was never actually released on 7.x.
The other main change is to pack the data passed to userland via the sysctl. kf_structsize and kve_structsize are reduced for the copyout. If you have a process with 100,000+ sockets open, the unpacked records require a 132MB+ copyout. With packing, it is "only" ~35MB. (Still seriously unpleasant, but not quite as devastating). A similar problem exists for the vmentry structure - have lots and lots of shared libraries and small mmaps and its copyout gets expensive too.
My immediate problem is valgrind. It traditionally achieves this functionality by parsing procfs output, in a packed format. Secondly, when tracing 32 bit binaries on amd64 under valgrind, it uses a cross compiled 32 bit binary which ran directly into the differing data structures in 32 vs 64 bit mode. (valgrind uses this to track file descriptor operations and this therefore affected every single 32 bit binary)
I've added two utility functions to libutil to unpack the structures into a fixed record length and to make it a little more convenient to use.
|
#
183550 |
|
02-Oct-2008 |
zec |
Step 1.5 of importing the network stack virtualization infrastructure from the vimage project, as per plan established at devsummit 08/08: http://wiki.freebsd.org/Image/Notes200808DevSummit
Introduce INIT_VNET_*() initializer macros, VNET_FOREACH() iterator macros, and CURVNET_SET() context setting macros, all currently resolving to NOPs.
Prepare for virtualization of selected SYSCTL objects by introducing a family of SYSCTL_V_*() macros, currently resolving to their global counterparts, i.e. SYSCTL_V_INT() == SYSCTL_INT().
Move selected #defines from sys/sys/vimage.h to newly introduced header files specific to virtualized subsystems (sys/net/vnet.h, sys/netinet/vinet.h etc.).
All the changes are verified to have zero functional impact at this point in time by doing MD5 comparision between pre- and post-change object files(*).
(*) netipsec/keysock.c did not validate depending on compile time options.
Implemented by: julian, bz, brooks, zec Reviewed by: julian, bz, brooks, kris, rwatson, ... Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
|
#
181890 |
|
20-Aug-2008 |
julian |
Fix wierd integration error No idea where this came from
|
#
181888 |
|
19-Aug-2008 |
julian |
Fix some of the formatting fixes.. It's amazing how some thing stand out in a commit message.
|
#
181887 |
|
19-Aug-2008 |
julian |
A bunch of formatting fixes brough to light by, or created by the Vimage commit a few days ago.
|
#
180661 |
|
21-Jul-2008 |
pjd |
Implement the following macros for completeness:
SYSCTL_QUAD() SYSCTL_ADD_QUAD() TUNABLE_QUAD() TUNABLE_QUAD_FETCH()
Now we can use 64bit tunables on 32bit systems.
|
#
178272 |
|
17-Apr-2008 |
jeff |
- Make SCHED_STATS more generic by adding a wrapper to create the variables and sysctl nodes. - In reset walk the children of kern_sched_stats and reset the counters via the oid_arg1 pointer. This allows us to add arbitrary counters to the tree and still reset them properly. - Define a set of switch types to be passed with flags to mi_switch(). These types are named SWT_*. These types correspond to SCHED_STATS counters and are automatically handled in this way. - Make the new SWT_ types more specific than the older switch stats. There are now stats for idle switches, remote idle wakeups, remote preemption ithreads idling, etc. - Add switch statistics for ULE's pickcpu algorithm. These stats include how much migration there is, how often affinity was successful, how often threads were migrated to the local cpu on wakeup, etc.
Sponsored by: Nokia
|
#
177435 |
|
20-Mar-2008 |
jeff |
- Restore runq to manipulating threads directly by putting runq links and rqindex back in struct thread. - Compile kern_switch.c independently again and stop #include'ing it from schedulers. - Remove the ts_thread backpointers and convert most code to go from struct thread to struct td_sched. - Cleanup the ts_flags #define garbage that was causing us to sometimes do things that expanded to td->td_sched->ts_thread->td_flags in 4BSD. - Export the kern.sched sysctl node in sysctl.h
|
#
175019 |
|
31-Dec-2007 |
jhb |
Add very basic support for the kernel to export a list of features. Each feature is represented by a node in the new 'kern.features' sysctl node. A feature is present if the corresponding node is present and evaluates to true.
A FEATURE() wrapper macro is added which takes the sysctl node name and a description of the feature as the sole arguments and creates a read-only sysctl node with a value of 1.
Discussed on: arch
|
#
174197 |
|
02-Dec-2007 |
rwatson |
Add another new sysctl in support of the forthcoming procstat(1) to support its -k argument:
kern.proc.kstack - dump the kernel stack of a process, if debugging is permitted.
This sysctl is present if either "options DDB" or "options STACK" is compiled into the kernel. Having support for tracing the kernel stacks of processes from user space makes it much easier to debug (or understand) specific wmesg's while avoiding the need to enter DDB in order to determine the path by which a process came to be blocked on a particular wait channel or lock.
|
#
174167 |
|
02-Dec-2007 |
rwatson |
Add two new sysctls in support of the forthcoming procstat(1) to support its -f and -v arguments:
kern.proc.filedesc - dump file descriptor information for a process, if debugging is permitted, including socket addresses, open flags, file offsets, file paths, etc.
kern.proc.vmmap - dump virtual memory mapping information for a process, if debugging is permitted, including layout and information on underlying objects, such as the type of object and path.
These provide a superset of the information historically available through the now-deprecated procfs(4), and are intended to be exported in an ABI-robust form.
|
#
174113 |
|
30-Nov-2007 |
peter |
Add sysctl_rename_oid() to support device_set_unit() usage. Otherwise, when unit numbers are changed, the sysctl devinfo tree gets out of sync and duplicate trees are attempted to be attached with the original name.
|
#
172702 |
|
16-Oct-2007 |
ru |
Rescue hw.machine_arch in CTL_HW_NAMES.
|
#
172674 |
|
15-Oct-2007 |
netchild |
Backout sensors framework.
Requested by: phk Discussed on: cvs-all
|
#
172631 |
|
14-Oct-2007 |
netchild |
Import OpenBSD's sysctl hardware sensors framework.
This commit includes the following core components:
* sample configuration file for sensorsd * rc(8) script and glue code for sensorsd(8) * sysctl(3) doc fixes for CTL_HW tree * sysctl(3) documentation for hardware sensors * sysctl(8) documentation for hardware sensors * support for the sensor structure for sysctl(8) * rc.conf(5) documentation for starting sensorsd(8) * sensor_attach(9) et al documentation * /sys/kern/kern_sensors.c o sensor_attach(9) API for drivers to register ksensors o sensor_task_register(9) API for the update task o sysctl(3) glue code o hw.sensors shadow tree for sysctl(8) internal magic * <sys/sensors.h> * HW_SENSORS definition for <sys/sysctl.h> * sensors display for systat(1), including documentation * sensorsd(8) and all applicable documentation
The userland part of the framework is entirely source-code compatible with OpenBSD 4.1, 4.2 and -current as of today.
All sensor readings can be viewed with `sysctl hw.sensors`, monitored in semi-realtime with `systat -sensors` and also logged with `sensorsd`.
Submitted by: Constantine A. Murenin <cnst@FreeBSD.org> Sponsored by: Google Summer of Code 2007 (GSoC2007/cnst-sensors) Mentored by: syrinx Tested by: many OKed by: kensmith Obtained from: OpenBSD (parts)
|
#
170288 |
|
04-Jun-2007 |
dwmalone |
Add a function for exporting 64 bit types.
|
#
169727 |
|
19-May-2007 |
kan |
Add kern.arnd sysctl. SSP code uses it to initialize the stack guard magic value.
Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
|
#
168545 |
|
09-Apr-2007 |
pjd |
Add kern.hostuuid sysctl, which will be used to keep host's UUID.
Reviewed by: mlaier, rink, brooks, rwatson
|
#
162383 |
|
17-Sep-2006 |
rwatson |
Declare security and security.bsd sysctl hierarchies in sysctl.h along with other commonly used sysctl name spaces, rather than declaring them all over the place.
MFC after: 1 month Sponsored by: nCircle Network Security, Inc.
|
#
161492 |
|
21-Aug-2006 |
alc |
Add _vm_stats and _vm_stats_misc to the sysctl declarations in sysctl.h and eliminate their declarations from various source files.
|
#
161256 |
|
12-Aug-2006 |
obrien |
Add an extension to the UINT & ULONG types. The XINT & XLONG types behave the same, except sysctl(8) will print out the values in hex.
|
#
160469 |
|
18-Jul-2006 |
imp |
Add new kernel config option. NO_SYSCTL_DESCR to omit the descriptions for the sysctls. This saves a lot of space in the resulting kernel which is important for embedded systems. This change was done in a ABI compatible way. The pointer is still there, it just points to an empty string instead of the description.
MFC After: 3 days
|
#
159481 |
|
10-Jun-2006 |
rwatson |
Move some functions and definitions from uipc_socket2.c to uipc_socket.c:
- Move sonewconn(), which creates new sockets for incoming connections on listen sockets, so that all socket allocate code is together in uipc_socket.c.
- Move 'maxsockets' and associated sysctls to uipc_socket.c with the socket allocation code.
- Move kern.ipc sysctl node to uipc_socket.c, add a SYSCTL_DECL() for it to sysctl.h and remove lots of scattered implementations in various IPC modules.
- Sort sodealloc() after soalloc() in uipc_socket.c for dependency order reasons. Statisticize soalloc() and sodealloc() as they are now required only in uipc_socket.c, and are internal to the socket implementation.
After this change, socket allocation and deallocation is entirely centralized in one file, and uipc_socket2.c consists entirely of socket buffer manipulation and default protocol switch functions.
MFC after: 1 month
|
#
157157 |
|
26-Mar-2006 |
rwatson |
Declare regression subtree in sysctl.h so that components outside of kern_mib.c can easily add regression sysctls.
MFC after: 1 month
|
#
155758 |
|
16-Feb-2006 |
andre |
Make sysctl_msec_to_ticks(SYSCTL_HANDLER_ARGS) generally available instead of being private to tcp_timer.c.
Sponsored by: TCP/IP Optimization Fundraise 2005 MFC after: 3 days
|
#
145216 |
|
18-Apr-2005 |
das |
Add a sysctl that returns the full path of a process' text file. This information is needed by things like `gdb -p' and Sun's javac, and previously it could only be obtained via procfs
|
#
144071 |
|
24-Mar-2005 |
phk |
Move implementation of hw.bus.rman sysctl to subr_rman.c so that subr_bus.c doesn't need to peek inside struct resource.
OK from: imp
|
#
142834 |
|
28-Feb-2005 |
wes |
Add a sysctl that records the amount of physical memory in the machine.
Submitted by: Nicko Dehaine <nicko@stbernard.com> MFC after: 1 day
|
#
141433 |
|
07-Feb-2005 |
phk |
Add a missing prefix to a struct field for consistency.
|
#
139825 |
|
07-Jan-2005 |
imp |
/* -> /*- for license, minor formatting changes
|
#
136404 |
|
11-Oct-2004 |
peter |
Put on my peril sensitive sunglasses and add a flags field to the internal sysctl routines and state. Add some code to use it for signalling the need to downconvert a data structure to 32 bits on a 64 bit OS when requested by a 32 bit app.
I tried to do this in a generic abi wrapper that intercepted the sysctl oid's, or looked up the format string etc, but it was a real can of worms that turned into a fragile mess before I even got it partially working.
With this, we can now run 'sysctl -a' on a 32 bit sysctl binary and have it not abort. Things like netstat, ps, etc have a long way to go.
This also fixes a bug in the kern.ps_strings and kern.usrstack hacks. These do matter very much because they are used by libc_r and other things.
|
#
132784 |
|
28-Jul-2004 |
kan |
Introduce SYSCTL_CHILDREN_SET macro which can be used in place of cast as a value.
|
#
130725 |
|
19-Jun-2004 |
gad |
Define a KERN_PROC_GID option for kvm_getprocs().
Submitted by: Cyrille Lefevre
|
#
130585 |
|
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
#
129597 |
|
22-May-2004 |
gad |
Define a KERN_PROC_RGID option for kvm_getprocs().
Submitted by: Cyrille Lefevre
|
#
127976 |
|
07-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
#
127052 |
|
16-Mar-2004 |
truckman |
Rename the wiredlen member of struct sysctl_req to validlen and always set it to avoid the need for a bunch of code that tests whether or not the lock member is set to REQ_WIRED in order to determine which length member should be used.
Fix another bug in the oldlen return value code.
Fix a potential wired memory leak if a sysctl handler uses sysctl_wire_old_buffer() and returns an EAGAIN error to trigger a retry.
|
#
126319 |
|
27-Feb-2004 |
des |
Add sysctl_move_oid() which reparents an existing OID.
|
#
126293 |
|
26-Feb-2004 |
des |
Bump CTL_MAXNAME from 12 to 24.
|
#
126253 |
|
25-Feb-2004 |
truckman |
Split the mlock() kernel code into two parts, mlock(), which unpacks the syscall arguments and does the suser() permission check, and kern_mlock(), which does the resource limit checking and calls vm_map_wire(). Split munlock() in a similar way.
Enable the RLIMIT_MEMLOCK checking code in kern_mlock().
Replace calls to vslock() and vsunlock() in the sysctl code with calls to kern_mlock() and kern_munlock() so that the sysctl code will obey the wired memory limits.
Nuke the vslock() and vsunlock() implementations, which are no longer used.
Add a member to struct sysctl_req to track the amount of memory that is wired to handle the request.
Modify sysctl_wire_old_buffer() to return an error if its call to kern_mlock() fails. Only wire the minimum of the length specified in the sysctl request and the length specified in its argument list. It is recommended that sysctl handlers that use sysctl_wire_old_buffer() should specify reasonable estimates for the amount of data they want to return so that only the minimum amount of memory is wired no matter what length has been specified by the request.
Modify the callers of sysctl_wire_old_buffer() to look for the error return.
Modify sysctl_old_user to obey the wired buffer length and clean up its implementation.
Reviewed by: bms
|
#
126125 |
|
22-Feb-2004 |
deischen |
Add sysctls to allow showing threads for pgrp, tty, uid, ruid, and pid.
|
#
122707 |
|
14-Nov-2003 |
trhodes |
Fix a typo in a comment: sysctl(1) should be sysctl(8).
|
#
121305 |
|
21-Oct-2003 |
silby |
Add another sysctl flag, CTLFLAG_TUN, which is a hint to the userland sysctl that a given variable is tunable.
Also added is CTLFLAG_RDTUN, which is CTLFLAG_RD|CTLFLAG_TUN; TUN does not always imply read-only, so RDTUN should be used where RD was used before.
|
#
120781 |
|
05-Oct-2003 |
bms |
Remove magic numbers surrounding locking state in the sysctl module, and replace them with more meaningful defines.
|
#
119212 |
|
21-Aug-2003 |
eivind |
Replace 'OS release date' with 'kernel release date' here, too.
Reminded by: ru
|
#
117464 |
|
12-Jul-2003 |
robert |
Make the system call vector name of a process accessible to user land applications by introducing the KERN_PROC_SV_NAME sysctl node, which is searchable by PID.
|
#
116261 |
|
12-Jun-2003 |
scottl |
Add KERN_PROC_PROC for returning only processes, not threads.
|
#
116105 |
|
09-Jun-2003 |
jmallett |
Attempt to fix Alpha build by renaming ident[] to kern_ident[].
|
#
116090 |
|
09-Jun-2003 |
jmallett |
Expose kern.ident by way of OID_AUTO.
Requested by: phk
|
#
116085 |
|
09-Jun-2003 |
jmallett |
Make kernel identification (`ident' in the config(8) driver) available to userland, and the kernel. In the kernel by way of the 'ident[]' variable akin to all the other stuff generated by newvers.sh. In userland it is available to sysctl consumers via KERN_IDENT or 'kern.ident'. It is exported by uname(1) by the -i flag.
Reviewed by: hackers@
|
#
112744 |
|
28-Mar-2003 |
robert |
Sysctl treats `long' and `unsigned long' differently - fix a comment.
|
#
109246 |
|
14-Jan-2003 |
dillon |
Introduce the ability to flag a sysctl for operation at secure level 2 or 3 in addition to secure level 1. The mask supports up to a secure level of 8 but only add defines through CTLFLAG_SECURE3 for now.
As per the missif in the log entry for 1.11 of ip_fw2.c which added the secure flag to the IPFW sysctl's in the first place, change the secure level requirement from 1 to 3 now that we have support for it.
Reviewed by: imp With Design Suggestions by: imp
|
#
108649 |
|
04-Jan-2003 |
jake |
Use a separate macro to generate the name of the sysctl_oid_list that holds the children of a sysctl node, so that the arguments to the SYSCTL_NODE macro can themselves be macros. It would be nice to use __CONCAT throughout this file, but the macros are so large that it quickly becomes unweildly, (4 nested __CONCATs).
|
#
105582 |
|
20-Oct-2002 |
phk |
Always put the "access" macro argument in (), it might be an expression.
This is a purely stylistic change.
|
#
104624 |
|
07-Oct-2002 |
mike |
Remove unneeded <sys/_posix.h> include.
|
#
101650 |
|
10-Aug-2002 |
mux |
Introduce a new sysctl flag, CTLFLAG_SKIP, which will cause sysctl_sysctl_next() to skip this sysctl. The sysctl is still available, but doesn't appear in a "sysctl -a".
This is especially useful when you want to deprecate a sysctl, and add a warning into it to warn users that they are using an old interface. Without this flag, the warning would get echoed when running "sysctl -a" (which happens at boot).
|
#
100487 |
|
22-Jul-2002 |
truckman |
Provide a way for sysctl handlers to pre-wire their output buffer before they grab a lock so that they don't block in SYSCTL_OUT() with the lock being held.
|
#
100113 |
|
15-Jul-2002 |
markm |
Fix a bazillion lint and WARNS warnings. One major fix is the removal of semicolons from the end of macros:
#define FOO() bar(a,b,c);
becomes
#define FOO() bar(a,b,c)
Thus requiring the semicolon in the invocation of FOO. This is much cleaner syntax and more consistent with expectations when writing function-like things in source.
With both peril-sensitive sunglasses and flame-proof undies on, tighten up some types, and work around some warnings generated by this. There are some _horrible_ const/non-const issues in this code.
|
#
96755 |
|
16-May-2002 |
trhodes |
More s/file system/filesystem/g
|
#
93496 |
|
31-Mar-2002 |
phk |
Here follows the new kernel dumping infrastructure.
Caveats:
The new savecore program is not complete in the sense that it emulates enough of the old savecores features to do the job, but implements none of the options yet.
I would appreciate if a userland hacker could help me out getting savecore to do what we want it to do from a users point of view, compression, email-notification, space reservation etc etc. (send me email if you are interested).
Currently, savecore will scan all devices marked as "swap" or "dump" in /etc/fstab _or_ any devices specified on the command-line.
All architectures but i386 lack an implementation of dumpsys(), but looking at the i386 version it should be trivial for anybody familiar with the platform(s) to provide this function.
Documentation is quite sparse at this time, more to come.
Details:
ATA and SCSI drivers should work as the dump formatting code has been removed. The IDA, TWE and AAC have not yet been converted.
Dumpon now opens the device and uses ioctl(DIOCGKERNELDUMP) to set the device as dumpdev. To implement the "off" argument, /dev/null is used as the device.
Savecore will fail if handed any options since they are not (yet) implemented. All devices marked "dump" or "swap" in /etc/fstab will be scanned and dumps found will be saved to diskfiles named from the MD5 hash of the header record. The header record is dumped in readable format in the .info file. The kernel is not saved. Only complete dumps will be saved.
All maintainer rights for this code are disclaimed: feel free to improve and extend.
Sponsored by: DARPA, NAI Labs
|
#
92719 |
|
19-Mar-2002 |
alfred |
Remove __P
|
#
91687 |
|
05-Mar-2002 |
phk |
Move sysctl debug.sizeof into sys/sysctl.h where it belongs.
|
#
88006 |
|
16-Dec-2001 |
luigi |
Add code to export and print the description associated to sysctl variables. Use the -d flag in sysctl(8) to see this information.
Possible extensions to sysctl: + report variables that do not have a description + given a name, report the oid it maps to.
Note to developers: have a look at your code, there are a number of variables which do not have a description.
Note to developers: do we want this in 4.5 ? It is a very small change and very useful for documentation purposes.
Suggested by: Orion Hodson
|
#
86183 |
|
08-Nov-2001 |
rwatson |
o Replace reference to 'struct proc' with 'struct thread' in 'struct sysctl_req', which describes in-progress sysctl requests. This permits sysctl handlers to have access to the current thread, permitting work on implementing td->td_ucred, migration of suser() to using struct thread to derive the appropriate ucred, and allowing struct thread to be passed down to other code, such as network code where td is not currently available (and curproc is used).
o Note: netncp and netsmb are not updated to reflect this change, as they are not currently KSE-adapted.
Reviewed by: julian Obtained from: TrustedBSD Project
|
#
83366 |
|
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
#
80339 |
|
25-Jul-2001 |
roam |
Make dynamic sysctl entries start at 0x100, not decimal 100 - there are static entries with oid's over 100, and defining enough dynamic entries causes an overlap.
Move the "magic" value 0x100 into <sys/sysctl.h> where it belongs.
PR: 29131 Submitted by: "Alexander N. Kabaev" <kabaev@mail.ru> Reviewed by: -arch, -audit MFC after: 2 weeks
|
#
78592 |
|
22-Jun-2001 |
bmilekic |
Introduce numerous SMP friendly changes to the mbuf allocator. Namely, introduce a modified allocation mechanism for mbufs and mbuf clusters; one which can scale under SMP and which offers the possibility of resource reclamation to be implemented in the future. Notable advantages:
o Reduce contention for SMP by offering per-CPU pools and locks. o Better use of data cache due to per-CPU pools. o Much less code cache pollution due to excessively large allocation macros. o Framework for `grouping' objects from same page together so as to be able to possibly free wired-down pages back to the system if they are no longer needed by the network stacks.
Additional things changed with this addition:
- Moved some mbuf specific declarations and initializations from sys/conf/param.c into mbuf-specific code where they belong. - m_getclr() has been renamed to m_get_clrd() because the old name is really confusing. m_getclr() HAS been preserved though and is defined to the new name. No tree sweep has been done "to change the interface," as the old name will continue to be supported and is not depracated. The change was merely done because m_getclr() sounds too much like "m_get a cluster." - TEMPORARILY disabled mbtypes statistics displaying in netstat(1) and systat(1) (see TODO below). - Fixed systat(1) to display number of "free mbufs" based on new per-CPU stat structures. - Fixed netstat(1) to display new per-CPU stats based on sysctl-exported per-CPU stat structures. All infos are fetched via sysctl.
TODO (in order of priority):
- Re-enable mbtypes statistics in both netstat(1) and systat(1) after introducing an SMP friendly way to collect the mbtypes stats under the already introduced per-CPU locks (i.e. hopefully don't use atomic() - it seems too costly for a mere stat update, especially when other locks are already present). - Optionally have systat(1) display not only "total free mbufs" but also "total free mbufs per CPU pool." - Fix minor length-fetching issues in netstat(1) related to recently re-enabled option to read mbuf stats from a core file. - Move reference counters at least for mbuf clusters into an unused portion of the cluster itself, to save space and need to allocate a counter. - Look into introducing resource freeing possibly from a kproc.
Reviewed by (in parts): jlemon, jake, silby, terry Tested by: jlemon (Intel & Alpha), mjacob (Intel & Alpha) Preliminary performance measurements: jlemon (and me, obviously) URL: http://people.freebsd.org/~bmilekic/mb_alloc/
|
#
78435 |
|
18-Jun-2001 |
pirzyk |
Added CTLTYPE_{UINT|LONG|ULONG} types.
PR: kern/21132 Reviewed by: no objections to by -arch MFC after: 1 month
|
#
78431 |
|
18-Jun-2001 |
wollman |
After one too many PRs on the subject, bite the bullet and define IOV_MAX and its associated constants. Implement _SC_IOV_MAX in the usual way. Be a bit sloppy about the namespace question; this should get cleared up in time for 5.0.
MFC after: 1 month
|
#
78161 |
|
13-Jun-2001 |
peter |
With this commit, I hereby pronounce gensetdefs past its use-by date.
Replace the a.out emulation of 'struct linker_set' with something a little more flexible. <sys/linker_set.h> now provides macros for accessing elements and completely hides the implementation.
The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it).
The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *.
For ELF, we use the magic ld symbols (__start_<setname> and __stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the trick about how to force ld to provide them for kld's.
For a.out, we use the old linker_set struct.
NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas.
The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use.
linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day.
Reviewed by: eivind
|
#
77968 |
|
10-Jun-2001 |
des |
Explicitly initialize the reference count to 0. This silences a warning with -Wno-uninitialized.
|
#
76834 |
|
19-May-2001 |
jlemon |
Add convenience function kernel_sysctlbyname() for kernel consumers, so they don't have to roll their own sysctlbyname function.
|
#
76753 |
|
17-May-2001 |
ru |
Cosmetics to rev.1.89: removed argument names in a function prototype.
|
#
72857 |
|
22-Feb-2001 |
jhb |
Convert an instance of 8 spaces to a tab.
|
#
71410 |
|
23-Jan-2001 |
mckusick |
Add function prototype for libc function sysctlnametomib()
|
#
70679 |
|
05-Jan-2001 |
jhb |
- For dynamic sysctl's added at runtime, don't assume that the name passed to the SYSCTL_ADD_FOO() macros is a constant that should be turned into a string via the pre-processor. Instead, require it to be an explicit string so that names can be generated on the fly. - Make some of the char * arguments to sysctl_add_oid() const to quiet warnings.
|
#
63212 |
|
15-Jul-2000 |
abial |
These patches implement dynamic sysctls. It's possible now to add and remove sysctl oids at will during runtime - they don't rely on linker sets. Also, the node oids can be referenced by more than one kernel user, which means that it's possible to create partially overlapping trees.
Add sysctl contexts to help programmers manage multiple dynamic oids in convenient way.
Please see the manpages for detailed discussion, and example module for typical use.
This work is based on ideas and code snippets coming from many people, among them: Arun Sharma, Jonathan Lemon, Doug Rabson, Brian Feldman, Kelly Yancey, Poul-Henning Kamp and others. I'd like to specially thank Brian Feldman for detailed review and style fixes.
PR: kern/16928 Reviewed by: dfr, green, phk
|
#
62622 |
|
05-Jul-2000 |
jhb |
Support for unsigned integer and long sysctl variables. Update the SYSCTL_LONG macro to be consistent with other integer sysctl variables and require an initial value instead of assuming 0. Update several sysctl variables to use the unsigned types.
PR: 15251 Submitted by: Kelly Yancey <kbyanc@posi.net>
|
#
62573 |
|
04-Jul-2000 |
phk |
Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.
Pointed out by: bde
|
#
62454 |
|
03-Jul-2000 |
phk |
Style police catches up with rev 1.26 of src/sys/sys/sysctl.h:
Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our sources:
-sysctl_vm_zone SYSCTL_HANDLER_ARGS +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
|
#
60938 |
|
26-May-2000 |
jake |
Back out the previous change to the queue(3) interface. It was not discussed and should probably not happen.
Requested by: msmith and others
|
#
60833 |
|
23-May-2000 |
jake |
Change the way that the queue(3) structures are declared; don't assume that the type argument to *_HEAD and *_ENTRY is a struct.
Suggested by: phk Reviewed by: phk Approved by: mdodd
|
#
57119 |
|
10-Feb-2000 |
rwatson |
Fix sysctl namespace for jail: move the kern.jailcansethostname to kern.prison.set_hostname_allowed, off of the kern.prison node. Future jail twiddles should be placed in this namespace.
|
#
57111 |
|
10-Feb-2000 |
rwatson |
Introduce a new sysctl, kern.jailcansethostname, which determines whether or not a process in a jail, with privilege, may set the jail's hostname. Defaults to 1, which permits this. May be set to 0 by a process with appropriate privilege outside of jail. Preventing hostname renaming from within a jail is currently required to make jails manageable, as they a currently identifiable only by hostname using /proc, which may be modified without this sysctl being set to 0. This will be documented in upcoming man commits.
Authorized by: jkh, the ever-patient
|
#
55205 |
|
29-Dec-1999 |
peter |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
#
53977 |
|
01-Dec-1999 |
green |
Separate some common sysctl code into sysctl_find_oid() and calling thereof. Also, make the errno returns _correct_, and add a new one which is more appropriate.
|
#
53239 |
|
16-Nov-1999 |
phk |
Introduce commandline caching in the kernel.
This fixes some nasty procfs problems for SMP, makes ps(1) run much faster, and makes ps(1) even less dependent on /proc which will aid chroot and jails alike.
To disable this facility and revert to previous behaviour: sysctl -w kern.ps_arg_cache_limit=0
For full details see the current@FreeBSD.org mail-archives.
|
#
50520 |
|
28-Aug-1999 |
phk |
#include <sys/queue.h>
|
#
50477 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
50465 |
|
27-Aug-1999 |
marcel |
Add sysctl variables for the Linuxulator. These reside under `compat.linux' as discussed on current.
The following variables are defined (for now):
osname (defaults to "Linux") Allow users to change the name of the OS as returned by uname(2), specially added for all those Linux Netscape users and statistics maniacs :-) We now have what we all wanted!
osrelease (defaults to "2.2.5") Allow users to change the version of the OS as returned by uname(2). Since -current supports glibc2.1 now, change the default to 2.2.5 (was 2.0.36).
oss_version (defaults to 198144 [0x030600]) This one will be used by the OSS_GETVERSION ioctl (PR 12917) which I can commit now that we have the MIB. The default version number is the lowest version possible with the current 'encoding'.
A note about imprisoned processes (see jail(2)): These variables are copy-on-write (as suggested by phk). This means that imprisoned processes will use the system wide value unless it is written/set by the process. From that moment on, a copy local to the prison will be used.
A note about the implementation: I choose to add a single pointer to struct prison, because I didn't like the idea of changing struct prison every time I come up with a new variable. As a side effect, the extra storage is only needed when a variable is set from within the prison. This also minimizes kernel bloat when the Linuxulator is not used; both compiled in or as a module.
Reviewed by: bde (first version only) and phk
|
#
46155 |
|
28-Apr-1999 |
phk |
This Implements the mumbled about "Jail" feature.
This is a seriously beefed up chroot kind of thing. The process is jailed along the same lines as a chroot does it, but with additional tough restrictions imposed on what the superuser can do.
For all I know, it is safe to hand over the root bit inside a prison to the customer living in that prison, this is what it was developed for in fact: "real virtual servers".
Each prison has an ip number associated with it, which all IP communications will be coerced to use and each prison has its own hostname.
Needless to say, you need more RAM this way, but the advantage is that each customer can run their own particular version of apache and not stomp on the toes of their neighbors.
It generally does what one would expect, but setting up a jail still takes a little knowledge.
A few notes:
I have no scripts for setting up a jail, don't ask me for them.
The IP number should be an alias on one of the interfaces.
mount a /proc in each jail, it will make ps more useable.
/proc/<pid>/status tells the hostname of the prison for jailed processes.
Quotas are only sensible if you have a mountpoint per prison.
There are no privisions for stopping resource-hogging.
Some "#ifdef INET" and similar may be missing (send patches!)
If somebody wants to take it from here and develop it into more of a "virtual machine" they should be most welcome!
Tools, comments, patches & documentation most welcome.
Have fun...
Sponsored by: http://www.rndassociates.com/ Run for almost a year by: http://www.servetheweb.com/
|
#
44331 |
|
28-Feb-1999 |
dt |
Add forward-declaration of struct linker_set, to fix a few warnings.
|
#
44078 |
|
16-Feb-1999 |
dfr |
* Change sysctl from using linker_set to construct its tree using SLISTs. This makes it possible to change the sysctl tree at runtime.
* Change KLD to find and register any sysctl nodes contained in the loaded file and to unregister them when the file is unloaded.
Reviewed by: Archie Cobbs <archie@whistle.com>, Peter Wemm <peter@netplex.com.au> (well they looked at it anyway)
|
#
42467 |
|
10-Jan-1999 |
phk |
Back out last change to sysctl.
It was nay'ed before committing on the grounds that this is not the way to do it, and has been decided as such several times in the past.
There is not point in loading gobs of ascii into the kernel when the only use of that ascii is presentation to the user.
Next thing we'd be adding all section 4 man pages to the loaded kernel as well.
The argument about KLD's is bogus, klds can store a file in /usr/share/doc/sysctl/dev/foo/thisvar.txt with a description and sysctl or other facilities can pick it up there.
Proper documentation will take several K worth of text for many sysctl variables, we don't want that in the kernel under any circumstances.
I will welcome any well thought out attempt at improving the situation wrt. sysctl documentation, but this wasn't it.
|
#
42466 |
|
10-Jan-1999 |
des |
Add kernel support for sysctl descriptions. The NO_SYSCTL_DESCRIPTIONS option disables them if they're not wanted; in that case, sysctl_sysctl_descr will always return an empty string.
Apporved by: jkh
|
#
42095 |
|
27-Dec-1998 |
dfr |
Fix some 64bit truncation problems which crept into SYSCTL_LONG() with the last cleanup. Since the oid_arg2 field of struct sysctl_oid is not wide enough to hold a long, the SYSCTL_LONG() macro has been modified to only support exporting long variables by pointer instead of by value.
Reviewed by: bde
|
#
41870 |
|
16-Dec-1998 |
bde |
Removed all traces of SYSCTL_INTPTR(). Pointers can't really be passed across the kernel -> application interface, and for the one sysctl where they were passed and actually used (kern.ps_strings), the applications want addresses represented as u_longs anyway (the other sysctl that passed them, kern.usrstack, has never been used).
Agreed to by: dfr, phk
|
#
41728 |
|
13-Dec-1998 |
truckman |
Add a generic flag, CTLFLAG_SECURE, which can be used to mark a sysctl variable unwriteable when securelevel > 0. Reviewed by: jdp, eivind
|
#
38869 |
|
05-Sep-1998 |
bde |
Ignore the statically configured vfs type numbers and assign vfs type numbers in vfs attach order (modulo incomplete reuse of old numbers after vfs LKMs are unloaded). This requires reinitializing the sysctl tree (or at least the vfs subtree) for vfs's that support sysctls (currently only nfs). sysctl_order() already handled reinitialization reasonably except it checked for annulled self references in the wrong place.
Fixed sysctls for vfs LKMs.
|
#
38863 |
|
05-Sep-1998 |
bde |
Sysctl nodes are written to, so don't put them in the text section.
Our write protection of the kernel text on i386's doesn't actually work in many cases: - use of the 4MB page completely breaks it. - CR0_WP isn't set until just before init is started, so the kernel text is not write protected during kernel initialization.
|
#
38859 |
|
05-Sep-1998 |
bde |
Don't comment out dead code. Remove it.
Fixed disgustingly long lines.
Improved English in some comments.
|
#
38517 |
|
24-Aug-1998 |
dfr |
Change various syscalls to use size_t arguments instead of u_int.
Add some overflow checks to read/write (from bde).
Change all modifications to vm_page::flags, vm_page::busy, vm_object::flags and vm_object::paging_in_progress to use operations which are not interruptable.
Reviewed by: Bruce Evans <bde@zeta.org.au>
|
#
37931 |
|
28-Jul-1998 |
joerg |
Make the logging of abnormally exiting processes optional by a sysctl. PR: kern/1711 Submitted by: Nick Sayer <nsayer@kfu.com>
|
#
35413 |
|
24-Apr-1998 |
dg |
Added kern.ipc.nmbclusters
|
#
34925 |
|
28-Mar-1998 |
dufault |
Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and _KPOSIX_PRIORITY_SCHEDULING options to work. Changes:
Change all "posix4" to "p1003_1b". Misnamed files are left as "posix4" until I'm told if I can simply delete them and add new ones;
Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;
Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;
Add options to LINT;
Minor fixes to P1003_1B code during testing.
|
#
34030 |
|
04-Mar-1998 |
dufault |
Reviewed by: msmith, bde long ago POSIX.4 headers and sysctl variables. Nothing should change unless POSIX4 is defined or _POSIX_VERSION is set to 199309.
|
#
29210 |
|
07-Sep-1997 |
bde |
Removed trailing semicolons from the definitions of the sysctl declaration macros so that a semicolon can be added when the macros are invoked without giving a (pedantic) syntax error. Invocations need to be followed by a semicolon so that programs like indent and gtags don't get confused.
Fixed the one invocation that wasn't followed by a trailing semicolon.
|
#
29179 |
|
07-Sep-1997 |
bde |
Some staticized variables were still declared to be extern.
|
#
28885 |
|
29-Aug-1997 |
kato |
Added a sysctl arg, hw.machine_arch. The hw.machine_arch is "ibm-pc" on IBM-PC box and is "pc-98" on NEC PC-98 box. Userland program can distinguish architecture on which the program runs.
|
#
27342 |
|
12-Jul-1997 |
peter |
What the heck, declare the sysctlbyname() first arg const.
|
#
27341 |
|
12-Jul-1997 |
peter |
Add a proto for sysctlbyname()
|
#
23083 |
|
24-Feb-1997 |
wollman |
Add new kern.ipc MIB branch constants and mbuf stats.
|
#
22975 |
|
22-Feb-1997 |
peter |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
22521 |
|
10-Feb-1997 |
dyson |
This is the kernel Lite/2 commit. There are some requisite userland changes, so don't expect to be able to run the kernel as-is (very well) without the appropriate Lite/2 userland changes.
The system boots and can mount UFS filesystems.
Untested: ext2fs, msdosfs, NFS Known problems: Incorrect Berkeley ID strings in some files. Mount_std mounts will not work until the getfsent library routine is changed.
Reviewed by: various people Submitted by: Jeffery Hsu <hsu@freebsd.org>
|
#
21673 |
|
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
19268 |
|
30-Oct-1996 |
julian |
if there is no console, cngetc should act like getc and return -1
make callers aware of this in those cases where it can occur.
|
#
18951 |
|
15-Oct-1996 |
julian |
Add support for embedded operation withou console The boot.c patch is applied only to teh JULIAN_HACK branch the muted console is controlable by a sysctl variable kern.consmute
|
#
18787 |
|
07-Oct-1996 |
pst |
Increase robustness of FreeBSD against high-rate connection attempt denial of service attacks.
Reviewed by: bde,wollman,olah Inspired by: vjs@sgi.com
|
#
18365 |
|
18-Sep-1996 |
pst |
Add a new sysctl variable kern.sominqueue to override the MINIMUM queue specified in a listen(2) system call.
|
#
18233 |
|
10-Sep-1996 |
bde |
Removed more devconf leftovers.
|
#
17281 |
|
25-Jul-1996 |
wollman |
Rename KERN_DOMAINNAME to KERN_NISDOMAINNAME so that it can't be confused with a real Domain Name.
Suggested by: Keith Bostic
|
#
16282 |
|
10-Jun-1996 |
nate |
Implemented 'kern_sysctl', which differs from 'userland_sysctl' in that it assumes all of the data exists in the kernel. Also, fix sysctl_new-kernel (unused until now) which had reversed operands to bcopy().
Reviewed by: phk
Poul writes: ... actually the lock/sleep/wakeup cruft shouldn't be needed in the kernel version I think, but just leave it there for now.
|
#
14498 |
|
11-Mar-1996 |
hsu |
Merge in Lite2: rename fs to vfs. Reviewed by: davidg & bde
|
#
14235 |
|
24-Feb-1996 |
peter |
Add two sysctl variables that can be read by libutil and libkvm so that they can adapt to simple kernel VM layout changes.
|
#
12910 |
|
17-Dec-1995 |
phk |
Add an obscure feature, needed for debugging.
|
#
12705 |
|
09-Dec-1995 |
phk |
Change SYSCTL_OPAQUE to take a format string.
|
#
12623 |
|
04-Dec-1995 |
phk |
A major sweep over the sysctl stuff.
Move a lot of variables home to their own code (In good time before xmas :-)
Introduce the string descrition of format.
Add a couple more functions to poke into these marvels, while I try to decide what the correct interface should look like.
Next is adding vars on the fly, and sysctl looking at them too.
Removed a tine bit of defunct and #ifdefed notused code in swapgeneric.
|
#
12582 |
|
02-Dec-1995 |
phk |
malloc.h: add sysctl class. sysctl.h add "AUTO" OID.
both of which will be need RSN.
|
#
12429 |
|
20-Nov-1995 |
phk |
Mega commit for sysctl. Convert the remaining sysctl stuff to the new way of doing things. the devconf stuff is the reason for the large number of files. Cleaned up some compiler warnings while I were there.
|
#
12340 |
|
16-Nov-1995 |
phk |
All net.* sysctl converted now.
|
#
12289 |
|
14-Nov-1995 |
phk |
Final part of this bunch of sysctl commits: cleanup.
|
#
12243 |
|
12-Nov-1995 |
phk |
The entire sysctl callback to read/write version. I havn't tested this as much as I'd like to, but the malloc stunt I tried for an interim for sure does worse. Now we can read and write from any kind of address-space, not only user and kernel, using callbacks. This may be over-generalization for now, but it's actually simpler.
|
#
12188 |
|
10-Nov-1995 |
phk |
convert more sysctl variables.
|
#
12170 |
|
09-Nov-1995 |
phk |
Add qsort prototype. Add userland_sysctl prototype.
|
#
12152 |
|
08-Nov-1995 |
phk |
Fix some of the sysctl broke, and add a lot more to it.
|
#
12131 |
|
06-Nov-1995 |
phk |
On working the new sysctl vars a bit I realized that I needed more generality. This is here now. We can now access (the new) sysctl variables from the kernel too and using functions to handle access is more sane now. I will now attack sysctl variables in the rest of the kernel and get them all converted to newspeak.
|
#
12040 |
|
03-Nov-1995 |
wollman |
Make somaxconn (maximum backlog in a listen(2) request) and sb_max (maximum size of a socket buffer) tunable.
|
#
11865 |
|
28-Oct-1995 |
phk |
Sorry, the last commit screwed up for me, this is the right one (I hope!) Please refer to the previous commit message about sysctl variables.
|
#
11863 |
|
28-Oct-1995 |
phk |
Rewamp the way we make sysctl variables to be easier to cope with.
The goal is to make them "user-friendly" :-)
In the end this will allow a SNMP style "getnext" function, sysctl editing in the boot-editor and/or debugger, LKMs can define sysctl vars when they get loaded, and remove them when unloaded and other interesting uses for dynamic sysctl variables.
|
#
9466 |
|
10-Jul-1995 |
dg |
Killed bogus sparc #ifdef.
|
#
8876 |
|
30-May-1995 |
rgrimes |
Remove trailing whitespace.
|
#
8481 |
|
12-May-1995 |
wollman |
The death of `options NODUMP'. Now the dump area can be dynamically configured (and unconfigured) on the fly. A sysctl(3) MIB variable is provided to inspect and modify the dump device setting.
|
#
7090 |
|
16-Mar-1995 |
bde |
Add and move declarations to fix all of the warnings from `gcc -Wimplicit' (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
|
#
6577 |
|
20-Feb-1995 |
guido |
Implement maxprocperuid and maxfilesperproc. They are tunable via sysctl(8). The initial value of maxprocperuid is maxproc-1, that of maxfilesperproc is maxfiles (untill maxfile will disappear)
Now it is at least possible to prohibit one user opening maxfiles
-Guido
Submitted by: Obtained from:
|
#
4468 |
|
14-Nov-1994 |
bde |
Update stupid declaration in comment to match code.
Declare all public syscntlfn's here.
|
#
3641 |
|
16-Oct-1994 |
wollman |
dkstat.h: declare dk_names sysctl.h: add HW_DEVCONF devconf.h: machine-independent parts of config table
|
#
3484 |
|
09-Oct-1994 |
phk |
Cosmetics. (sort of) Added 19 prototypes.
|
#
3424 |
|
08-Oct-1994 |
phk |
I got my patch-file applied twice it seems. Fixed.
|
#
3421 |
|
07-Oct-1994 |
phk |
Prototypes of today. Brought to you by a 28 minute transit time on BART :-)
(For the SF-unaware: I ride the BART (The Bay-area subway) for half an hour each way to work. I use the time to shut up gcc -Wall on my handbook).
|
#
3408 |
|
07-Oct-1994 |
phk |
Cosmetics. Added four prototypes.
|
#
3304 |
|
02-Oct-1994 |
phk |
Prototypes, prototypes and even more prototypes. Not quite done yet, but getting closer all the time.
|
#
3038 |
|
23-Sep-1994 |
wollman |
Add MIB variable kern.bootfile (R/W) giving the name of the booted kernel. Kernel variable is kernelname[].
|
#
2946 |
|
21-Sep-1994 |
wollman |
Implemented loadable VFS modules, and made most existing filesystems loadable. (NFS is a notable exception.)
|
#
2858 |
|
18-Sep-1994 |
wollman |
Redo Kernel NTP PLL support, kernel side.
This code is mostly taken from the 1.1 port (which was in turn taken from Dave Mills's kern.tar.Z example). A few significant differences:
1) ntp_gettime() is now a MIB variable rather than a system call. A few fiddles are done in libc to make it behave the same.
2) mono_time does not participate in the PLL adjustments.
3) A new interface has been defined (in <machine/clock.h>) for doing possibly machine-dependent things around the time of the clock update. This is used in Pentium kernels to disable interrupts, set `time', and reset the CPU cycle counter as quickly as possible to avoid jitter in microtime(). Measurements show an apparent resolution of a bit more than 8.14usec, which is reasonable given system-call overhead.
|
#
2820 |
|
15-Sep-1994 |
ache |
Remove all ADJKERNTZ references, now all this stuff in cpu.h
|
#
2816 |
|
15-Sep-1994 |
ache |
KERN_ADJKERNTZ moved to MACHDEP section
|
#
2769 |
|
14-Sep-1994 |
ache |
KERN_ADJKERNTZ added in preparation for resettodr() implementation
|
#
2631 |
|
09-Sep-1994 |
wollman |
Define new MIB variable, hw.floatingpoint, which is true if FP hardware is present, and false if an emulator is being used.
|
#
2004 |
|
10-Aug-1994 |
wollman |
Make it easier for programs to figure out what revision of FreeBSD they are running under. Here's how to bootstrap (order is important):
1) Re-compile gcc (just the driver is all you need). 2) Re-compile libc. 3) Re-compile your kernel. Reboot. 4) cd /usr/src/include; make install
You can now detect the compilation environment with the following code:
#if !defined(__FreeBSD__) #define __FreeBSD_version 199401 #elif __FreeBSD__ == 1 #define __FreeBSD_version 199405 #else #include <osreldate.h> #endif
You can determine the run-time environment by calling the new C library function getosreldate(), or by examining the MIB variable kern.osreldate.
For the time being, the release date is defined as 199409, which we have already established as our target.
|
#
1952 |
|
08-Aug-1994 |
wollman |
Run-time configuration of VFS update interval. Old UPDATE_INTERVAL configuration option is no longer supported.
|
#
1925 |
|
07-Aug-1994 |
wollman |
Define a sysctl MIB variable for the YP domain name.
|
#
1817 |
|
02-Aug-1994 |
dg |
Added $Id$
|
#
1542 |
|
24-May-1994 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r1541, which included commits to RCS files with non-trunk default branches.
|
#
1541 |
|
24-May-1994 |
rgrimes |
BSD 4.4 Lite Kernel Sources
|