Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
| docs:guide-user:services:irqbalance [2021/06/25 15:28] – [Installation] clarification palebloodsky | docs:guide-user:services:irqbalance [2024/01/02 18:48] – [Installation] mention new luci package palebloodsky | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Irqbalance ====== | ====== Irqbalance ====== | ||
| - | Irqbalance is a Linux daemon that distributes interrupts over multiple logical CPUs. This design intent being to improve overall performance which can result in a balanced load and power consumption. | + | Irqbalance is a Linux daemon that distributes interrupts over multiple logical CPUs. This may result in improved overall performance |
| ==== Installation ==== | ==== Installation ==== | ||
| Line 8: | Line 8: | ||
| <code bash> | <code bash> | ||
| - | It will not be enabled by default. | + | Note if you run a build from main snapshot you can also install the new '' |
| + | |||
| + | It will not be enabled by default. | ||
| <code bash> | <code bash> | ||
| - | Set the enable line to 1, save and close. | + | |
| + | Now start the daemon: | ||
| + | <code bash>/ | ||
| You're done! Performance should now be improved for multi-core targets. | You're done! Performance should now be improved for multi-core targets. | ||
| Line 16: | Line 20: | ||
| ==== Advanced Usage ==== | ==== Advanced Usage ==== | ||
| - | In general, | + | In general, |
| - | To check the status of irqbalance | + | To check the status of irqbalance simply use service: |
| <code bash> | <code bash> | ||
| - | To set an IRQ to run on only one CPU, use echo to write the CPU mask, as a hexadecimal number, to the smp_affinity entry of the specific | + | To set an IRQ to run on a specific |
| - | <code bash> | + | <code bash> |
| To set the core affinity use a bitmask, e.g.: | To set the core affinity use a bitmask, e.g.: | ||
| Line 32: | Line 36: | ||
| To monitor the irqbalance load across cores check: | To monitor the irqbalance load across cores check: | ||
| <code bash>cat / | <code bash>cat / | ||
| + | |||
| + | ==== Caution ==== | ||
| + | |||
| + | Irqbalance will result in performance benefits for multicore targets where there is enough CPU overhead to handle context switching. However on 2core targets, outside of benchmarking alone, there may be performance losses. This can happen if affinity selection is not done carefully (e.g. pinning ethernet to cpu0 and wireless to cpu1). This may result in increased latency or overhead such as with simultaneous users on LAN and WLAN. Irqbalance is more viable on 4core systems and up, however your mileage may vary. See forum discussion: https:// | ||
| ==== Examples ==== | ==== Examples ==== | ||
| - | Examples | + | Example ''/ |
| - | [[toh: | + | [[toh: |
| < | < | ||
| | | ||
| Line 102: | Line 110: | ||
| IPI6: 0 0 completion interrupts | IPI6: 0 0 completion interrupts | ||
| Err: 0 | Err: 0 | ||
| + | </ | ||
| + | |||
| + | [[toh: | ||
| + | < | ||
| + | | ||
| + | 3: 7646504 | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | IPI0: 518033 | ||
| + | IPI1: | ||
| + | IPI2: | ||
| + | IPI3: | ||
| + | IPI4: | ||
| + | IPI5: 466242 | ||
| + | IPI6: | ||
| + | Err: 0 | ||
| </ | </ | ||
| ==== References ==== | ==== References ==== | ||
| - | Note 1: upstream | + | Note 1: man page: https:// |
| Note 2: upstream github: https:// | Note 2: upstream github: https:// | ||
| + | |||