Page MenuHomeFreeBSD

split out flag manipulation from general context manipulation in iflib
ClosedPublic

Authored by kmacy on Apr 4 2018, 11:38 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 10, 7:54 PM
Unknown Object (File)
Wed, Apr 10, 7:54 PM
Unknown Object (File)
Wed, Apr 10, 7:53 PM
Unknown Object (File)
Wed, Apr 10, 1:05 PM
Unknown Object (File)
Feb 22 2024, 11:50 PM
Unknown Object (File)
Feb 22 2024, 11:50 PM
Unknown Object (File)
Jan 30 2024, 3:25 AM
Unknown Object (File)
Dec 22 2023, 11:05 PM

Details

Summary

To avoid blocking on the context lock in the swi thread and risk potential deadlocks, this change protects lighter weight updates that only need to be consistent with each other with their own lock.

Diff Detail

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

Event Timeline

I don't see the console hanging on the version of ixl-iflib where I did see them when watchdogs happened, so this appears to fix the deadlock in that situation.

This revision is now accepted and ready to land.Apr 6 2018, 7:02 PM
In D14967#315442, @erj wrote:

I don't see the console hanging on the version of ixl-iflib where I did see them when watchdogs happened, so this appears to fix the deadlock in that situation.

Thanks for testing. +1

Y'all want this committed?

Y'all want this committed?

It looks like it!

Minor nit... I'm not sure if a race is actually possible here though.

sys/net/iflib.c
3738 ↗(On Diff #41119)

This test should be inside the lock.

  • check watchdog and reset flags with lock held
  • clear watchdog flag
This revision now requires review to proceed.Apr 9 2018, 6:31 PM
This revision is now accepted and ready to land.Apr 9 2018, 7:40 PM
This revision was automatically updated to reflect the committed changes.