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)
Thu, Sep 10, 12:43 AM
Unknown Object (File)
Tue, Sep 8, 2:36 PM
Unknown Object (File)
Tue, Sep 8, 1:18 PM
Unknown Object (File)
Thu, Sep 3, 9:59 AM
Unknown Object (File)
Sat, Aug 22, 6:10 PM
Unknown Object (File)
Sat, Aug 22, 6:10 PM
Unknown Object (File)
Sat, Aug 22, 6:10 PM
Unknown Object (File)
Sat, Aug 22, 6:10 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