Page MenuHomeFreeBSD

contigmalloc: handle M_EXEC
ClosedPublic

Authored by kib on Feb 6 2019, 8:20 AM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 20 2023, 1:29 AM
Unknown Object (File)
Nov 30 2023, 4:20 AM
Unknown Object (File)
Nov 4 2023, 5:04 AM
Unknown Object (File)
Oct 3 2023, 5:03 AM
Unknown Object (File)
Oct 1 2023, 5:01 AM
Unknown Object (File)
Sep 29 2023, 5:24 AM
Unknown Object (File)
Sep 7 2023, 12:36 PM
Unknown Object (File)
Sep 7 2023, 12:35 PM
Subscribers

Details

Summary

I included the larger diff that demonstrates where the functionality is needed. Apparently resume is broken on i386 PAE when nx bit is available, it was so before my PAE merge, but the merge switched normal mode to PAE and the issue become visible. There are several issues:

  • the trampoline page is not mapped executable, so machine faults when paging is on;
  • EFER and %cr4 both should be loaded before paging is enabled, otherwise paging structures are invalid (cr4.PAE and EFER.NX).

There are some more bits still not correct, e.g. unconditional access to %cr4 in resumectx.

So I only request to review the vm_kern.c bits, of course feel free to review/comment on the whole patch.

Diff Detail

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