Page MenuHomeFreeBSD

uma: Add KASAN state transitions
ClosedPublic

Authored by markj on Mar 27 2021, 11:29 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 12 2024, 2:44 AM
Unknown Object (File)
Dec 23 2023, 12:08 AM
Unknown Object (File)
Oct 27 2023, 7:55 PM
Unknown Object (File)
Oct 27 2023, 2:08 AM
Unknown Object (File)
Oct 24 2023, 3:39 PM
Unknown Object (File)
Oct 18 2023, 11:45 PM
Unknown Object (File)
Oct 13 2023, 5:28 PM
Unknown Object (File)
Oct 12 2023, 11:44 AM
Subscribers

Details

Summary


- Add a UMA_ZONE_NOKASAN flag to indicate that items from a particular
zone should not be sanitized. This is applied implicitly for NOFREE
and cache zones.
- Add KASAN call backs which get invoked:
1) when a slab is imported into a keg
2) when an item is allocated from a zone
3) when an item is freed to a zone
4) when a slab is freed back to the VM

In state transitions 1 and 3, memory is poisoned so that accesses will
trigger a panic. In state transitions 2 and 4, memory is marked
valid.
- Disable trashing if KASAN is enabled. It just adds extra CPU overhead
to catch problems that are detected by KASAN.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sys/vm/uma.h
279

Aside, in cases like this I'd like style(9) to put the first line of the comment beside the /*.

sys/vm/uma_core.c
536

Sort of bikeshed territory, but I wonder if

#ifdef KASAN
... implementation
#else
... stubs
#endif

isn't more straightforward

1688–1690

these and a couple of other changes can be committed independently first?

sys/vm/uma_core.c
1688–1690

I should just drop this part, it's left over from an earlier version of the patch.

markj marked 2 inline comments as done.
  • Drop spurious hunk.
  • Provide separate stubs for the !KASAN case.
This revision was not accepted when it landed; it landed in state Needs Review.Apr 13 2021, 9:42 PM
This revision was automatically updated to reflect the committed changes.