Page MenuHomeFreeBSD

[ppc64] llan: fix fatal kernel trap when system is low on memory
ClosedPublic

Authored by luporl on Feb 5 2019, 11:11 AM.
Tags
None
Referenced Files
F166432105: D19084.id53605.diff
Thu, Aug 13, 1:25 PM
Unknown Object (File)
Wed, Aug 12, 2:34 AM
Unknown Object (File)
Tue, Aug 11, 5:37 AM
Unknown Object (File)
Mon, Aug 10, 6:44 PM
Unknown Object (File)
Sat, Aug 8, 9:07 AM
Unknown Object (File)
Fri, Aug 7, 3:10 PM
Unknown Object (File)
Thu, Jul 23, 1:15 AM
Unknown Object (File)
Wed, Jul 22, 12:42 PM

Details

Summary

When running several builders in parallel, on QEMU, with 8GB of
memory, a fatal kernel trap (0x300 (data storage interrupt))
caused by llan driver is sometimes observed, when the system
starts to run out of swap space.

This happens because, at llan_intr(), a phyp call to add a
logical LAN buffer is always made when llan_add_rxbuf() fails,
even if it fails to allocate a new buffer.

PR 235489

Test Plan

Running several memory hungry processes that causes the system
to run out of swap space, while using the network card, was
usually enough to reproduce this issue within a few minutes.
After this change, the system ran for several hours in this
scenario and no crash was observed.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable