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
Unknown Object (File)
Dec 22 2023, 10:18 PM
Unknown Object (File)
Aug 4 2023, 6:11 PM
Unknown Object (File)
Aug 4 2023, 6:09 PM
Unknown Object (File)
Aug 4 2023, 6:07 PM
Unknown Object (File)
Aug 4 2023, 6:00 PM
Unknown Object (File)
Jun 3 2023, 7:51 AM
Unknown Object (File)
May 14 2023, 6:26 PM
Unknown Object (File)
Apr 13 2023, 7:50 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 Passed
Unit
No Test Coverage
Build Status
Buildable 22350
Build 21525: arc lint + arc unit