Page MenuHomeFreeBSD

mlx5: Enter network epoch when using if_foreach()
ClosedPublic

Authored by jhibbits on Feb 21 2023, 9:09 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Mar 24, 3:07 PM
Unknown Object (File)
Tue, Mar 18, 8:03 AM
Unknown Object (File)
Sat, Mar 8, 4:10 AM
Unknown Object (File)
Tue, Mar 4, 12:44 PM
Unknown Object (File)
Sat, Mar 1, 2:17 PM
Unknown Object (File)
Sat, Mar 1, 12:11 PM
Unknown Object (File)
Sat, Mar 1, 7:39 AM
Unknown Object (File)
Feb 28 2025, 2:46 AM
Subscribers

Details

Summary

IFNET_RLOCK() is not sufficient, the epoch needs entered.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 49931
Build 46823: arc lint + arc unit

Event Timeline

Hi,

I'm not sure if that will work, because there is a write_lock() inside mlx5_enable_roce_if_cb(), and that cannot be used inside an EPOCH section!

#define write_lock(_l)          rw_wlock(&(_l)->rw)

Hi,

I'm not sure if that will work, because there is a write_lock() inside mlx5_enable_roce_if_cb(), and that cannot be used inside an EPOCH section!

#define write_lock(_l)          rw_wlock(&(_l)->rw)

Or am I wrong.

--HPS

Hi,

I'm not sure if that will work, because there is a write_lock() inside mlx5_enable_roce_if_cb(), and that cannot be used inside an EPOCH section!

#define write_lock(_l)          rw_wlock(&(_l)->rw)

Or am I wrong.

--HPS

It's OK to use rwlocks/mutexes (and basically anything that don't sleep) in the (network) epoch.

This revision is now accepted and ready to land.Feb 22 2023, 10:42 AM