History log of /dragonfly/sys/platform/pc64/apic/ioapic_abi.c (Results 1 – 25 of 70)
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
# 161c3d83 13-Oct-2019 Sascha Wildner <saw@online.de>

world/kernel: Use the powerof2() macro in various places.


Revision tags: v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2
# fcf6efef 02-Mar-2019 Sascha Wildner <saw@online.de>

kernel: Remove numerous #include <sys/thread2.h>.

Most of them were added when we converted spl*() calls to
crit_enter()/crit_exit(), almost 14 years ago. We can now
remove a good chunk of them agai

kernel: Remove numerous #include <sys/thread2.h>.

Most of them were added when we converted spl*() calls to
crit_enter()/crit_exit(), almost 14 years ago. We can now
remove a good chunk of them again for where crit_*() are
no longer used.

I had to adjust some files that were relying on thread2.h
or headers that it includes coming in via other headers
that it was removed from.

show more ...


Revision tags: v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1
# cd1bb886 23-Apr-2018 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/ioapic: Make sure that legacy IRQ only appears on one CPU.

The legacy IRQ lookup assumes only one CPU has a given legacy IRQ.

On system w/ large number of IOAPIC, GSI96 could be mapped to IR

x86_64/ioapic: Make sure that legacy IRQ only appears on one CPU.

The legacy IRQ lookup assumes only one CPU has a given legacy IRQ.

On system w/ large number of IOAPIC, GSI96 could be mapped to IRQ17
on CPU0 (since IRQ96 is used by SYSCALL), while GSI17 is mapped to
IRQ17 on another CPU. This breaks later IRQ lookup.

Reported-by: Imre Vadasz
Tested-by: Imre Vadasz

show more ...


Revision tags: 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
# d8f4ebf4 23-Apr-2016 Charlie Root <root@apollo.backplane.com>

kernel - Reduce BSS size to fix loader initrd problem

* kernel + modules + initrd.img (unpacked) exceeded the 63MB the loader has
available for load-time data.

* Top hogs are mainly in BSS. Make

kernel - Reduce BSS size to fix loader initrd problem

* kernel + modules + initrd.img (unpacked) exceeded the 63MB the loader has
available for load-time data.

* Top hogs are mainly in BSS. Make intr_info_ary and pcpu_sysctl
kmalloc after boot instead of BSS as a temporary fix.

335872 ifnet_threads
335872 netisr_cpu
339968 dummy_pcpu
344064 bsd4_pcpu
344064 stoppcbs
346112 softclock_pcpu_ary
538624 cpu_topology_nodes
755712 dfly_pcpu
786432 icu_irqmaps
958464 map_entry_init
1048576 idt_arr
1064960 pcpu_sysctl <---- now kmallocd
1179648 ioapic_irqmaps <---- (used too early, cannot be kmallocd)
5242880 intr_info_ary <---- now kmallocd

* Should fix loader issues when trying to use initrd.img[.gz] for now.

Reported-by: Valheru

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
# ba8c7d5f 11-May-2014 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/ioapic: Enable GSI target CPU auto-balance by default

The original bug, which prevented GSI target CPU auto-balance, probably
was fixed by 902419bf6d9fd0f80afc9d07cd4b3e99d20f23ca.


Revision tags: 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
# 644285c0 10-Apr-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

ioapic: Relocate IRQ if it hits SYSCALL entry

The system hitting the "unused IRQ assertion" has 5x24 pin IOAPICs

Reported-by: ruse39


Revision tags: v3.4.0rc, v3.5.0
# 5db2f26e 03-Jan-2013 Sascha Wildner <saw@online.de>

kernel: Move sys/dev/acpica5 to sys/dev/acpica.

The 5 used to indicate that it was imported from FreeBSD 5 but that
doesn't matter anymore.

In-discussion-with: sephe


Revision tags: v3.2.2
# aad8a0a7 30-Oct-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

ioapic/x86_64: Allow GSI > 191

Some BIOSes seem to assume that all 256 IDT vectors could be used,
while we limit the available IDT vectors percpu to 192. Find an
unused IRQ for these GSIs, if this

ioapic/x86_64: Allow GSI > 191

Some BIOSes seem to assume that all 256 IDT vectors could be used,
while we limit the available IDT vectors percpu to 192. Find an
unused IRQ for these GSIs, if this ever happens.

Reported-by: thowe on EFnet #dragonflybsd

show more ...


Revision tags: v3.2.1, v3.2.0, v3.3.0
# 86d692fe 28-Aug-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

MachIntr: Add two methods to find IRQ

- Find IRQ conforming to the specified trigger and polarity, if it was
configured.
- Find IRQ by GSI, the located IRQ must conform to the specified trigger

MachIntr: Add two methods to find IRQ

- Find IRQ conforming to the specified trigger and polarity, if it was
configured.
- Find IRQ by GSI, the located IRQ must conform to the specified trigger
and polarity if it was configured.

show more ...


Revision tags: v3.0.3
# ed20d0e3 21-Apr-2012 Sascha Wildner <saw@online.de>

kernel: Remove newlines from the panic messages that have one.

panic() itself will add a newline.


Revision tags: v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 9dbe6e38 17-Jan-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

ioapic_abi/x86_64: Implement MSI-X alloc/release


# bec969af 13-Jan-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

MachIntrABI: intr_{config,cpuid} -> legacy_intr_{config,cpuid}

So these two functions will not be misused on MSI. No functional changes


# 027bbbfe 12-Jan-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

ioapic_abi: More consistent function name w/ legacy interrupt

No functional changes


# f9593a5d 10-Jan-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64: LINE interrupt -> LEGACY interrupt


# 98900040 06-Jan-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

ioapic_abi/x86_64: Remove no longer applied warning

While I'm here, strip blank lines


# 2c3d7ac8 27-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

msi/pci: Adjust pci_alloc_msi method interface

- The requested number of MSI messages is no longer adjusted in
pci_alloc_msi_method(), instead, caller should adjust it.
- rids of the MSI SYS_RES_I

msi/pci: Adjust pci_alloc_msi method interface

- The requested number of MSI messages is no longer adjusted in
pci_alloc_msi_method(), instead, caller should adjust it.
- rids of the MSI SYS_RES_IRQ are explicitly returned to caller,
instead of letting caller fill them based on the implied rules.
- MSI messages' target CPU auto-selection.
- Intead of reallocation using reduced number of MSI messages,
we try to allocate the requested amount of MSI messages on
different CPUs, if the desired CPU does not have enough vectors.
- The requested amount of MSI messages must be sane.

show more ...


# 7b87350b 26-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/msi: Add hw.ioapic.msi_start tunable

This is mainly used to test MSI allocation over the whole valid
hardware interrupt space.


# 4234567c 25-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64: Add MSI support for IOAPIC MachIntrABI


# 8a06c6ee 18-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64: Per-cpu IDT


# 26cf64b2 16-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/MachintrABI: Use low-level INTR{EN,DIS} in intr_{setup,teardown}

intr_{setup,teardown} have already done enough verification for the
'intr' parameter


# 88100cf6 16-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/ioapic_abi: Augment intr_{setup,teardown} w/ assertions


# aef690c8 16-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/ioapic_abi: Augment intr_disable/intr_enable w/ assertions


# b8dfb6b1 07-Dec-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

x86_64/ioapic: Always allow user to specify GSI's target CPU

Even if interrupt automatic load balance is disable we still should
obey the explicit GSI target CPU configuration.


123