Age | Commit message (Collapse) | Author |
|
for blocks re-fetchable from the filesystem. However at reboot time,
filesystems are unmounted, and since processes lack backing store they
are killed. Since the scheduler is still running, in some cases init is
killed... which drops us to ddb [noted by bluhm]. Solution is to convert
filesystems to read-only [proposed by kettenis]. The tale follows:
sys_reboot() should pass proc * to MD boot() to vfs_shutdown() which
completes current IO with vfs_busy VB_WRITE|VB_WAIT, then calls VFS_MOUNT()
with MNT_UPDATE | MNT_RDONLY, soon teaching us that *fs_mount() calls a
copyin() late... so store the sizes in vfsconflist[] and move the copyin()
to sys_mount()... and notice nfs_mount copyin() is size-variant, so kill
legacy struct nfs_args3. Next we learn ffs_mount()'s MNT_UPDATE code is
sharp and rusty especially wrt softdep, so fix some bugs adn add
~MNT_SOFTDEP to the downgrade. Some vnodes need a little more help,
so tie them to &dead_vnops.
ffs_mount calling DIOCCACHESYNC is causing a bit of grief still but
this issue is seperate and will be dealt with in time.
couple hundred reboots by bluhm and myself, advice from guenther and
others at the hut
|
|
ok patrick@, deraadt@
|
|
ok deraadt@
|
|
gcc is documented as ignoring whitespace in any position but the first
clang gives "error: invalid output constraint '=r ' in asm".
|
|
|
|
pthread_exit from libpthread to libc, along with low-level bits to
support them. Major bump to both libc and libpthread.
Requested by libressl team. Ports testing by naddy@
ok kettenis@
|
|
of the /chosen node in the device tree to decide whether the framebuffer
should be used as the console device. Most, if not all, machines will
have that set to use a serial console and there is no easy way yet to
change that.
ok jsg@
|
|
|
|
|
|
ok drahn@
|
|
|
|
type for storing pointers in our universe. Avoids an implicit dependence
on <sys/types.h>.
ok tom@
|
|
documentation.
ok patrick@, tom@
|
|
according to POSIX.
ok bluhm@, deraadt@
|
|
"fire away!" tedu
|
|
|
|
correct prologue if compiled with -DPROF.
ok deraadt@
|
|
Pointed out by deraadt@
|
|
- keep setbits/clearbits and virtio barriers inside _KERNEL
- prefix def_atomic_xxx macros with underscores
|
|
this is so drivers can advertise that they can handle 64 dma addresses
to the platform. it may choose to handle dmamaps differently based
on this flag.
tweaks and ok tom@
ok kettenis@
|
|
|
|
check we had before rev 1.16.
Suggested by jmatthew@
|
|
ok visa@, patrick@, drahn@
|
|
Using a name with the 'db_' prefix makes it invisible from the dynamic
profiler.
ok deraadt@, kettenis@, visa@
|
|
It doesn't compile und hasn't been working during the last decade.
ok kettenis@, deraadt@
|
|
|
|
a byte or a half-word is needed. Certain implementations of the Synopsis
Designware copy-and-paste logic blocks don't respond to transactions that
are smaller than a word.
Fixes the serial console on boards with a Rockchip RK3288.
|
|
they have a different ID from "real" Cortex-A17 cores.
ok phessler@, patrick@
|
|
|
|
in struct mdproc. With that, all archs have those and the __HAVE_MD_TCB
macro can be unifdef'ed as always defined.
ok kettenis@ visa@ jsing@
|
|
an element for each CPU. Use this mask directly instead of converting
it into a cpu number and back into a mask again when routing interrupts.
This avoids the need to handle uniprocessor systems in a special way
as they will return 0 as the mask (the relevant register is defined as RAZ)
and ignore what's written into the destination registers (the relevant
registers are defined as WI).
Future code that hatches the secondary CPUs will have to call into the
driver to establish the masks for those CPUs.
ok patrick@
|
|
space for which we have a userland mapping.
ok jca@
|
|
code as well to improve diffability. Changes the types used in the arm64
"struct sigcontext" to avoid having to include <sys/types.h>.
ok deraadt@
|
|
the target CPU interface when establishing an interrupt. Makes interrupts
work on machines that boot up on a CPU that is attached to a CPU interface
that isn't zero.
Discussed with Dale Rahn.
|
|
From Markus Hennecke, thanks
|
|
machdep.lidaction=0 # do nothing
machdep.lidaction=1 # suspend
machdep.lidaction=2 # hibernate
lidsuspend is just an alias for lidaction, so if you change one, the
other one will have the same value. The plan is to remove
machdep.lidsuspend eventually when people have upgraded their
/ets/sysctl.conf.
discussed with deraadt, who came up with the new MIB name
no objections mlarkin
ok stsp halex jcs
|
|
unsigned variables as argument in most places anyway. Decrease the
chance of signedness/range mismatch issues.
ok stefan
|
|
Needed for ports/devel/llvm which builds large executables with a .text
section over 32M. Remove the comment about the +/-32M limitation of
branch instructions, which can be lifted using other techniques
(eg cc -mlong-calls) and should not be enforced by the kernel.
ok guenther@ patrick@ jsg@ kettenis@
|
|
- FORK_THREAD handling is a totally separate function, thread_fork(),
that is only used by sys___tfork() and which loses the flags, func,
arg, and newprocp parameters and gains tcb parameter to guarantee
the new thread's TCB is set before the creating thread returns
- fork1() loses its stack and tidptr parameters
Common bits factor out:
- struct proc allocation and initialization moves to thread_new()
- maxthread handling moves to fork_check_maxthread()
- setting the new thread running moves to fork_thread_start()
The MD cpu_fork() function swaps its unused stacksize parameter for
a tcb parameter.
luna88k testing by aoyama@, alpha testing by dlg@
ok mpi@
|
|
leaving out the size, so that
ELFNAME2(exec,makecmds)
becomes
exec_elf_makecmds
instead of
exec_elf{32,64}_makecmds
and then delete the ELFNAME2() and ELFNAMEEND() macros.
Move the prototypes for functions local to exec_elf.c to there from
exec_elf.h.
Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
Change exec_conf.c to use the size-generic names and macros
Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
_KERN_DO_ELF and _KERN_DO_ELF64 #defines.
ok jca@, encouragement from deraadt@ and tom@
|
|
these currently to 255. Thus making it impossible to use higher IRQs
than that. The AMD Seattle SoC though seems to provide 448 IRQs, which
is kind of out of bounds, so raise them to the proper values. This
makes interrupts work on that machine.
|
|
this has been pointed out to me by a couple of people now.
|
|
While here document prfind(9.
with and ok guenther@
|
|
|
|
|
|
virtio itself is not PCI, it is a paravirtual bus on top of either PCI
or MMIO (arm). This is the first step of moving the virtio files to
dev/pv. No functional change.
arm kernel changes tested by jsg@ and patrick@
no objections from sf@ mlarkin@
|
|
struct proc to struct process.
ok deraadt@ kettenis@
|
|
OK mpi@
|
|
|
|
ok kettenis@ patrick@
|