X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/440d4c6cfad24426bfddca7518f16c17f4e443f7..99c3a10404e5d1ef94397ab4df5a8b74711fc4d3:/osfmk/vm/vm_fault.c diff --git a/osfmk/vm/vm_fault.c b/osfmk/vm/vm_fault.c index 6dc7767f5..f4c6f17ef 100644 --- a/osfmk/vm/vm_fault.c +++ b/osfmk/vm/vm_fault.c @@ -121,7 +121,8 @@ int vm_object_pagein_throttle = 16; * delay of HARD_THROTTLE_DELAY microseconds before being allowed to try the page fault again. */ -boolean_t thread_is_io_throttled(void); +extern boolean_t thread_is_io_throttled(void); +extern void throttle_lowpri_io(int); uint64_t vm_hard_throttle_threshold; @@ -1015,6 +1016,7 @@ vm_fault_page( *top_page = first_m; if (type_of_fault) *type_of_fault = DBG_GUARD_FAULT; + thread_interrupt_level(interruptible_state); return VM_FAULT_SUCCESS; } else { /* @@ -4042,6 +4044,8 @@ handle_copy_delay: done: thread_interrupt_level(interruptible_state); + throttle_lowpri_io(TRUE); + KERNEL_DEBUG_CONSTANT_IST(KDEBUG_TRACE, (MACHDBG_CODE(DBG_MACH_VM, 2)) | DBG_FUNC_END, (int)((uint64_t)vaddr >> 32),