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)
Wed, Nov 27, 8:47 PM
Unknown Object (File)
Nov 25 2024, 4:30 AM
Unknown Object (File)
Nov 19 2024, 8:31 PM
Unknown Object (File)
Nov 7 2024, 2:00 PM
Unknown Object (File)
Oct 17 2024, 2:23 AM
Unknown Object (File)
Oct 17 2024, 2:23 AM
Unknown Object (File)
Oct 17 2024, 2:23 AM
Unknown Object (File)
Oct 17 2024, 1:51 AM

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