Page MenuHomeFreeBSD

busdma: Avoid an M_NOWAIT allocation in alloc_bounce_zone()
AcceptedPublic

Authored by markj on Sun, Nov 17, 4:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 20, 12:22 AM
Unknown Object (File)
Tue, Nov 19, 11:10 AM
Unknown Object (File)
Tue, Nov 19, 1:42 AM
Unknown Object (File)
Mon, Nov 18, 11:16 PM
Unknown Object (File)
Mon, Nov 18, 11:08 PM
Unknown Object (File)
Mon, Nov 18, 9:52 PM
Unknown Object (File)
Mon, Nov 18, 4:58 AM
Unknown Object (File)
Mon, Nov 18, 4:48 AM
Subscribers

Details

Reviewers
mhorne
jhb
Summary

alloc_bounce_zone() already performs some M_WAITOK allocations to
allocate sysctl nodes, so we can certainly allocate the bounce zone
itself using M_WAITOK.

Follow the usual dance: look for an existing bounce zone which
satisifies the constraints, then drop the lock and allocate, then
reacquire the lock and look again before proceeding to initialize the
zone.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 60643
Build 57527: arc lint + arc unit