⬢ DragonFlyBSD Kernel Audit
DF-3665 / run.log
← back to finding ↓ download raw
BUILD_OK
== DF-3665: evergreen_latency_watermark divisor simulation (u32 fixed20_12, verbatim math) ==

[controls - typical sane values, no trap]
HD5870-like                                          mclk=1200000 sclk= 850000 clock= 148500 -> available_bandwidth=2851
HD5770-like                                          mclk= 400000 sclk= 850000 clock=  74250 -> available_bandwidth=1900
sumo IGP-like                                        mclk= 533000 sclk= 400000 clock=  74250 -> available_bandwidth=487

[trigger 1: DRM-master user mode, clock<=38 kHz (drm_mode_validate_basic only rejects clock==0)]
user mode clock=25 kHz (mclk/sclk sane)              mclk=1200000 sclk= 850000 clock=     25 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
user mode clock=1 kHz                                mclk=1200000 sclk= 850000 clock=      1 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
user mode clock=38 kHz                               mclk=1200000 sclk= 850000 clock=     38 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
user mode clock=39 kHz (just above threshold)        mclk=1200000 sclk= 850000 clock=     39 -> available_bandwidth=1

[trigger 2: u32 wrap windows, BIOS/DPM-supplied clocks]
mclk exactly 524288 kHz (10*2^20/10 wraps to 0)      mclk= 524288 sclk= 850000 clock= 148500 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
mclk exactly 1048576 kHz                             mclk=1048576 sclk= 850000 clock= 148500 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
mclk exactly 1572864 kHz                             mclk=1572864 sclk= 850000 clock= 148500 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
mclk 419431 kHz (wrap band k=4)                      mclk= 419431 sclk= 850000 clock= 148500 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)

[trigger 3: VBIOS reports zero clocks (DF-1708 class)]
mclk=0 (no FirmwareInfo mem clock)                   mclk=      0 sclk= 850000 clock= 148500 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)
sclk=0                                               mclk=1200000 sclk=      0 clock= 148500 -> available_bandwidth=0
    -> evergreen.c:2048 division executed: child killed by SIGFPE (kernel: #DE -> panic)

VERDICT: any available_bandwidth==0 line above is a kernel
divide-by-zero (#DE) panic on the next evergreen_bandwidth_update()
i.e. the next mode set (atombios_crtc.c:1448) or PM clock change.
exit=0