vm: Change 'kernel_map' global to type of 'struct vm_map *'Change the global variable 'kernel_map' from type 'struct vm_map' to apointer to this struct. This simplify the code a bit since allinv
vm: Change 'kernel_map' global to type of 'struct vm_map *'Change the global variable 'kernel_map' from type 'struct vm_map' to apointer to this struct. This simplify the code a bit since allinvocations take its address. This change also aligns with NetBSD's'kernal_map' that it's also a pointer, which also helps the porting ofNVMM.No functional changes.
show more ...
world - Change serial port default from 9600 to 115200* Long overdue change, all serial port defaults are now set to 115200.* NOTE: legacy BIOS boot0/boot1 use int 0x14 to set the serial cons
world - Change serial port default from 9600 to 115200* Long overdue change, all serial port defaults are now set to 115200.* NOTE: legacy BIOS boot0/boot1 use int 0x14 to set the serial console baud rate. This BIOS call only supports up to 9600. But once you get into the boot loader it should be able to set the correct baud rate.
world/kernel: Use the rounddown() macro in various places.Tested-by: zrj
kernel - VM rework part 3 - Cleanup pass* Cleanup various structures and code
ddb: Some minor adjustments.
kernel: Nuke legacy FreeBSD "%r" format support.Makes a quite a cleanup in subr_prf.c and less hits against thingslike "%rip". Only one custom format remains - "%b".
ddb(4): Remove use of deprecated "%r" radix format.Use internal helpers like for "%z" to print numbers.Taken-from: NetBSD (with adaptations by swildner)
<sys/types.h>: Remove <machine/stdarg.h> and adjust some headers.Userland utilities should not use __va_* definitions and kernel already hasthe <machine/stdarg.h> in <systm.h>.Submitted-by: swil
<sys/types.h>: Remove <machine/stdarg.h> and adjust some headers.Userland utilities should not use __va_* definitions and kernel already hasthe <machine/stdarg.h> in <systm.h>.Submitted-by: swildner
kernel - add 'i' command to ddb* Add the 'i' command, which just issues a cpu_invltlb() on the current cpu. Useful when testing MMU/PMAP issues.
kernel/ddb: Fix type mismatch in different objects.Found while playing with LTO.While there, use true/false types from <sys/types.h>.
kernel - Remove PG_ZERO and zeroidle (page-zeroing) entirely* Remove the PG_ZERO flag and remove all page-zeroing optimizations, entirely. Aftering doing a substantial amount of testing, these
kernel - Remove PG_ZERO and zeroidle (page-zeroing) entirely* Remove the PG_ZERO flag and remove all page-zeroing optimizations, entirely. Aftering doing a substantial amount of testing, these optimizations, which existed all the way back to CSRG BSD, no longer provide any benefit on a modern system. - Pre-zeroing a page only takes 80ns on a modern cpu. vm_fault overhead in general is ~at least 1 microscond. - Pre-zeroing a page leads to a cold-cache case on-use, forcing the fault source (e.g. a userland program) to actually get the data from main memory in its likely immediate use of the faulted page, reducing performance. - Zeroing the page at fault-time is actually more optimal because it does not require any reading of dynamic ram and leaves the cache hot. - Multiple synth and build tests show that active idle-time zeroing of pages actually reduces performance somewhat and incidental allocations of already-zerod pages (from page-table tear-downs) do not affect performance in any meaningful way.* Remove bcopyi() and obbcopy() -> collapse into bcopy(). These other versions existed because bcopy() used to be specially-optimized and could not be used in all situations. That is no longer true.* Remove bcopy function pointer argument to m_devget(). It is no longer used. This function existed to help support ancient drivers which might have needed a special memory copy to read and write mapped data. It has long been supplanted by BUSDMA.
kernel - Enhance the examine (x) command.* Change x/a to work similar to gdb. The content of the memory is treated as an address, printed symbolically and the address is advanced. This way you
kernel - Enhance the examine (x) command.* Change x/a to work similar to gdb. The content of the memory is treated as an address, printed symbolically and the address is advanced. This way you can x/a <stack_address> and then just hit return a bunch of times to locate useful data on the stack.* Add x/p. The content of the memory is treated as an address and printed as hex.
kernel - Change where dump context is saved* Save the dump context a little earlier in the panic to improve chances that post-morten kgdb can print the stack backtrace.* Use a function union fo
kernel - Change where dump context is saved* Save the dump context a little earlier in the panic to improve chances that post-morten kgdb can print the stack backtrace.* Use a function union for variable arguments calls from ddb>
kernel/ddb: Change some function definitions to static.All these were already declared static.
i386 removal, part 34/x: Remove some i386 traces from the kernel.
kernel: Add prototypes for setjmp()/longjmp() to <sys/systm.h>.Used by ddb and vinum. Remove the inclusion of the <setjmp.h> userspaceheader.
kernel - Fix live lock in vfs_conf.c mountroot>* The mountroot> prompt calls cngetc() to process user input. However, this function hard loops and can prevent other kernel threads from running o
kernel - Fix live lock in vfs_conf.c mountroot>* The mountroot> prompt calls cngetc() to process user input. However, this function hard loops and can prevent other kernel threads from running on the current cpu.* Rearrange the code to use cncheckc() and a 1/25 second tsleep().* Fix a bug in the syscons code where NOKEY was not being properly returned as documented. Modify all use cases to handle NOKEY. This allows us to differentiate between a keyboard present but not key pressed and a keyboard not present.* Pull the automatic polling mode code out of cncheckc() (or more precisely, out of sccncheckc()) and add a new cnpoll() API function to set it manually. This fixes issues in vfs_conf when normal keyboard processing interrupts are operational and cncheckc() is used with a tsleep() delay. The normal processing interrupt wound up eating the keystrokes so the cncheckc() basically always failed. cncheckc() in general also always had a small window of opportunity where a keystroke could be lost due loops on it.* Call cnpoll() in various places, such as when entering the debugger, asking for input in vfs_conf, and a few other places.
Use <sys/param.h>'s roundup() in a few places.
kernel/ddb: Add a DB_COMMAND_FLAG() macro to set the flag, too.
kernel/ddb: Use NULL for pointers.
kernel/wlan: Fix up the MAC address printing and add back __printflike()s.In the recent wlan, iwn and ath upgrades, porting this properly was hackedaround by removing the __printflike()s because D
kernel/wlan: Fix up the MAC address printing and add back __printflike()s.In the recent wlan, iwn and ath upgrades, porting this properly was hackedaround by removing the __printflike()s because DragonFly has no supportfor %D (neither in GCC nor in kprintf()). This is wrong because eventhough it silences the warning, it will still not print MAC addressescorrectly. So bring all that back.Also update the wlan's README.DRAGONFLY with some information about howto port this properly.
kern: Address set-but-unused warnings (mostly)On of these is an [-Werror=logical-not-parenthesis] error.This is as far as I can get without implementing %r format again.
wlan - Update wlan from Adrian / FreeBSD* Update the wlan infrastructure, initially working with ath.
kernel: Don't pass the size of the var as arg2 to sysctl_handle_int().arg1 (second parameter) is for passing a variable and arg2 (thirdparameter) is for passing a constant (in which case arg1 is N
kernel: Don't pass the size of the var as arg2 to sysctl_handle_int().arg1 (second parameter) is for passing a variable and arg2 (thirdparameter) is for passing a constant (in which case arg1 is NULL).
kernel - Fix crypto boots and rescue boots* The kernel text+data+bss is too big, the loader's 64MB heap can't fit it plus modules plus the initrd image any more. Fix by reducing the kernel's B
kernel - Fix crypto boots and rescue boots* The kernel text+data+bss is too big, the loader's 64MB heap can't fit it plus modules plus the initrd image any more. Fix by reducing the kernel's BSS.* Reduce the BSS allocation for CPU_prvspace[] from 11MB (45056 x 256 cpus) to ~45056 for the BSP and dynamically allocate the globaldata space for the APs. Also saves ~11MB of ram or so on normal systems.* Reduce the BSS allocation for cpu_map_entry_init[]. Only the BSP needs MAXCPU+1 pre-cached vm_map_entry structures. The APs can make due with 8 or so before the VM system comes up sufficiently to dynamically allocate these structures. This saves around ~6.5MB of ram on normal systems.
12345