#
259065 |
|
07-Dec-2013 |
gjb |
- Copy stable/10 (r259064) to releng/10.0 as part of the 10.0-RELEASE cycle. - Update __FreeBSD_version [1] - Set branch name to -RC1
[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so start releng/10.0 at '100' so the branch is started with a value ending in zero.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
251423 |
|
05-Jun-2013 |
alc |
Relax the vm object locking. Use a read lock.
Sponsored by: EMC / Isilon Storage Division
|
#
248084 |
|
09-Mar-2013 |
attilio |
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes.
The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs.
The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example).
Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho
|
#
247764 |
|
04-Mar-2013 |
eadler |
Remove check for NULL prior to free(9) and m_freem(9).
Approved by: cperciva (mentor)
|
#
246085 |
|
29-Jan-2013 |
jhb |
Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h by moving bits that are MI out into headers in compat/linux.
Reviewed by: Chagin Dmitry dmitry | gmail MFC after: 2 weeks
|
#
241896 |
|
22-Oct-2012 |
kib |
Remove the support for using non-mpsafe filesystem modules.
In particular, do not lock Giant conditionally when calling into the filesystem module, remove the VFS_LOCK_GIANT() and related macros. Stop handling buffers belonging to non-mpsafe filesystems.
The VFS_VERSION is bumped to indicate the interface change which does not result in the interface signatures changes.
Conducted and reviewed by: attilio Tested by: pho
|
#
232278 |
|
28-Feb-2012 |
mm |
Add procfs to jail-mountable filesystems.
Reviewed by: jamie MFC after: 1 week
|
#
230145 |
|
15-Jan-2012 |
trociny |
Abrogate nchr argument in proc_getargv() and proc_getenvv(): we always want to read strings completely to know the actual size.
As a side effect it fixes the issue with kern.proc.args and kern.proc.env sysctls, which didn't return the size of available data when calling sysctl(3) with the NULL argument for oldp.
Note, in get_ps_strings(), which does actual work for proc_getargv() and proc_getenvv(), we still have a safety limit on the size of data read in case of a corrupted procces stack.
Suggested by: kib MFC after: 3 days
|
#
228268 |
|
04-Dec-2011 |
trociny |
Protect process environment variables with p_candebug().
Discussed with: jilles, kib, rwatson MFC after: 2 weeks
|
#
227836 |
|
22-Nov-2011 |
trociny |
Retire linprocfs_doargv(). Instead use new functions, proc_getargv() and proc_getenvv(), which were implemented using linprocfs_doargv() as a reference.
Suggested by: kib Reviewed by: kib Approved by: des (linprocfs maintainer) MFC after: 2 weeks
|
#
224582 |
|
01-Aug-2011 |
kib |
Implement the linprocfs swaps file, providing information about the configured swap devices in the Linux-compatible format.
Based on the submission by: Robert Millan <rmh debian org> PR: kern/159281 Reviewed by: bde Approved by: re (kensmith) MFC after: 2 weeks
|
#
223182 |
|
17-Jun-2011 |
pluknet |
Return empty cmdline/environ string for processes with kernel address space. This is consistent with the behavior in linux.
PR: kern/157871 Reported by: Petr Salinger <Petr Salinger att seznam cz> Verified on: GNU/kFreeBSD debian 8.2-1-amd64 (by reporter) Reviewed by: kib (some time ago) MFC after: 2 weeks
|
#
220433 |
|
07-Apr-2011 |
jkim |
Use atomic load & store for TSC frequency. It may be overkill for amd64 but safer for i386 because it can be easily over 4 GHz now. More worse, it can be easily changed by user with 'machdep.tsc_freq' tunable (directly) or cpufreq(4) (indirectly). Note it is intentionally not used in performance critical paths to avoid performance regression (but we should, in theory). Alternatively, we may add "virtual TSC" with lower frequency if maximum frequency overflows 32 bits (and ignore possible incoherency as we do now).
|
#
219968 |
|
24-Mar-2011 |
jhb |
Fix some locking nits with the p_state field of struct proc: - Hold the proc lock while changing the state from PRS_NEW to PRS_NORMAL in fork to honor the locking requirements. While here, expand the scope of the PROC_LOCK() on the new process (p2) to avoid some LORs. Previously the code was locking the new child process (p2) after it had locked the parent process (p1). However, when locking two processes, the safe order is to lock the child first, then the parent. - Fix various places that were checking p_state against PRS_NEW without having the process locked to use PROC_LOCK(). Every place was already locking the process, just after the PRS_NEW check. - Remove or reduce the use of PROC_SLOCK() for places that were checking p_state against PRS_NEW. The PROC_LOCK() alone is sufficient for reading the current state. - Reorder fill_kinfo_proc() slightly so it only acquires PROC_SLOCK() once.
MFC after: 1 week
|
#
218114 |
|
30-Jan-2011 |
bz |
Update interface stats counters to match the current format in linux and try to export as much information as we can match.
Requested on: Debian GNU/kFreeBSD list (debian-bsd lists.debian.org) 2010-12 Tested by: Mats Erik Andersson (mats.andersson gisladisker.se) MFC after: 10 days
|
#
217896 |
|
26-Jan-2011 |
dchagin |
Add macro to test the sv_flags of any process. Change some places to test the flags instead of explicit comparing with address of known sysentvec structures.
MFC after: 1 month
|
#
214985 |
|
08-Nov-2010 |
des |
Break long line.
|
#
214982 |
|
08-Nov-2010 |
des |
Fix CPU ID in /proc/cpuinfo.
PR: kern/56451 Submitted by: arundel@ MFC after: 3 weeks
|
#
213246 |
|
28-Sep-2010 |
kib |
In linprocfs_doargv(): - handle compat32 processes; - remove the checks for copied in addresses to belong into valid usermode range, proc_rwmem() does this; - simplify loop reading single string, limit the total amount of strings collected by ARG_MAX bytes; - correctly add '\0' at the end of each copied string; - fix style.
In linprocfs_doprocenviron(): - unlock the process before calling copyin code [1]. The process is held by pseudofs.
In linprocfs_doproccmdline: - use linprocfs_doargv() to handle !curproc case for which p_args is not cached.
Reported by: plulnet [1] Tested by: pluknet Approved by: des (linprocfs maintainer, previous version of the patch) MFC after: 3 weeks
|
#
212723 |
|
16-Sep-2010 |
des |
Implement proc/$$/environment.
Submitted by: Fernando ApesteguĂa <fernando.apesteguia@gmail.com> MFC after: 3 weeks
|
#
209059 |
|
11-Jun-2010 |
jhb |
Update several places that iterate over CPUs to use CPU_FOREACH().
|
#
206597 |
|
14-Apr-2010 |
emaste |
Linux puts a blank line between each CPU.
|
#
206081 |
|
02-Apr-2010 |
netchild |
Re-apply r205683 with some modifications: Fix some bogus values in linprocfs.
Submitted by: Petr Salinger <Petr.Salinger@seznam.cz> Verified on: GNU/kFreeBSD debian 8.0-1-686 (by submitter) PR: 144584
Reviewed by / discussed with: kib, des, jhb, submitter
|
#
205695 |
|
26-Mar-2010 |
netchild |
Revert r205683 to resolve some code quality issues which do not affect the build or use of linprocfs, before committing the reworked patch again.
Requested by: des
|
#
205683 |
|
26-Mar-2010 |
netchild |
Fix some bogus values in linprocfs.
Submitted by: Petr Salinger <Petr.Salinger@seznam.cz> Verified on: GNU/kFreeBSD debian 8.0-1-686 (by submitter) PR: 144584
|
#
205592 |
|
24-Mar-2010 |
jhb |
Add missing Giant locking for the vfsconf list.
Submitted by: kib
|
#
205541 |
|
23-Mar-2010 |
jhb |
Implement /proc/filesystems.
Submitted by: Fernando Apesteguia fernando.apesteguia (gmail)
|
#
204825 |
|
07-Mar-2010 |
ed |
Make /proc/self/fd `work'.
On Linux, /proc/<pid>/fd is comparable to fdescfs, where it allows you to inspect the file descriptors used by each process. Glibc's ttyname() works by performing a readlink() on these nodes, since all nodes in this directory are symlinks.
It is a bit hard to implement this in linprocfs right now, so I am not going to bother. Add a way to make ttyname(3) work, by adding a /proc/<pid>/fd symlink, which points to /dev/fd only if the calling process matches. When fdescfs is mounted, this will cause the readlink() in ttyname() to fail, causing it to fall back on manually finding a matching node in /dev.
Discussed on: emulation@
|
#
196635 |
|
28-Aug-2009 |
zec |
Fix a few panics in linuxulator + VIMAGE due to curvnet not being set.
This change affects only options VIMAGE builds.
Reviewed by: julian MFC after: 3 days
|
#
196019 |
|
01-Aug-2009 |
rwatson |
Merge the remainder of kern_vimage.c and vimage.h into vnet.c and vnet.h, we now use jails (rather than vimages) as the abstraction for virtualization management, and what remained was specific to virtual network stacks. Minor cleanups are done in the process, and comments updated to reflect these changes.
Reviewed by: bz Approved by: re (vimage blanket)
|
#
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)
|
#
194739 |
|
23-Jun-2009 |
bz |
After cleaning up rt_tables from vnet.h and cleaning up opt_route.h a lot of files no longer need route.h either. Garbage collect them. While here remove now unneeded vnet.h #includes as well.
|
#
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)
|
#
193744 |
|
08-Jun-2009 |
bz |
After r193232 rt_tables in vnet.h are no longer indirectly dependent on the ROUTETABLES kernel option thus there is no need to include opt_route.h anymore in all consumers of vnet.h and no longer depend on it for module builds.
Remove the hidden include in flowtable.h as well and leave the two explicit #includes in ip_input.c and ip_output.c.
|
#
190445 |
|
26-Mar-2009 |
ambrisko |
Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine via the Linux tool. - Add Linux shim to ipmi(4) - Create a partitions file to linprocfs to make Linux fdisk see disks. This file is dynamic so we can see disks come and go. - Convert msdosfs to vfat in mtab since Linux uses that for msdosfs. - In the Linux mount path convert vfat passed in to msdosfs so Linux mount works on FreeBSD. Note that tasting works so that if da0 is a msdos file system /compat/linux/bin/mount /dev/da0 /mnt works. - fix a 64it bug for l_off_t. Grabing sh, mount, fdisk, df from Linux, creating a symlink of mtab to /compat/linux/etc/mtab and then some careful unpacking of the Linux bmc update tool and hacking makes it work on newer Dell boxes. Note, probably if you can't figure out how to do this, then you probably shouldn't be doing it :-)
|
#
189106 |
|
27-Feb-2009 |
bz |
For all files including net/vnet.h directly include opt_route.h and net/route.h.
Remove the hidden include of opt_route.h and net/route.h from net/vnet.h.
We need to make sure that both opt_route.h and net/route.h are included before net/vnet.h because of the way MRT figures out the number of FIBs from the kernel option. If we do not, we end up with the default number of 1 when including net/vnet.h and array sizes are wrong.
This does not change the list of files which depend on opt_route.h but we can identify them now more easily.
|
#
188579 |
|
13-Feb-2009 |
jhb |
Fix a bug in the previous change to the mtab handler: use the path returned by vn_fullpath() when vn_fullpath() succeeds instead of when it fails.
Submitted by: Artem Belevich fbsdlist of src.cx MFC after: 3 days
|
#
187594 |
|
22-Jan-2009 |
jkim |
Replace couple of strcmp(cpu_vendor, "foo") with cpu_vendor_id for i386 and hide i386-specific code under #ifdef.
|
#
186563 |
|
29-Dec-2008 |
kib |
vm_map_lock_read() does not increment map->timestamp, so we should compare map->timestamp with saved timestamp after map read lock is reacquired, not with saved timestamp + 1. The only consequence of the +1 was unconditional lookup of the next map entry, though.
Tested by: pho Approved by: des MFC after: 2 weeks
|
#
185984 |
|
12-Dec-2008 |
kib |
Reference the vmspace of the process being inspected by procfs, linprocfs and sysctl kern_proc_vmmap handlers.
Reported and tested by: pho Reviewed by: rwatson, des MFC after: 1 week
|
#
185864 |
|
10-Dec-2008 |
kib |
Relock user map earlier, to have the lock held when break leaves the loop earlier due to sbuf error.
Pointy hat to: me Submitted by: dchagin
|
#
185766 |
|
08-Dec-2008 |
kib |
Make two style changes to create new commit and document proper commit message for r185765.
Noted by: rdivacky Requested by: des
Commit message for r185765 should be: In procfs map handler, and in linprocfs maps handler, do not call vn_fullpath() while having vm map locked. This is done in anticipation of the vop_vptocnp commit, that would make vn_fullpath sometime acquire vnode lock.
Also, in linprocfs, maps handler already acquires vnode lock.
No objections from: des MFC after: 2 week
|
#
185765 |
|
08-Dec-2008 |
kib |
Change the linprocfs <pid>/maps and procfs <pid>/map handlers to use sbuf instead of doing uiomove. This allows for reads from non-zero offsets to work.
Patch is forward-ported des@' one, and was adopted to current code by dchagin@ and me.
Reviewed by: des (linprocfs part) PR: kern/101453 MFC after: 1 week
|
#
185571 |
|
02-Dec-2008 |
bz |
Rather than using hidden includes (with cicular dependencies), directly include only the header files needed. This reduces the unneeded spamming of various headers into lots of files.
For now, this leaves us with very few modules including vnet.h and thus needing to depend on opt_route.h.
Reviewed by: brooks, gnn, des, zec, imp Sponsored by: The FreeBSD Foundation
|
#
184691 |
|
05-Nov-2008 |
des |
utf-8
MFC after: 3 weeks
|
#
184649 |
|
04-Nov-2008 |
jhb |
Don't leak a reference on the /compat/linux vnode everytime the linprocfs 'mtab' file is read.
MFC after: 1 month
|
#
183600 |
|
04-Oct-2008 |
kib |
Change the linprocfs <pid>/maps and procfs <pid>/map handlers to use sbuf instead of doing uiomove. This allows for reads from non-zero offsets to work.
Patch is forward-ported des@' one, and was adopted to current code by dchagin@ and me.
Reviewed by: des (linprocfs part) PR: kern/101453 MFC after: 1 week
|
#
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
|
#
183385 |
|
26-Sep-2008 |
cognet |
Advertise bit 26 as sse2.
Spotted out by: gahr
|
#
182371 |
|
28-Aug-2008 |
attilio |
Decontextualize the couplet VOP_GETATTR / VOP_SETATTR as the passed thread was always curthread and totally unuseful.
Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>
|
#
182141 |
|
25-Aug-2008 |
julian |
All opt_x.h includes go at the top of other includes.
|
#
181803 |
|
17-Aug-2008 |
bz |
Commit step 1 of the vimage project, (network stack) virtualization work done by Marko Zec (zec@).
This is the first in a series of commits over the course of the next few weeks.
Mark all uses of global variables to be virtualized with a V_ prefix. Use macros to map them back to their global names for now, so this is a NOP change only.
We hope to have caught at least 85-90% of what is needed so we do not invalidate a lot of outstanding patches again.
Obtained from: //depot/projects/vimage-commit2/... Reviewed by: brooks, des, ed, mav, julian, jamie, kris, rwatson, zec, ... (various people I forgot, different versions) md5 (with a bit of help) Sponsored by: NLnet Foundation, The FreeBSD Foundation X-MFC after: never V_Commit_Message_Reviewed_By: more people than the patch
|
#
177785 |
|
31-Mar-2008 |
kib |
Add the support for the AT_FDCWD and fd-relative name lookups to the namei(9).
Based on the submission by rdivacky, sponsored by Google Summer of Code 2007 Reviewed by: rwatson, rdivacky Tested by: pho
|
#
175202 |
|
09-Jan-2008 |
attilio |
vn_lock() is currently only used with the 'curthread' passed as argument. Remove this argument and pass curthread directly to underlying VOP_LOCK1() VFS method. This modify makes the code cleaner and in particular remove an annoying dependence helping next lockmgr() cleanup. KPI results, obviously, changed.
Manpage and FreeBSD_version will be updated through further commits.
As a side note, would be valuable to say that next commits will address a similar cleanup about VFS methods, in particular vop_lock1 and vop_unlock.
Tested by: Diego Sardina <siarodx at gmail dot com>, Andrea Di Pasquale <whyx dot it at gmail dot com>
|
#
174070 |
|
29-Nov-2007 |
peter |
Move the shared cp_time array (counts %sys, %user, %idle etc) to the per-cpu area. cp_time[] goes away and a new function creates a merged cp_time-like array for things like linprocfs, sysctl etc. The atomic ops for updating cp_time[] in statclock go away, and the scope of the thread lock is reduced.
sysctl kern.cp_time returns a backwards compatible cp_time[] array. A new kern.cp_times sysctl returns the individual per-cpu stats.
I have pending changes to make top and vmstat optionally show per-cpu stats.
I'm very aware that there are something like 5 or 6 other versions "out there" for doing this - but none were handy when I needed them.
I did merge my changes with John Baldwin's, and ended up replacing a few chunks of my stuff with his, and stealing some other code.
Reviewed by: jhb Partly obtained from: jhb
|
#
172568 |
|
12-Oct-2007 |
kevlo |
Spelling fix for interupt -> interrupt
|
#
170307 |
|
04-Jun-2007 |
jeff |
Commit 14/14 of sched_lock decomposition. - Use thread_lock() rather than sched_lock for per-thread scheduling sychronization. - Use the per-process spinlock rather than the sched_lock for per-process scheduling synchronization.
Tested by: kris, current@ Tested on: i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc. Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
|
#
170170 |
|
31-May-2007 |
attilio |
Revert VMCNT_* operations introduction. Probabilly, a general approach is not the better solution here, so we should solve the sched_lock protection problems separately.
Requested by: alc Approved by: jeff (mentor)
|
#
169667 |
|
18-May-2007 |
jeff |
- define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating vmcnts. This can be used to abstract away pcpu details but also changes to use atomics for all counters now. This means sched lock is no longer responsible for protecting counts in the switch routines.
Contributed by: Attilio Rao <attilio@FreeBSD.org>
|
#
169156 |
|
01-May-2007 |
alc |
Synchronize vm map and object accesses.
Approved by: des@
|
#
168942 |
|
22-Apr-2007 |
des |
Now that we're MPSAFE, tell namei() to acquire Giant if necessary.
|
#
168762 |
|
15-Apr-2007 |
des |
Whitespace cleanup.
|
#
168440 |
|
06-Apr-2007 |
jkim |
Fix kernel module dependency. linprocfs depends on sysvmsg and sysvsem.
Submitted by: nork
|
#
168067 |
|
30-Mar-2007 |
jkim |
Use underlying structures instead of kernel_sysctlbyname() for msginfo and seminfo because kernel_sysctlbyname() is slow. There is no dependency problem since linux module depends on both sysvmsg and sysvsem and linprocfs depends on it in turn.
Pointed out by: des Reviewed by: des
|
#
167482 |
|
12-Mar-2007 |
des |
Add a pn_destroy field to pfs_node. This field points to a destructor function which is called from pfs_destroy() before the node is reclaimed.
Modify pfs_create_{dir,file,link}() to accept a pointer to a destructor function in addition to the usual attr / fill / vis pointers.
This breaks both the programming and binary interfaces between pseudofs and its consumers. It is believed that there are no pseudofs consumers outside the source tree, so that the impact of this change is minimal.
Submitted by: Aniruddha Bohra <bohra@cs.rutgers.edu>
|
#
167159 |
|
01-Mar-2007 |
jkim |
MFP4: 113090, 113130, 113132
Add Linux kernel version strings to /proc/sys/kernel.
|
#
166162 |
|
21-Jan-2007 |
netchild |
Use a printf-modifier which doesn't need a cast.
Submitted by: scottl
|
#
166155 |
|
20-Jan-2007 |
netchild |
Fix tinderbox build on amd64.
|
#
166141 |
|
20-Jan-2007 |
netchild |
Ooops, fix the ratelimit.
|
#
166140 |
|
20-Jan-2007 |
netchild |
Convert a KASSERT into a runtime warning (rate limited) + failsafe fallback.
Because of a stupid bug (also fixed with this commit) the KASSERT was triggered when runnung the linux top.
Pointy hat to: netchild
|
#
164692 |
|
27-Nov-2006 |
jkim |
MFP4: Change 109654
Add two linprocfs entries for Linux IPC:
/proc/sys/kernel/msgmni -> kern.ipc.msgmni /proc/sys/kernel/sem -> kern.ipc.semmsl kern.ipc.semmns kern.ipc.semopm kern.ipc.semmni
This fixes msgget03 and semget05 from Linux Test Project (LTP) test suite. msgctl08 and msgctl09 also use /proc/sys/kernel/msgmni but another fix is required from p4 (Change 110179).
Requested by: netchild
|
#
163757 |
|
29-Oct-2006 |
netchild |
style(9)
Noticed by: rwatson
|
#
163251 |
|
11-Oct-2006 |
keramida |
Spell proc/sys/kernel/pid_max correctly in a comment.
Submitted by: rdivacky
|
#
163129 |
|
08-Oct-2006 |
netchild |
Implement /proc/sys/kernel/pid_max.
Submitted by: rdivacky Tested with: LTP
|
#
161094 |
|
08-Aug-2006 |
kib |
Lock the vnode around the call to VOP_GETATTR. Move the locked code and vn_fullpath (that call malloc(..., M_WAITOK)) from under the vm object lock, since sleep is not allowed while holding the mutex.
Being there, wrap VOP_GETATTR call with conditional Giant aquire. Currently this is (almost) noop because pseudofs is Giant-locked.
Tested by: kris Approved by: pjd (mentor) MFC after: 2 weeks
|
#
159995 |
|
27-Jun-2006 |
netchild |
Improve linprovfs to provide/fix the - process state (idle, sleeping, running, ...) [1] - the process group ID of the process which owns the connected tty - some page fault stats - time spend in kernel/userland - priority/nice value - starttime [1] - memory/swap stats - scheduling policy
Additionally add some new fields and correct some not filled out ones.
This brings us down to 15 dummy fields.
The fields marked with [1] are needed to get Oracle 10 running. The starttime field is not completely right, since it displays the _same_ starttime for _every_ process, but at least it is not 0 and Oracle accepts this.
This is a RELENG_x_y candidate.
Noticed by: Dmitry Ganenko <dima@apk-inform.com> [1] Reviewed by: des, rdivacky MFC after: 1 week
|
#
159544 |
|
12-Jun-2006 |
des |
Add the model name, obtained from the hw.model sysctl variable.
MFC after: 3 weeks
|
#
159170 |
|
02-Jun-2006 |
des |
As far as I can tell, the correct CPU family for amd64 (which Linux calls x86_64) is 15, not 6.
MFC after: 3 weeks
|
#
158471 |
|
12-May-2006 |
jhb |
Remove various bits of conditional Alpha code and fixup a few comments.
|
#
158311 |
|
05-May-2006 |
ambrisko |
Enhance the Linux emulation layer to make MegaRAID SAS managements tool happy. Add back in a scheme to emulate old type major/minor numbers via hooks into stat, linprocfs to return major/minors that Linux app's expect. Currently only /dev/null is always registered. Drivers can register via the Linux type shim similar to the ioctl shim but by using linux_device_register_handler/linux_device_unregister_handler functions. The structure is:
struct linux_device_handler { char *bsd_driver_name; char *linux_driver_name; char *bsd_device_name; char *linux_device_name; int linux_major; int linux_minor; int linux_char_device; };
Linprocfs uses this to display the major number of the driver. The soon to be available linsysfs will use it to fill in the driver name. Linux_stat uses it to translate the major/minor into Linux type values.
Note major numbers are dynamically assigned via passing in a -1 for the major number so we don't need to keep track of them.
This is somewhat needed due to us switching to our devfs. MegaCli will not run until I add in the linsysfs and mfi Linux compat changes.
Sponsored by: IronPort Systems
|
#
153310 |
|
11-Dec-2005 |
mlaier |
Fix calculation of meminfo's swaptotal and swapfree on at least amd64.
MFC after: 3 days
|
#
152912 |
|
28-Nov-2005 |
rodrigc |
Remove MNT_NODEV mount option. In RELENG_6, MNT_NODEV was a no-op. The presence of MNT_NODEV was confusing the am-utils autoconf scripts.
PR: conf/79715
|
#
143194 |
|
06-Mar-2005 |
sobomax |
Always produce cpuX entries, even in the case when there is only one CPU in the system. This is consistent with what real linuxes do.
PR: kern/75848 Submitted by: Andriy Gapon <avg@icyb.net.ua> MFC after: 3 days
|
#
140214 |
|
14-Jan-2005 |
obrien |
Match the LINUX32's style with existing style Submitted by: Jung-uk Kim <jkim@niksun.com>
Use positive, not negative logic.
|
#
139743 |
|
05-Jan-2005 |
imp |
Start each of the license/copyright comments with /*-
|
#
138281 |
|
01-Dec-2004 |
cperciva |
Fix unvalidated pointer dereference. This is FreeBSD-SA-04:17.procfs.
|
#
137507 |
|
10-Nov-2004 |
phk |
Pick up the inode number using VOP_GETATTR() rather than caching it in all vnodes on the off chance that linprocfs needs it. If we can afford to call vn_fullpath() we can afford the much cheaper VOP_GETATTR().
|
#
133822 |
|
16-Aug-2004 |
tjr |
Add support for 32-bit Linux binary emulation on amd64: - include <machine/../linux32/linux.h> instead of <machine/../linux/linux.h> if building with the COMPAT_LINUX32 option. - make minimal changes to the i386 linprocfs_docpuinfo() function to support amd64. We return a fake CPU family of 6 for now.
|
#
127694 |
|
31-Mar-2004 |
pjd |
Remove ps_argsopen from this check, because of two reasons: 1. This check if wrong, because it is true by default (kern.ps_argsopen is 1 by default) (p_cansee() is not even checked). 2. Sysctl kern.ps_argsopen is going away.
|
#
125630 |
|
09-Feb-2004 |
des |
Remove VFS_STATFS() call which violated the lock order and wasn't really required anyway.
PR: kern/61994 Submitted by: Bjoern Groenvall <bg@sics.se>
|
#
124407 |
|
12-Jan-2004 |
rwatson |
Correct for proper vn_fullpath() failure mode: "== -1" -> "!= 0"
Discussed with: des
|
#
124082 |
|
02-Jan-2004 |
alc |
Lock the traversal of the vm object list. Use TAILQ_FOREACH consistently.
|
#
123246 |
|
07-Dec-2003 |
des |
Use mp_ncpus instead of the hw.ncpu sysctl.
|
#
121265 |
|
20-Oct-2003 |
cognet |
Various style and type fixes in my last commit.
Suggested by: mux
|
#
121246 |
|
19-Oct-2003 |
cognet |
Implement partially /proc/<pid>/maps. It looks enough to make SImics run.
Reviewed by: des
|
#
120912 |
|
08-Oct-2003 |
gallatin |
make kernel_sysctl()'s args match its prototype in order to fix the alpha build
|
#
120605 |
|
30-Sep-2003 |
des |
Fix a (fortunately harmless) signed / unsigned bug.
|
#
120340 |
|
22-Sep-2003 |
des |
Previous commit contained too-smart-for-its-own-good code that might produce incorrect (though harmless) output on single-CPU systems.
|
#
120339 |
|
22-Sep-2003 |
des |
Fake multi-cpu statistics for proc/stat by dividing the totals by the number of CPUs.
PR: kern/27522
|
#
119923 |
|
09-Sep-2003 |
des |
Fix some broken comments.
|
#
119911 |
|
09-Sep-2003 |
des |
Add cwd, root and statm (modeled on a 2.4.20 kernel). De-obfuscate linprocfs_init() a little and remove some gratuitous whitespace.
|
#
119068 |
|
18-Aug-2003 |
des |
Whitespace cleanup.
|
#
119008 |
|
17-Aug-2003 |
marcel |
Cleanup <machine/cpu.h> by moving MD prototypes to <machine/md_var.h> like we have on other platforms. Move savectx() to <machine/pcb.h>. A lot of files got these MD prototypes through the indirect inclusion of <machine/cpu.h> and now need to include <machine/md_var.h>. The number of which is unexpectedly large...
osf1_misc.c especially is tricky because szsigcode is redefined in one of the osf1 header files. Reordering of the include files was needed.
linprocfs.c now needs an explicit extern declaration.
Tested with: LINT
|
#
118421 |
|
04-Aug-2003 |
des |
Add support for multiple CPUs to cpuinfo.
|
#
117723 |
|
18-Jul-2003 |
phk |
Add a new function swap_pager_status() which reports the total size of the paging space and how much of it is in use (in pages).
Use this interface from the Linuxolator instead of groping around in the internals of the swap_pager.
|
#
116173 |
|
10-Jun-2003 |
obrien |
Use __FBSDID().
|
#
114983 |
|
13-May-2003 |
jhb |
- Merge struct procsig with struct sigacts. - Move struct sigacts out of the u-area and malloc() it using the M_SUBPROC malloc bucket. - Add a small sigacts_*() API for managing sigacts structures: sigacts_alloc(), sigacts_free(), sigacts_copy(), sigacts_share(), and sigacts_shared(). - Remove the p_sigignore, p_sigacts, and p_sigcatch macros. - Add a mutex to struct sigacts that protects all the members of the struct. - Add sigacts locking. - Remove Giant from nosys(), kill(), killpg(), and kern_sigaction() now that sigacts is locked. - Several in-kernel functions such as psignal(), tdsignal(), trapsignal(), and thread_stopped() are now MP safe.
Reviewed by: arch@ Approved by: re (rwatson)
|
#
113611 |
|
17-Apr-2003 |
jhb |
P_SHOULDSTOP used to be p_stat == SSTOP and needed the sched_lock, now it is protected by the proc lock and doesnt' need sched_lock, so adjust the locking appropriately.
|
#
113574 |
|
16-Apr-2003 |
jhb |
Fix multiple printf warnings on Alpha: - Prefer long long to quad_t to match printf args. - Use uintmax_t and %j to print segsz_t and vm_size_t values. - Fix others in Alpha-specific code.
|
#
112206 |
|
13-Mar-2003 |
jhb |
- Change the linux_[gs]et_os{name, release, s_version}() functions to take a thread instead of a proc for their first argument. - Add a mutex to protect the system-wide Linux osname, osrelease, and oss_version variables. - Change linux_get_prison() to take a thread instead of a proc for its first argument and to use td_ucred rather than p_ucred. This is ok because a thread's prison does not change even though it's ucred might. - Also, change linux_get_prison() to return a struct prison * instead of a struct linux_prison * since it returns with the struct prison locked and this makes it easier to safely unlock the prison when we are done messing with it.
|
#
111002 |
|
16-Feb-2003 |
phk |
Remove #include <sys/dkstat.h>
|
#
108172 |
|
22-Dec-2002 |
hsu |
SMP locking for ifnet list.
|
#
105663 |
|
21-Oct-2002 |
julian |
Remove the process state PRS_WAIT. It is never used. I left it there from pre-KSE days as I didn't know if I'd need it or not but now I know I don't.. It's functionality is in TDI_IWAIT in the thread.
|
#
104306 |
|
01-Oct-2002 |
jmallett |
Back our kernel support for reliable signal queues.
Requested by: rwatson, phk, and many others
|
#
104245 |
|
30-Sep-2002 |
jmallett |
(Forced commit, to clarify previous commit of ksiginfo/signal queue code.)
I've added a structure, kernel-private, to represent a pending or in-delivery signal, called `ksiginfo'. It is roughly analogous to the basic information that is exported by the POSIX interface 'siginfo_t', but more basic. I've added functions to allocate these structures, and further to wrap all signal operations using them.
Once the operations are wrapped, I've added a TailQ (see queue(3)) of these structures to 'struct proc', and all pending signals are in that TailQ. When a signal is being delivered, it is dequeued from the list. Once I finish the spreading of ksiginfo throughout the tree, the dequeued structure will be delivered to the process in question, whereas currently and normally, the signal number is what is used.
|
#
104233 |
|
30-Sep-2002 |
jmallett |
First half of implementation of ksiginfo, signal queues, and such. This gets signals operating based on a TailQ, and is good enough to run X11, GNOME, and do job control. There are some intricate parts which could be more refined to match the sigset_t versions, but those require further evaluation of directions in which our signal system can expand and contract to fit our needs.
After this has been in the tree for a while, I will make in kernel API changes, most notably to trapsignal(9) and sendsig(9), to use ksiginfo more robustly, such that we can actually pass information with our (queued) signals to the userland. That will also result in using a struct ksiginfo pointer, rather than a signal number, in a lot of kern_sig.c, to refer to an individual pending signal queue member, but right now there is no defined behaviour for such.
CODAFS is unfinished in this regard because the logic is unclear in some places.
Sponsored by: New Gold Technology Reviewed by: bde, tjr, jake [an older version, logic similar]
|
#
103767 |
|
21-Sep-2002 |
jake |
Use the fields in the sysentvec and in the vm map header in place of the constants VM_MIN_ADDRESS, VM_MAXUSER_ADDRESS, USRSTACK and PS_STRINGS. This is mainly so that they can be variable even for the native abi, based on different machine types. Get stack protections from the sysentvec too. This makes it trivial to map the stack non-executable for certain abis, on machines that support it.
|
#
103216 |
|
11-Sep-2002 |
julian |
Completely redo thread states.
Reviewed by: davidxu@freebsd.org
|
#
99072 |
|
29-Jun-2002 |
julian |
Part 1 of KSE-III
The ability to schedule multiple threads per process (one one cpu) by making ALL system calls optionally asynchronous. to come: ia64 and power-pc patches, patches for gdb, test program (in tools)
Reviewed by: Almost everyone who counts (at various times, peter, jhb, matt, alfred, mini, bernd, and a cast of thousands)
NOTE: this is still Beta code, and contains lots of debugging stuff. expect slight instability in signals..
|
#
96886 |
|
18-May-2002 |
jhb |
Change p_can{debug,see,sched,signal}()'s first argument to be a thread pointer instead of a proc pointer and require the process pointed to by the second argument to be locked. We now use the thread ucred reference for the credential checks in p_can*() as a result. p_canfoo() should now no longer need Giant.
|
#
94620 |
|
13-Apr-2002 |
jhb |
- p_cansee() needs the target process locked. - We need the proc lock held for more of procfs_doprocstatus().
|
#
94307 |
|
09-Apr-2002 |
jhb |
- Change fill_kinfo_proc() to require that the process is locked when it is called. - Change sysctl_out_proc() to require that the process is locked when it is called and to drop the lock before it returns. If this proves too complex we can change sysctl_out_proc() to simply acquire the lock at the very end and have the calling code drop the lock right after it returns. - Lock the process we are going to export before the p_cansee() in the loop in sysctl_kern_proc() and hold the lock until we call sysctl_out_proc(). - Don't call p_cansee() on the process about to be exported twice in the aforementioned loop.
|
#
93393 |
|
29-Mar-2002 |
alfred |
Protect proc struct (p_args and p_comm) when doing procfs IO that pulls data from it.
Submitted by: Jonathan Mini <mini@haikugeek.com>
|
#
92787 |
|
20-Mar-2002 |
jeff |
Remove references to vm_zone.h and switch over to the new uma API.
|
#
91334 |
|
26-Feb-2002 |
julian |
remove "discards qualifier" erro by not potentially writing to a const *.
|
#
91140 |
|
23-Feb-2002 |
tanimura |
Lock struct pgrp, session and sigio.
New locks are:
- pgrpsess_lock which locks the whole pgrps and sessions, - pg_mtx which protects the pgrp members, and - s_mtx which protects the session members.
Please refer to sys/proc.h for the coverage of these locks.
Changes on the pgrp/session interface:
- pgfind() needs the pgrpsess_lock held.
- The caller of enterpgrp() is responsible to allocate a new pgrp and session.
- Call enterthispgrp() in order to enter an existing pgrp.
- pgsignal() requires a pgrp lock held.
Reviewed by: jhb, alfred Tested on: cvsup.jp.FreeBSD.org (which is a quad-CPU machine running -current)
|
#
87543 |
|
08-Dec-2001 |
des |
Pull in more stuff from procfs now that it's been pseudofsized.
|
#
87275 |
|
03-Dec-2001 |
rwatson |
o Introduce pr_mtx into struct prison, providing protection for the mutable contents of struct prison (hostname, securelevel, refcount, pr_linux, ...) o Generally introduce mtx_lock()/mtx_unlock() calls throughout kern/ so as to enforce these protections, in particular, in kern_mib.c protection sysctl access to the hostname and securelevel, as well as kern_prot.c access to the securelevel for access control purposes. o Rewrite linux emulator abstractions for accessing per-jail linux mib entries (osname, osrelease, osversion) so that they don't return a pointer to the text in the struct linux_prison, rather, a copy to an array passed into the calls. Likewise, update linprocfs to use these primitives. o Update in_pcb.c to always use prison_getip() rather than directly accessing struct prison.
Reviewed by: jhb
|
#
85657 |
|
29-Oct-2001 |
dillon |
promote tv_sec in printf to make it type agnostic
|
#
85538 |
|
26-Oct-2001 |
phk |
Reporting device drivers by traversing cdevsw[] is at best a hack which may or may not return something which is partially right.
Disable the "devices" file until we find out what this is needed for, and what exactly those apps need.
This will allow cdevsw to become static again.
Approved by: DES
|
#
85289 |
|
21-Oct-2001 |
des |
Add proc/mtab which simulates a Linux system's /etc/mtab.
|
#
85130 |
|
18-Oct-2001 |
des |
#if 0 out some code that depends on other uncommitted patches.
|
#
85129 |
|
18-Oct-2001 |
des |
Adapt to pseudofs changes (dynamic initialization, not static). Use the new linux_ifname() function from the linuxulator rather than roll our own interface name translation.
|
#
84248 |
|
01-Oct-2001 |
des |
Catch up with the visibility callback stuff, and give up trying to keep the file definitions on single lines.
|
#
84189 |
|
30-Sep-2001 |
des |
Specify readability and / or writeability for all nodes that need it.
|
#
84150 |
|
29-Sep-2001 |
des |
Adapt to pseudofs version 2. Sorry about the breakage - I had this ready to commit along with the pseudofs patches, but just plain forgot.
|
#
83926 |
|
25-Sep-2001 |
des |
Clean up my source tree to avoid getting hit too badly by the next KSE or whatever mega-commit. No real functional changes, just some experiments / work in progress.
|
#
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
|
#
79335 |
|
05-Jul-2001 |
rwatson |
o Replace calls to p_can(..., P_CAN_xxx) with calls to p_canxxx(). The p_can(...) construct was a premature (and, it turns out, awkward) abstraction. The individual calls to p_canxxx() better reflect differences between the inter-process authorization checks, such as differing checks based on the type of signal. This has a side effect of improving code readability. o Replace direct credential authorization checks in ktrace() with invocation of p_candebug(), while maintaining the special case check of KTR_ROOT. This allows ktrace() to "play more nicely" with new mandatory access control schemes, as well as making its authorization checks consistent with other "debugging class" checks. o Eliminate "privused" construct for p_can*() calls which allowed the caller to determine if privilege was required for successful evaluation of the access control check. This primitive is currently unused, and as such, serves only to complicate the API.
Approved by: ({procfs,linprocfs} changes) des Obtained from: TrustedBSD Project
|
#
78116 |
|
11-Jun-2001 |
des |
Say one thing, do the other... nextpid -> lastpid
|
#
78113 |
|
11-Jun-2001 |
des |
Implement proc/cpuinfo for the Alpha (thanks to gallatin). Implement proc/pid/cmdline.
|
#
78031 |
|
10-Jun-2001 |
des |
Minor whitespace changes.
|
#
78025 |
|
10-Jun-2001 |
des |
New pseudofs-based linprocfs (repo-copied from linprocfs_misc.c).
|
#
77183 |
|
25-May-2001 |
rwatson |
o Merge contents of struct pcred into struct ucred. Specifically, add the real uid, saved uid, real gid, and saved gid to ucred, as well as the pcred->pc_uidinfo, which was associated with the real uid, only rename it to cr_ruidinfo so as not to conflict with cr_uidinfo, which corresponds to the effective uid. o Remove p_cred from struct proc; add p_ucred to struct proc, replacing original macro that pointed. p->p_ucred to p->p_cred->pc_ucred. o Universally update code so that it makes use of ucred instead of pcred, p->p_ucred instead of p->p_pcred, cr_ruidinfo instead of p_uidinfo, cr_{r,sv}{u,g}id instead of p_*, etc. o Remove pcred0 and its initialization from init_main.c; initialize cr_ruidinfo there. o Restruction many credential modification chunks to always crdup while we figure out locking and optimizations; generally speaking, this means moving to a structure like this: newcred = crdup(oldcred); ... p->p_ucred = newcred; crfree(oldcred); It's not race-free, but better than nothing. There are also races in sys_process.c, all inter-process authorization, fork, exec, and exit. o Remove sigio->sio_ruid since sigio->sio_ucred now contains the ruid; remove comments indicating that the old arrangement was a problem. o Restructure exec1() a little to use newcred/oldcred arrangement, and use improved uid management primitives. o Clean up exit1() so as to do less work in credential cleanup due to pcred removal. o Clean up fork1() so as to do less work in credential cleanup and allocation. o Clean up ktrcanset() to take into account changes, and move to using suser_xxx() instead of performing a direct uid==0 comparision. o Improve commenting in various kern_prot.c credential modification calls to better document current behavior. In a couple of places, current behavior is a little questionable and we need to check POSIX.1 to make sure it's "right". More commenting work still remains to be done. o Update credential management calls, such as crfree(), to take into account new ruidinfo reference. o Modify or add the following uid and gid helper routines: change_euid() change_egid() change_ruid() change_rgid() change_svuid() change_svgid() In each case, the call now acts on a credential not a process, and as such no longer requires more complicated process locking/etc. They now assume the caller will do any necessary allocation of an exclusive credential reference. Each is commented to document its reference requirements. o CANSIGIO() is simplified to require only credentials, not processes and pcreds. o Remove lots of (p_pcred==NULL) checks. o Add an XXX to authorization code in nfs_lock.c, since it's questionable, and needs to be considered carefully. o Simplify posix4 authorization code to require only credentials, not processes and pcreds. Note that this authorization, as well as CANSIGIO(), needs to be updated to use the p_cansignal() and p_cansched() centralized authorization routines, as they currently do not take into account some desirable restrictions that are handled by the centralized routines, as well as being inconsistent with other similar authorization instances. o Update libkvm to take these changes into account.
Obtained from: TrustedBSD Project Reviewed by: green, bde, jhb, freebsd-arch, freebsd-audit
|
#
76839 |
|
19-May-2001 |
jlemon |
Add new 'loadavg' entry, fix overflow with meminfo.
PR: 27253, 27350 Submitted by: Jim Pirzyk
|
#
76827 |
|
18-May-2001 |
alfred |
Introduce a global lock for the vm subsystem (vm_mtx).
vm_mtx does not recurse and is required for most low level vm operations.
faults can not be taken without holding Giant.
Memory subsystems can now call the base page allocators safely.
Almost all atomic ops were removed as they are covered under the vm mutex.
Alpha and ia64 now need to catch up to i386's trap handlers.
FFS and NFS have been tested, other filesystems will need minor changes (grabbing the vm lock when twiddling page properties).
Reviewed (partially) by: jake, jhb
|
#
76405 |
|
09-May-2001 |
des |
Avoid overflow when converting ticks to jiffies.
PR: 27215 Submitted by: Jim Pirzyk <Jim.Pirzyk@disney.com>
|
#
76166 |
|
01-May-2001 |
markm |
Undo part of the tangle of having sys/lock.h and sys/mutex.h included in other "system" header files.
Also help the deprecation of lockmgr.h by making it a sub-include of sys/lock.h and removing sys/lockmgr.h form kernel .c files.
Sort sys/*.h includes where possible in affected files.
OK'ed by: bde (with reservations)
|
#
75893 |
|
23-Apr-2001 |
jhb |
Change the pfind() and zpfind() functions to lock the process that they find before releasing the allproc lock and returning.
Reviewed by: -smp, dfr, jake
|
#
74135 |
|
12-Mar-2001 |
jlemon |
Eliminate global node types and instead use an operations vector for each node in order to make it easier to add new entries.
Rewrite the internal directory structure so that it is possible to have independent subdirectories. Utilize this to add /proc/net/dev.
Reviewed by: DES
|
#
73923 |
|
07-Mar-2001 |
jhb |
Just hold the proc lock while getting the parent's PID rather than a proctree lock.
|
#
72786 |
|
21-Feb-2001 |
rwatson |
o Move per-process jail pointer (p->pr_prison) to inside of the subject credential structure, ucred (cr->cr_prison). o Allow jail inheritence to be a function of credential inheritence. o Abstract prison structure reference counting behind pr_hold() and pr_free(), invoked by the similarly named credential reference management functions, removing this code from per-ABI fork/exit code. o Modify various jail() functions to use struct ucred arguments instead of struct proc arguments. o Introduce jailed() function to determine if a credential is jailed, rather than directly checking pointers all over the place. o Convert PRISON_CHECK() macro to prison_check() function. o Move jail() function prototypes to jail.h. o Emulate the P_JAILED flag in fill_kinfo_proc() and no longer set the flag in the process flags field itself. o Eliminate that "const" qualifier from suser/p_can/etc to reflect mutex use.
Notes:
o Some further cleanup of the linux/jail code is still required. o It's now possible to consider resolving some of the process vs credential based permission checking confusion in the socket code. o Mutex protection of struct prison is still not present, and is required to protect the reference count plus some fields in the structure.
Reviewed by: freebsd-arch Obtained from: TrustedBSD Project
|
#
72200 |
|
09-Feb-2001 |
bmilekic |
Change and clean the mutex lock interface.
mtx_enter(lock, type) becomes:
mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks) mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized)
similarily, for releasing a lock, we now have:
mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN. We change the caller interface for the two different types of locks because the semantics are entirely different for each case, and this makes it explicitly clear and, at the same time, it rids us of the extra `type' argument.
The enter->lock and exit->unlock change has been made with the idea that we're "locking data" and not "entering locked code" in mind.
Further, remove all additional "flags" previously passed to the lock acquire/release routines with the exception of two:
MTX_QUIET and MTX_NOSWITCH
The functionality of these flags is preserved and they can be passed to the lock/unlock routines by calling the corresponding wrappers:
mtx_{lock, unlock}_flags(lock, flag(s)) and mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN locks, respectively.
Re-inline some lock acq/rel code; in the sleep lock case, we only inline the _obtain_lock()s in order to ensure that the inlined code fits into a cache line. In the spin lock case, we inline recursion and actually only perform a function call if we need to spin. This change has been made with the idea that we generally tend to avoid spin locks and that also the spin locks that we do have and are heavily used (i.e. sched_lock) do recurse, and therefore in an effort to reduce function call overhead for some architectures (such as alpha), we inline recursion for this case.
Create a new malloc type for the witness code and retire from using the M_DEV type. The new type is called M_WITNESS and is only declared if WITNESS is enabled.
Begin cleaning up some machdep/mutex.h code - specifically updated the "optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently need those.
Finally, caught up to the interface changes in all sys code.
Contributors: jake, jhb, jasone (in no particular order)
|
#
71471 |
|
23-Jan-2001 |
jhb |
- Proc locking. - Use queue macros. - Use NULL instead of 0 for pointers.
Reviewed by: des
|
#
70889 |
|
10-Jan-2001 |
jake |
Protect proc.p_pptr with the proctree lock.
|
#
69995 |
|
13-Dec-2000 |
des |
Use kinfo_proc instead of eproc (which Kirk deep-sixed earlier this week)
Generate a version string that looks just like a real Linux one - almost :)
Use sbufs everywhere instead of sprintf(). Note that this is still imperfect, as the code does not check whether the sbuf overflowed - but it'll still work better than before, since if the sbuf overflows, the code now simply copies out 0 bytes instead of causing a trap (or worse, corrupting kernel structures)
|
#
69933 |
|
12-Dec-2000 |
des |
Point #includes at compat/linprocfs instead of i386/linux/linprocfs.
|
#
69799 |
|
09-Dec-2000 |
des |
A bunch of fixes that have been rotting in my tree for a month or two waiting for procfs to get fixed:
- Use fill_eproc() to obtain correct VM stats. Attempt to compute VmLib.
- Fill some more fields in proc/<pid>/stat, and add four (unimplemented) fields after studying a recent Linux kernel.
- Compute CPU frequency only once instead of twice.
- Fix some comments that were OBE.
- Fix indentation except where it makes the code less readable.
|
#
69442 |
|
01-Dec-2000 |
jhb |
Protect access to p_stat with sched_lock.
|
#
69275 |
|
27-Nov-2000 |
sobomax |
(null commit) Clarify message for previous commit (addition of "bogomips"):
IBM JDK was not broken in common sense, but its JIT (Just In Time bytecode compiler) uses number of occurences of "bogomips" in data read from /proc/cpuinfo to determine number of processors installed on machine. Number of processors determined in this "innovative" way then used to optimize JIT behaviour. Even more strangely that in the absence of "bogomips" in the data read from /proc/cpuinfo JIT assumes that it runs on SMP system. Since there is no way to fix misbehaving JIT (binary-only distro), we had to add bogos "bogomips".
|
#
69269 |
|
27-Nov-2000 |
des |
Add bogomips to cpuinfo (set it equal to the CPU frequency, which is bogus but not more so than Linux' definition). This should get the IBM JDK 1.3 working again.
Prompted by: sobomax
|
#
68377 |
|
06-Nov-2000 |
des |
Check that p->p_pptr is not NULL - kernel processes have no parents!
|
#
67589 |
|
25-Oct-2000 |
des |
Bring cpuinfo closer to what it looks like in Linux 2.2.
Submitted by: R Bradford Jones <brad@kazrak.com>
|
#
67588 |
|
25-Oct-2000 |
des |
Add /proc/<pid>/status and /proc/<pid>/stat (the latter being mostly zeroes for the time being).
Prompted by: Nathan Boeger <nathan@khmere.com>
|
#
65635 |
|
09-Sep-2000 |
des |
Remove unused variables.
|
#
65633 |
|
09-Sep-2000 |
des |
Add stat, uptime and version. Note that version currently returns the first line of the version string from vers.c, which is not quite what a Linux system would return.
|
#
65577 |
|
07-Sep-2000 |
des |
Pierre Beyssac originally derived linprocfs from procfs, and I've made (and will keep making) significant modifications, so I'm adding both our copyrights to the top of these files.
|
#
64560 |
|
12-Aug-2000 |
bde |
Fixed null pointer panic for accessing "meminfo" when there is no swap.
|
#
60860 |
|
24-May-2000 |
des |
Make exe a symlink.
|
#
59458 |
|
21-Apr-2000 |
msmith |
Fix include paths so that this builds correctly.
Submitted by: Mike Pritchard <mpp@mppsystems.com>
|
#
59412 |
|
20-Apr-2000 |
msmith |
Move the linprocfs bits under the rest of the i386 linux compatibility code.
|