Page MenuHomeFreeBSD

Synchronize access to the allpmaps list.
ClosedPublic

Authored by markj on Jan 2 2019, 6:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Oct 30, 1:54 PM
Unknown Object (File)
Oct 22 2024, 1:47 PM
Unknown Object (File)
Oct 21 2024, 9:17 PM
Unknown Object (File)
Oct 18 2024, 11:55 AM
Unknown Object (File)
Oct 18 2024, 10:19 AM
Unknown Object (File)
Oct 18 2024, 6:50 AM
Unknown Object (File)
Oct 1 2024, 10:01 PM
Unknown Object (File)
Sep 21 2024, 9:58 AM
Subscribers

Details

Summary

In the long term we will want to get rid of allpmaps entirely, but this
change is needed until that happens.

Diff Detail

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

Event Timeline

This revision is now accepted and ready to land.Jan 2 2019, 11:45 PM

I must admit that the use of allpmaps in riscv pmap is somewhat strange. Can we preallocate kernel l1 tables and do not touch them later at all, only copying the kernel part into each new user pmap ?

Regardless of that, why is pmap_distribute_l1() is called from pmap_unwire_l3() ? I do not think that we ever shrink the kernel page tables, this cannot work I believe.

In D18721#399440, @kib wrote:

I must admit that the use of allpmaps in riscv pmap is somewhat strange. Can we preallocate kernel l1 tables and do not touch them later at all, only copying the kernel part into each new user pmap ?

I think so. I had this approach in mind but didn't implement it yet.

Regardless of that, why is pmap_distribute_l1() is called from pmap_unwire_l3() ? I do not think that we ever shrink the kernel page tables, this cannot work I believe.

One reason to avoid this is because page allocation may fail and we can't tolerate that; pmap_enter() simply panics in that case. Is there another reason?

This revision was automatically updated to reflect the committed changes.