7937 Commits

Author SHA1 Message Date
phk
c67c50f50e Remove the cdevsw() function which is now unused. 2004-09-24 08:30:57 +00:00
phk
6ee26d135f Hold threadcount while throbbing cdevsw in our underlying driver.
This is a bit heavyhanded, and will be simplified once the tty code
learns to properly deal with disappearing hw and drivers.
2004-09-24 08:26:03 +00:00
phk
14a7813f86 Hold threadcount reference when we call into the underlying console
driver.
2004-09-24 07:16:56 +00:00
phk
615a2ebb57 Eliminate devsw() call, we are not dereferencing the pointer. 2004-09-24 07:11:02 +00:00
phk
88cf2bf7b8 Hold threadref while we throb cdevsw in devtoname() 2004-09-24 06:29:23 +00:00
phk
19aa7ffe99 Use vn_isdisk() to check if vnode is a disk.
(repeat, CVS core dumped on me)
2004-09-24 06:23:31 +00:00
phk
d04b40f97c use vn_isdisk() to see if vnode is a disk. 2004-09-24 06:21:43 +00:00
phk
ee853f3efd Hold dev_lock and check for NULL devsw pointer when we service FIODTYPE ioctl. 2004-09-24 06:16:48 +00:00
phk
5536d5757b Hold dev_lock and check for NULL devsw pointer when we determine
if a vnode is a disk.
2004-09-24 06:16:08 +00:00
phk
18b8697aaa use dev_re[fl]thread() rather than home rolled versions. 2004-09-24 05:55:03 +00:00
phk
7ede6d888c Introduce dev_re[lf]thread() functions.
dev_refthread() will return the cdevsw pointer or NULL.  If the
return value is non-NULL a threadcount is held which much be released
with dev_relthread().  If the returned cdevsw is NULL no threadcount
is held on the device.
2004-09-24 05:54:32 +00:00
jhb
7b666b4137 A modest collection of various and sundry style, spelling, and whitespace
fixes.

Submitted by:	bde (mostly)
2004-09-24 00:38:15 +00:00
cognet
49654e152d On arm, set the default elf brand to FreeBSD, until the binutils do it for us. 2004-09-23 23:29:24 +00:00
jhb
d0df115aaa Don't try to protect td_sticks with sched_lock. It doesn't need it as it
is only accessed by curthread.
2004-09-23 21:03:58 +00:00
jhb
f6dc0c3d5f - Assert sched_lock in upcall_remove() since it is needed there and all
callers already lock it there.
- Lock sched_lock slightly earlier in kse_create() so that it covers
  kg_numupcalls.
2004-09-23 21:03:16 +00:00
jhb
1f2758a712 - Don't try to unlock Giant if single threading fails since we don't have
it locked.
- Unlock Giant before calling exit1() since exit1() does not require Giant.
2004-09-23 21:01:50 +00:00
phk
eb5eea42df Split the ioctl function in control and slave side, this eliminated
a troublesome devsw() call.
2004-09-23 16:13:46 +00:00
phk
1d992e18ec Eliminate DEV_STRATEGY() macro: call dev_strategy() directly.
Make dev_strategy() handle errors and departing devices properly.
2004-09-23 14:45:04 +00:00
pjd
99b0ffd3c0 Introduce new /boot/loader.conf variable: root_mount_delay.
It can be used to delay mounting root partition to give a chance to GEOM
providers to show up.
Now, when there is no needed provider, vfs_rootmount() function will look
for it every second and if it can't be find in defined time, it'll ask
for root device name (before this change it was done immediately).

This will allow to boot from gmirror device in degraded mode.
2004-09-23 10:13:18 +00:00
phk
3947e54e89 Do not refcount the cdevsw, but rather maintain a cdev->si_threadcount
of the number of threads which are inside whatever is behind the
cdevsw for this particular cdev.

Make the device mutex visible through dev_lock() and dev_unlock().
We may want finer granularity later.

Replace spechash_mtx use with dev_lock()/dev_unlock().
2004-09-23 07:17:41 +00:00
jhb
3956303607 Various small style fixes. 2004-09-22 15:24:33 +00:00
julian
5015e1ce1f Revert the last change..
Better to kill all other threads than to panic the system if 2 threads call
execve() at the same time. A better fix will be committed later.

Note that this only affects the case where the execve fails.
2004-09-22 01:30:23 +00:00
julian
fca3e8d0f0 In a threaded process, don't kill off all the other threads until we have a
reasonable chance that the eceve() is going to succeeed. I.e.
wait until we've done the permission checks etc.

MFC after:	1 week
2004-09-21 21:05:13 +00:00
phk
3441ee7248 If a vnode has no v_rdev we cannot hope to answer FIODTYPE ioctl. 2004-09-21 08:33:05 +00:00
jhb
777f907276 Remove unused macro. 2004-09-20 19:01:44 +00:00
brian
255869f387 CTASSERT that MSZIE is a power of 2 (otherwise dtom() breaks)
Ask uma_zcreate() to align mbufs to MSIZE bytes (otherwise dtom() breaks)

As it happens, uma_zalloc_arg() always returned mbufs aligned to MSIZE
anyway, but that was an implementation side-effect....

KASSERT -> CTASSERT suggested by: dd@
Approved by:	silence on -net
2004-09-20 08:52:04 +00:00
das
8b64b8f028 The zone from which proc structures are allocated is marked
UMA_ZONE_NOFREE to guarantee type stability, so proc_fini() should
never be called.  Move an assertion from proc_fini() to proc_dtor()
and garbage-collect the rest of the unreachable code.  I have retained
vm_proc_dispose(), since I consider its disuse a bug.
2004-09-19 18:34:17 +00:00
phk
37dd5c7419 Initialize new ttys a bit more.
Check TS_GONE flag for gone-ness.
2004-09-18 17:02:18 +00:00
marcel
f2afc2cd7a Move makectx() after kdb_cpu_trap(), so the PCB will have possible MD
corrections made to the trapframe. This is more logical.
2004-09-17 22:27:23 +00:00
phk
1b1b81c0fc Add ttyopen and ttyclose functions which will do the right stuff for
most if not all of our tty drivers in the future.

Centralizing this stuff enables us to remove about 100 lines of
almost but not quite perfectly copy&paste code from each tty driver.
2004-09-17 11:43:35 +00:00
phk
f8ef366cb9 Add ttyalloc() which in due time will be the successor to ttymalloc(),
but without the "struct tty *" argument.
2004-09-17 06:13:47 +00:00
phk
a64f45cafb Use the tty->t_sc field to find our softc. 2004-09-16 12:07:25 +00:00
julian
6461286b21 clean up thread runq accounting a bit.
MFC after:	3 days
2004-09-16 07:12:59 +00:00
julian
b4933d4405 e specific code to revert a partial add ot teh run queue, not
remrunqueue() which can't handle a partially added thread.

MFC after:	1 week
2004-09-16 05:37:40 +00:00
phk
02df7323ee Remove unused B_WRITEINPROG flag 2004-09-15 21:49:22 +00:00
phk
43f0dbec3c Simplify initialization of va_null a little bit. 2004-09-15 21:42:03 +00:00
phk
7bf1722b65 undent some functions a bit. 2004-09-15 21:08:58 +00:00
phk
b2c5cf5b2a stylistic polishing. 2004-09-15 20:54:23 +00:00
julian
2e88fd3281 Try harder to get back to being a non threaded process.
Submitted by:	DavidXu
MFC after:	3 days
2004-09-15 18:39:09 +00:00
julian
d7dd18c6b5 Oops accidentally removed #ifdef SCHED_4BSD
as part of another commit
This function is not yet used in ULE
2004-09-15 03:51:51 +00:00
jmg
ab70754605 unlock global lock in kqueue_scan before msleep'ing to prevent dead
lock..  we didn't unlock global lock earlier to prevent just having
to reaquire it again..

Found by:	peter
Reviewed by:	ps
MFC after:	3 days
2004-09-14 18:38:16 +00:00
julian
2e10eab995 Commit a fix for some panics we've been seeing with preemption.
MFC after:	2 days
2004-09-13 23:06:39 +00:00
julian
0b88c839d5 Add some kasserts 2004-09-13 23:02:52 +00:00
julian
29732c6fb7 make some of these conditions apply equally to both threading systems. 2004-09-13 22:10:04 +00:00
phk
a915c8947e Create struct snapdata which contains the snapshot fields from cdev
and the previously malloc'ed snapshot lock.

Malloc struct snapdata instead of just the lock.

Replace snapshot fields in cdev with pointer to snapdata (saves 16 bytes).

While here, give the private readblock() function a vnode argument
in preparation for moving UFS to access GEOM directly.
2004-09-13 07:29:45 +00:00
phk
2806321da1 Remove the buffercache/vnode side of BIO_DELETE processing in
preparation for integration of p4::phk_bufwork.  In the future,
local filesystems will talk to GEOM directly and they will consequently
be able to issue BIO_DELETE directly.  Since the removal of the fla
driver, BIO_DELETE has effectively been a no-op anyway.
2004-09-13 06:50:42 +00:00
scottl
1e56230631 Revert the previous round of changes to td_pinned. The scheduler isn't
fully initialed when the pmap layer tries to call sched_pini() early in the
boot and results in an quick panic.  Use ke_pinned instead as was originally
done with Tor's patch.

Approved by: julian
2004-09-11 10:07:22 +00:00
julian
4b041e0e33 Try committing from the right tree this time
MFC after:	2 days
2004-09-11 00:11:09 +00:00
julian
7cae3c9d5b Make up my mind if cpu pinning is stored in the thread structure or the
scheduler specific extension to it. Put it in the extension as
the implimentation details of how the pinning is done needn't be visible
outside the scheduler.

Submitted by:	tegge  (of course!)   (with changes)
MFC after:	3 days
2004-09-10 22:28:33 +00:00
julian
9993c65718 Add some code to allow threads to nominat a sibling to run if theyu are going to sleep.
MFC after:	1 week
2004-09-10 21:04:38 +00:00