tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: RFC: softint-based if_input



Hi,

So here is a complete patch:
http://www.netbsd.org/~ozaki-r/softint-if_input-full.diff

With the patch if_input and above should not run in HW
interrupt anymore.

The patch includes the following changes:
- Introduce softint-based if_input mechanism
  - It is enabled by default for all drivers
  - It is disabled if if_initialize(ifp, IF_INPUTF_NO_SOFTINT)
    is used (instead of if_attach)
  - Some drivers that already uses softint are modified
    to use IF_INPUTF_NO_SOFTINT
- Replace ifp->if_input in every drivers with if_input
  - It calls softint_schedule if softint-based if_input
    is enabled for the driver
- Band-aid fixes to make every if_input run in softint
  - atm
    - atm_input isn't compatible with other if_input
      and we cannot apply the common mechanism
    - Fast forward for atm is temporarily disabled
      for the goal
    - Need to be fixed in the future
  - ixg
    - The driver calls if_input from either HW interrupt
      or softint depending on load
    - Disable the former for the goal
    - (As msaitoh-san says) the driver already has performance
      issue and has to be overhauled to fix it. We'll tackle
      the band-aid and the overhaul all together
- Put KASSERT(!cpu_intr_p()) in ether_input and bridge_input
  - If it fails, it's a bug from now on

Any comments?

  ozaki-r


Home | Main Index | Thread Index | Old Index