git: DragonFly_RELEASE_2_8 kernel - (mainly x86_64) - Fix a numb

看板DFBSD_commit作者時間15年前 (2010/11/20 09:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 16a434475b7bd6880282d0b4683759b037023759 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Thu Oct 21 16:07:05 2010 -0700 kernel - (mainly x86_64) - Fix a number of rare races * Move the MP lock from outside to inside exit1(), also fixing an issue where sigexit() was calling exit1() without it. * Move calls to dsched_exit_thread() and biosched_done() out of the platform code and into the mainline code. This also fixes an issue where the code was improperly blocking way too late in the thread termination code, after the point where it had been descheduled permanently and tsleep decomissioned for the thread. * Cleanup and document related code areas. * Fix a missing proc_token release in the SIGKILL exit path. * Fix FAKE_MCOUNT()s in the x86-64 code. These are NOPs anyway (since kernel profiling doesn't work), but fix them anyway. * Use APIC_PUSH_FRAME() in the Xcpustop assembly code for x86-64 in order to properly acquire a working %gs. This may improve the handling of panic()s on x86_64. * Also fix some cases if #if JG'd (ifdef'd out) code in case the code is ever used later on. * Protect set_user_TLS() with a critical section to be safe. * Add debug code to help track down further x86-64 seg-fault issues, and provide better kprintf()s for the debug path in question. Summary of changes: sys/emulation/linux/i386/linux_machdep.c | 8 +--- sys/kern/kern_exit.c | 17 ++++++-- sys/kern/kern_sig.c | 12 ++++-- sys/kern/lwkt_thread.c | 15 ++++++- sys/platform/pc32/i386/trap.c | 2 + sys/platform/pc32/i386/vm_machdep.c | 2 - sys/platform/pc64/apic/apic_vector.s | 56 ++++----------------------- sys/platform/pc64/icu/icu_vector.s | 2 +- sys/platform/pc64/x86_64/exception.S | 32 ++++++++++------ sys/platform/pc64/x86_64/ipl.s | 12 +++--- sys/platform/pc64/x86_64/machdep.c | 6 +- sys/platform/pc64/x86_64/swtch.s | 4 +- sys/platform/pc64/x86_64/tls.c | 11 +++++- sys/platform/pc64/x86_64/trap.c | 29 ++++++++++++-- sys/platform/pc64/x86_64/vm_machdep.c | 14 ++++--- sys/platform/vkernel/i386/trap.c | 2 + sys/platform/vkernel/i386/vm_machdep.c | 2 - sys/platform/vkernel64/x86_64/trap.c | 2 + sys/platform/vkernel64/x86_64/vm_machdep.c | 13 +++--- 19 files changed, 131 insertions(+), 110 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/16a434475b7bd6880282d0b4683759b037023759 -- DragonFly BSD source repository
文章代碼(AID): #1CvoKlGx (DFBSD_commit)