Page MenuHomeFreeBSD

arm64 pmap: per-domain pv chunk list
ClosedPublic

Authored by andrew on Aug 23 2022, 11:07 AM.
Tags
None
Referenced Files
F156818402: D36307.id110210.diff
Sat, May 16, 4:20 PM
F156818362: D36307.id110210.diff
Sat, May 16, 4:20 PM
F156818333: D36307.id110210.diff
Sat, May 16, 4:19 PM
F156809570: D36307.id111082.diff
Sat, May 16, 2:11 PM
F156784418: D36307.id.diff
Sat, May 16, 8:47 AM
F156772912: D36307.id109707.diff
Sat, May 16, 6:22 AM
Unknown Object (File)
Fri, May 15, 4:59 PM
Unknown Object (File)
Thu, May 14, 2:16 AM
Subscribers

Details

Summary

As with amd64 use a per-domain pv chunk lock to reduce contention as
chunks get created and removed all the time.

Diff Detail

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

Event Timeline

sys/arm64/arm64/pmap.c
2611

pv_chunks_mutex is no more, so this comment is stale.

2748

This ignores the thread's NUMA allocation policy. In particular, the thread may have been configured to never allocate pages from a particular domain, but here it may do so. I suspect this function should use one of the domainset iterators like vm_page_alloc_noobj() does.

2759

Extra newline.

5484

Can this simply be free_pv_chunk_batch(free_chunks);?

sys/arm64/arm64/pmap.c
2748

This looks like it's also a problem on amd64

  • Fix a comment
  • Remove an extra newline
  • Remove an unneeded cast
This revision was not accepted when it landed; it landed in state Needs Review.Sep 27 2022, 3:15 PM
This revision was automatically updated to reflect the committed changes.