Page MenuHomeFreeBSD

iflib: Changes for ixlv(4) update
AbandonedPublic

Authored by erj on Jul 24 2018, 6:34 PM.

Details

Reviewers
shurd
sbruno
mmacy
Group Reviewers
Intel Networking
Summary
  • Add IFLIB_ADMIN_ALWAYS_RUN check to IOV task function so PF driver does not need to be up to handle VFLR events from VF
  • Add public iflib_request_reset() function so ixlv(4) can request a full up/down cycle after a HW VF reset; this just sets the IFC_DO_RESET flag so init runs again when _task_fn_admin next runs

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 19832
Build 19364: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Jul 25 2018, 6:16 PM
erj planned changes to this revision.Aug 2 2018, 5:07 PM

I need to add the state lock to iflib_request_reset

  • iflib: Prevent kernel panic on detach in _task_fn_admin by checking if in detach
  • iflib: Add STATE_LOCK() around flag setting in iflib_request_reset()
  • iflib: Free remaining interrupt resources on failure in iflib_device_register()
  • iflib: Free RX queue TCP LRO memory on unload
sys/net/iflib.c
258–259

Can I get feedback on whether it's ok to use an atomic flag like this?

263

Ditto

I'm confused; this is just doing a normal store / load for the in detach - you need a lock to serialize reading it with other operations.

  • iflib: Destroy state lock at end of iflib_device_deregister()
  • iflib: Move ifc_in_detach variable to flag in if_ctx_t's ifc_flags, and lock around it

I'm confused; this is just doing a normal store / load for the in detach - you need a lock to serialize reading it with other operations.

Does moving the in_detach value to ifc_flags and making sure to use the STATE_LOCK() when accessing it work?

Though honestly, I wonder if this whole "IFLIB_ADMIN_ALWAYS_RUN" in _task_fn_admin is a bad idea. Maybe we need something like iflib_timer(), but one that doesn't get started/stopped when the driver goes up or down. But 12 is coming soon, and ixlv(4) currently depends on these changes.

  • Revert "iflib: Free RX queue TCP LRO memory on unload"