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
F175500989: D38711.id117708.diff
Sun, Oct 11, 7:09 AM
F175485025: D38711.diff
Sun, Oct 11, 4:55 AM
F175386732: D38711.id118400.diff
Sat, Oct 10, 11:36 AM
Unknown Object (File)
Thu, Oct 1, 3:06 AM
Unknown Object (File)
Wed, Sep 30, 11:19 PM
Unknown Object (File)
Wed, Sep 30, 10:11 PM
Unknown Object (File)
Sun, Sep 27, 6:47 AM
Unknown Object (File)
Sat, Sep 26, 4:38 PM
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