Page MenuHomeFreeBSD

f00f: We don't need giant to manipulate vm structures
ClosedPublic

Authored by imp on Sep 5 2021, 3:22 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Jan 12, 7:21 AM
Unknown Object (File)
Dec 12 2024, 2:25 AM
Unknown Object (File)
Nov 14 2024, 9:40 AM
Unknown Object (File)
Nov 14 2024, 5:52 AM
Unknown Object (File)
Oct 30 2024, 10:41 PM
Unknown Object (File)
Oct 2 2024, 4:32 PM
Unknown Object (File)
Oct 2 2024, 1:00 PM
Unknown Object (File)
Sep 28 2024, 9:30 AM
Subscribers
None

Details

Summary

We don't need to assert we have Giant here. The VM subsystem
has been Giant free for some time now.

Sponsored by: Netflix

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 41382
Build 38271: arc lint + arc unit

Event Timeline

imp requested review of this revision.Sep 5 2021, 3:22 AM
imp created this revision.

This does not have anything to do with VM.

This revision is now accepted and ready to land.Sep 5 2021, 3:41 AM
In D31839#718224, @kib wrote:

This does not have anything to do with VM.

What's the right low level term for the pmap and IDT fiddling it does then?

In D31839#718395, @imp wrote:
In D31839#718224, @kib wrote:

This does not have anything to do with VM.

What's the right low level term for the pmap and IDT fiddling it does then?

It is part of the cpu setup code. Actually it is safe to do this manipulation there because

  1. all machines where it matters are UP
  2. interrupts are disabled

These are the guarantees that this code needs to work.

pmap_trm_alloc() allocates memory in the trampoline area which is shared between kernel and userspace. After 4/4 UVA/KVA split was implemented, kernel no longer shares (whole) address space with userspace on i386.