History log of /dragonfly/sys/platform/pc64/x86_64/msi.c (Results 1 – 4 of 4)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1
# 70f74b76 07-Apr-2017 Matthew Dillon <dillon@apollo.backplane.com>

Revert "kernel - Spread IPIs out to more priority levels"

This commit seems to be causing a performance regression on VMs.
Since it didn't fix a particular bug (was just supposed to make
things more

Revert "kernel - Spread IPIs out to more priority levels"

This commit seems to be causing a performance regression on VMs.
Since it didn't fix a particular bug (was just supposed to make
things more robust), revert it for now.

Reported-by: tkusumi

This reverts commit f240042b9f9bcfdacd70499659fcc5f55d5e49ab.

show more ...


# f240042b 27-Mar-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Spread IPIs out to more priority levels

* Due to the brandamaged way the LAPIC queues received IPIs, each
priority level (the top 4 bits of the 8 bit vector) has a 2-entry
FIFO. Bring

kernel - Spread IPIs out to more priority levels

* Due to the brandamaged way the LAPIC queues received IPIs, each
priority level (the top 4 bits of the 8 bit vector) has a 2-entry
FIFO. Bring in comments from FreeBSD on how this works.

* Change our IPI vectors which previously used 2 priority levels to now
use 3 priority levels. Each source is generally limited by an atomic
op to avoid multi-queueing and hopefully that means the above LAPIC hw
queue will never refuse to accept an IPI.

IPIQ and TIMER use group 1

INVLTLB (and INVLPG) uses group 2

SNIFF, CPUSTOP, and SPURIOUSINT use group 3

* Reduces the number of vectors available per cpu by 16, but shouldn't
present that big a problem.

show more ...


Revision tags: v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0
# e3c41896 13-Jun-2016 Sepherosa Ziehau <sephe@dragonflybsd.org>

hyperv/vmbus: Complete vmbus initialization; interrupt cputimer is enabled

Most of the bits are obtained from FreeBSD. However, The interrupt bits
are reworked:
- Since the vmbus message/event inte

hyperv/vmbus: Complete vmbus initialization; interrupt cputimer is enabled

Most of the bits are obtained from FreeBSD. However, The interrupt bits
are reworked:
- Since the vmbus message/event interrupt works in the same fashion as
MSI-X, we just allocate MSI-X for them, instead of allocating IDT
vector, rolling vmbus own interrupt vector and turning the interrupt
handling inside-out. The standard and generic bus APIs are used to
allocate and setup per-cpu vmbus interrupt.
- Interrupt cputimer reuses the current per-cpu interrupt timer code.
- AutoEOI is not used, since we reuse the per-cpu interrupt timer IDT
vector and MSI IDT vector. After a brief discussion w/ Dexuan Cui,
I concluded that AutoEOI probably does not provide noticible performance
improvement but will introduce extra code complexity. We leave it off
for now.

Obtained-from: FreeBSD (mostly)

show more ...


Revision tags: v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0
# c9852c4c 25-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

msi: Add setup/map function

- msi_setup, setup the IDT entry properly
- msi_map, return the MSI address and MSI data according to the
'intr' and 'cpuid'

The various MSI macros forming MSI address

msi: Add setup/map function

- msi_setup, setup the IDT entry properly
- msi_map, return the MSI address and MSI data according to the
'intr' and 'cpuid'

The various MSI macros forming MSI address/data are taken from FreeBSD

show more ...