Page MenuHomeFreeBSD

LinuxKPI: Convert lkpi-shrinker lock to sx.
ClosedPublic

Authored by wulf on Apr 24 2022, 11:38 PM.

Details

Summary

This fixes "might_sleep() with the following non-sleepable locks held:
exclusive sleep mutex lkpi-shrinker" warnings.

Witness message is:
might_sleep() with the following non-sleepable locks held:
exclusive sleep mutex lkpi-shrinker (lkpi-shrinker) r = 0 (0xffffffff827e3900)

locked @ /usr/src/sys/compat/linuxkpi/common/src/linux_shrinker.c:98

stack backtrace:
0 0xffffffff80690115 at witness_debugger+0x65
1 0xffffffff8069126a at witness_warn+0x3ea
2 0xffffffff825c37bf at __i915_active_wait+0x2f
3 0xffffffff825e3d09 at i915_vma_unbind+0x29
4 0xffffffff825c9bb4 at i915_gem_object_unbind+0x1d4
5 0xffffffff826fb344 at i915_gem_shrink+0x234
6 0xffffffff826fb659 at i915_gem_shrinker_scan+0x29
7 0xffffffff827db1ee at linuxkpi_vm_lowmem+0x9e
8 0xffffffff808920f6 at vm_pageout_worker+0x3d6
9 0xffffffff80891cd7 at vm_pageout+0x1d7
10 0xffffffff805d9080 at fork_exit+0x80
11 0xffffffff809158be at fork_trampoline+0xe

Diff Detail

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