Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/dev/nvmm



Module Name:    src
Committed By:   maxv
Date:           Mon Feb 18 12:17:45 UTC 2019

Modified Files:
        src/sys/dev/nvmm: nvmm.c
        src/sys/dev/nvmm/x86: nvmm_x86_svm.c nvmm_x86_vmx.c

Log Message:
Ah, finally found you. Fix scheduling bug in NVMM.

When processing guest page faults, we were calling uvm_fault with
preemption disabled. The thing is, uvm_fault may block, and if it does,
we land in sleepq_block which calls mi_switch; so we get switched away
while we explicitly asked not to be. From then on things could go really
wrong.

Fix that by processing such faults in MI, where we have preemption enabled
and are allowed to block.

A KASSERT in sleepq_block (or before) would have helped.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/nvmm/nvmm.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/nvmm/x86/nvmm_x86_svm.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/nvmm/x86/nvmm_x86_vmx.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index