#
fcf6efef |
| 02-Mar-2019 |
Sascha Wildner <saw@online.de> |
kernel: Remove numerous #include <sys/thread2.h>.
Most of them were added when we converted spl*() calls to crit_enter()/crit_exit(), almost 14 years ago. We can now remove a good chunk of them agai
kernel: Remove numerous #include <sys/thread2.h>.
Most of them were added when we converted spl*() calls to crit_enter()/crit_exit(), almost 14 years ago. We can now remove a good chunk of them again for where crit_*() are no longer used.
I had to adjust some files that were relying on thread2.h or headers that it includes coming in via other headers that it was removed from.
show more ...
|
#
2efb75f3 |
| 04-Oct-2018 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Refactor tty_token, fix SMP performance issues
* Remove most uses of tty_token in favor of per-tty tp->t_token. This is particularly important for removing bottlenecks related to PTYs,
kernel - Refactor tty_token, fix SMP performance issues
* Remove most uses of tty_token in favor of per-tty tp->t_token. This is particularly important for removing bottlenecks related to PTYs, which are used all over the place. tty_token remains in a few places managing overall registration and global list manipulation.
* tty structures are now required to be persistent. Implement a sepearate ttyinit() function. Continue to allow ttyregister() and ttyunregister() calls, but these no longer presume destruction of the structure.
* Refactor ttymalloc() to take a **tty pointer and interlock allocations. Allocations are intended to be one-time. ttymalloc() only requires the tty_token for initial allocations.
* Remove all critical section use that was combined with tty_token and tp->t_token. Leave only the tokens. The critical sections were hold-overs going all the way back to pre-SMP days.
* syscons now gets its own token, vga_token. The ISA VGA code and the framebuffer code also now use this token instead of tty_token.
* The keyboard subsystem now uses kbd_token instead of tty_token.
* A few remaining serial-like devices (snp, nmdm) also get their own tokens, as well as use the now required tp->t_token.
* Remove use of tty_token in the session management code. This fixes a niggling performance path since sessions almost universally go hand-in-hand with fork/exec/exit sequences. Instead we use the already-existing per-hash session token.
show more ...
|
#
539fbd92 |
| 26-Jun-2015 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix syscons deadlock during panic
* The system console can deadlock during a panic if a cpu is stopped while holding syscons_mtx.
* The new asynchronous update thread makes this problem
kernel - Fix syscons deadlock during panic
* The system console can deadlock during a panic if a cpu is stopped while holding syscons_mtx.
* The new asynchronous update thread makes this problem more likely to occur.
* Fix the problem by recoding syscons_lock() to detect the panic or shutdown condition and loop for up to 0.5 seconds trying to get the syscons_mtx. If it is unable to acquire it, it reinitializes the mutex.
* We still have issues with VT switching away from X.
show more ...
|
#
7ae6dbf0 |
| 19-Jun-2015 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel/syscons - Fix excessive cpu latency during scrolling
* Scrolling a high-resolution (e.g. 4K monitor) kms console with the syscons spinlock held can prevent the cpu from being able to servic
kernel/syscons - Fix excessive cpu latency during scrolling
* Scrolling a high-resolution (e.g. 4K monitor) kms console with the syscons spinlock held can prevent the cpu from being able to service interrupts for very long periods of time, enough to cause clicking and other audio issues.
* The previous hack tried to fix this by allowing yields inside the render loop, but this was not stable and did not completely solve the clicking.
* The new solution is to shove large screen updates off to a cothread which will then run the update lockless, allowing interrupts. Minor frame buffer corruption can occur during scrolling but will be quickly cleaned up.
This feature is disabled if the system is in the middle of a panic or shutdown.
show more ...
|
#
a6aa3935 |
| 11-Jun-2015 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Reduce interrupt latency during large framebuffer updates
* When syscons scrolls the entire framebuffer is updated. On large (e.g. 4K) displays this can take excessively long and delay i
kernel - Reduce interrupt latency during large framebuffer updates
* When syscons scrolls the entire framebuffer is updated. On large (e.g. 4K) displays this can take excessively long and delay interrupts on the cpu for too long.
* Causes the hard sound interrupt to have high latencies and not operate properly.
* Solved by releasing the syscons_lock() temporarily and issuing a splz() during long copy operations.
Reported-by: swildner, others
show more ...
|
#
219917ca |
| 10-Jun-2015 |
Sascha Wildner <saw@online.de> |
kernel/syscons: Add simple font scaling when using KMS drivers.
This commit lets the user choose the number of columns for KMS syscons with a new tunable, kern.kms_columns. If it is not set, the def
kernel/syscons: Add simple font scaling when using KMS drivers.
This commit lets the user choose the number of columns for KMS syscons with a new tunable, kern.kms_columns. If it is not set, the default is to scale as close as possible to 80x25 using natural numbers as scaling factors (e.g., on 1680x1050 the default would be a 105x32 char console using a 16x32 font).
The commit also separates (scaled) character drawing into a new function, blit_blk(), and does some cleanups.
Submitted-by: dillon
show more ...
|
#
ef56dbd7 |
| 04-Aug-2013 |
François Tigeot <ftigeot@wolfpond.org> |
drm2: Synchronize with FreeBSD
as of r253709 (2013-07-27): The pmap_qenter() and pmap_qremove() perform TLB invalidation on its own, no need to call pmap_invalidate_range() one more time.
|
#
766a68c8 |
| 01-Sep-2010 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix multiple tty_token issues related to vt switching and X
* Numerous places where gettoken/reltoken was not matched up
* Of particular note the multi-line macros in fbreg.h did not have
kernel - Fix multiple tty_token issues related to vt switching and X
* Numerous places where gettoken/reltoken was not matched up
* Of particular note the multi-line macros in fbreg.h did not have any do/while() protection and were being used in if() macro() situations which caused massive issues.
Reported-by: Everyone
show more ...
|
#
3c2ade05 |
| 30-Aug-2010 |
Alex Hornung <ahornung@gmail.com> |
syscons MPSAFE - another attempt
* Do another pass on syscons and reduce the number of token uses significantly.
* syscons now works with a limited number of tokens, acquired almost only around
syscons MPSAFE - another attempt
* Do another pass on syscons and reduce the number of token uses significantly.
* syscons now works with a limited number of tokens, acquired almost only around linesw and vidsw routines, but out of the way of tty_cons.
show more ...
|
#
5688255a |
| 29-Aug-2010 |
Alex Hornung <ahornung@gmail.com> |
MPSAFE TTY - get rid of tokens in console path
* The console path (coming through tty_cons.c) can never block, so do not try to acquire tokens there.
Reported-by: Jan Lentfer
|
#
22ff886e |
| 27-Aug-2010 |
Alex Hornung <ahornung@gmail.com> |
MPSAFE - TTY & related drivers
* Put kern/tty_* under the tty_token (and acquire the proc_token where needed).
* MPSAFE all related drivers (users of kbdsw, linesw and vidsw) with the same tty_
MPSAFE - TTY & related drivers
* Put kern/tty_* under the tty_token (and acquire the proc_token where needed).
* MPSAFE all related drivers (users of kbdsw, linesw and vidsw) with the same tty_token.
* NOTE: syscons.c and scvgarndr.c are not really under this new lock yet as some really strange hangs appear. Some are related to the cursor drawing (which stalls the machine if a token is held) and others are in some other syscons.c functions.
show more ...
|
#
771006e1 |
| 29-Mar-2010 |
Sascha Wildner <saw@online.de> |
syscons(4): Add support for 8 bit packed pixel modes.
|
#
21343892 |
| 21-Mar-2010 |
Sascha Wildner <saw@online.de> |
syscons(4): Base renderer selection on the new mode's memory model.
Remove the hack that was initializing the renderer's functions after switching.
|
#
03c040a2 |
| 10-Aug-2008 |
Sascha Wildner <swildner@dragonflybsd.org> |
Remove unused variable.
Found-by: LLVM/Clang Static Analyzer
|
#
4e193d20 |
| 09-Jan-2008 |
Sascha Wildner <swildner@dragonflybsd.org> |
Remove a lot of old, mummified code whose sole purpose was probing and initialization of ye olde mono adapter/color adapter combination.
Instead of this, generally assume that we are dealing with on
Remove a lot of old, mummified code whose sole purpose was probing and initialization of ye olde mono adapter/color adapter combination.
Instead of this, generally assume that we are dealing with one VGA card.
After this commit, the VGA code is still a mess, but a slightly smaller one. :)
show more ...
|
#
9c06b297 |
| 19-Feb-2006 |
Sascha Wildner <swildner@dragonflybsd.org> |
* Remove unused SC_RENDER_DEBUG option.
* While I'm in LINT, add VGA_DEBUG and VESA_DEBUG. Also, set SC_DEBUG_LEVEL to 5 (the maximum value used).
|
#
47d95543 |
| 26-May-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
* Declare vtb_buffer as a pointer to uint16_t and get rid of sc_vtb_pointer() and some casts.
* Use the standard uint16_t type instead of u_int16_t.
* Use M_ZERO instead of explicitly bzero()ing.
* Declare vtb_buffer as a pointer to uint16_t and get rid of sc_vtb_pointer() and some casts.
* Use the standard uint16_t type instead of u_int16_t.
* Use M_ZERO instead of explicitly bzero()ing.
* Don't set VTB_VALID if malloc() failed.
In discussion with: joerg
show more ...
|
#
b3bc0ed3 |
| 16-May-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
Remove MGA/CGA/EGA rendering code.
|
#
5d528f4d |
| 26-Apr-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
Remove unused clear() function from the console renderer interface.
|
#
a5eb78ad |
| 18-Feb-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
* For the direct modes, get rid of the predefined palettes and use the system's EGA palette instead (like planar modes do). Since palette values can be 5:5:5, 5:6:5, 8:8:8 etc., add code to refre
* For the direct modes, get rid of the predefined palettes and use the system's EGA palette instead (like planar modes do). Since palette values can be 5:5:5, 5:6:5, 8:8:8 etc., add code to refresh them via the adapter's palette registers upon video mode change. Scrap the ugly vga_drawpxl() macro. This makes 15 and 16 bit modes faster than 24 or 32 bpp.
* Fix mouse pointer drawing code for direct modes. Never draw the pointer in the border area so that direct and planar modes can now share a single function for removing the mouse.
* Do some minor cleanup and restructuring.
show more ...
|
#
05f75c35 |
| 13-Feb-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
Remove unneeded conditionals.
|
#
b9222d3b |
| 12-Feb-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
Fix a little redundancy from my last commit. The border cannot be outside of the drawing area.
|
#
5fa98c1e |
| 12-Feb-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
In VESA_800x600, never draw the mouse pointer in the border area which means the border does no longer have to be redrawn in remove_pxlmouse_planar().
|
#
e14d8d5b |
| 28-Jan-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
Scrap DEC Alpha support.
|
#
4097d120 |
| 04-Sep-2004 |
Eirik Nygaard <eirikn@dragonflybsd.org> |
Add noops for vga_pxlmouse_direct and vga_pxlmouse_planar in the case where SC_NO_CUTPASTE is defined. Also remove the old vga_pxlmouse noop.
|