Page MenuHomeFreeBSD

Restore nofaulting operations after r352807
ClosedPublic

Authored by kib on Oct 12 2019, 3:27 PM.
Tags
None
Referenced Files
Unknown Object (File)
Nov 27 2024, 11:15 PM
Unknown Object (File)
Nov 22 2024, 7:00 PM
Unknown Object (File)
Nov 18 2024, 10:59 PM
Unknown Object (File)
Nov 15 2024, 12:22 PM
Unknown Object (File)
Nov 7 2024, 11:26 PM
Unknown Object (File)
Nov 7 2024, 9:57 AM
Unknown Object (File)
Nov 7 2024, 9:22 AM
Unknown Object (File)
Nov 3 2024, 7:07 AM
Subscribers

Details

Summary

The TDP_NOFAULTING flag should be checked in vm_fault(), not in vm_fault_trap(). Otherwise kernel accesses to userspace like vn_io_fault() enter vm locking.

Reported by: pho

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib added reviewers: alc, markj.
kib added a subscriber: pho.
sys/vm/vm_fault.c
561 ↗(On Diff #63180)

This is now only used under KTRACE. I suspect that using curthread directly in those two places will be cheaper than using a callee-saves register for td.

This revision is now accepted and ready to land.Oct 12 2019, 4:48 PM

Stop using td in vm_fault_trap(), use curthread.

This revision now requires review to proceed.Oct 12 2019, 5:31 PM
kib marked an inline comment as done.Oct 12 2019, 5:32 PM
This revision is now accepted and ready to land.Oct 12 2019, 5:42 PM
This revision was automatically updated to reflect the committed changes.