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)
Feb 9 2024, 1:45 PM
Unknown Object (File)
Jan 28 2024, 3:39 PM
Unknown Object (File)
Jan 1 2024, 8:42 PM
Unknown Object (File)
Dec 23 2023, 12:14 AM
Unknown Object (File)
Nov 25 2023, 5:28 AM
Unknown Object (File)
Nov 22 2023, 7:29 PM
Unknown Object (File)
Nov 22 2023, 6:18 PM
Unknown Object (File)
Nov 15 2023, 12:19 PM
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
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

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.