Page MenuHomeFreeBSD

vm_page_wire_mapped: explain why failure does not affect correctness
ClosedPublic

Authored by kib on Wed, Oct 30, 4:10 PM.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

kib created this revision.Wed, Oct 30, 4:10 PM
markj accepted this revision.Wed, Oct 30, 4:36 PM

Was there some specific problem that motivated the change?

Note that the pmap_extract_and_hold() caller may not fall back to the slow path in some cases, e.g., if VM_PROT_QUICK_NOFAULT is specified.

sys/vm/vm_page.c
3766 ↗(On Diff #63801)

I think the first comma is unnecessary.

This revision is now accepted and ready to land.Wed, Oct 30, 4:36 PM
kib marked an inline comment as done.Wed, Oct 30, 4:55 PM

Was there some specific problem that motivated the change?

Only that I re-read some code and had to trace the path to convince myself once again that it is fine.

Note that the pmap_extract_and_hold() caller may not fall back to the slow path in some cases, e.g., if VM_PROT_QUICK_NOFAULT is specified.

I do not agree. VM_PROT_QUICK_NOFAULT only makes vm_fault_quick...() to not ignore TDP_NOFAULTING. In this case, the code that set TDP_NOFAULTING typically has to handle EFAULT by some means, which is to call vm_fault() explicitly. This is how vn_io_fault() works.