mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 09:10:28 +00:00
[PowerPC] XIVE dispatch tweaks
* Only read the DPCPU pointer once per xive_dispatch call. * Optimize HE decoding for the common cases. Reported by: jhibbits (in irc) Reviewed by: jhibbits Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D25545
This commit is contained in:
parent
b256d25c50
commit
60185d8965
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=362965
|
@ -507,6 +507,7 @@ xive_dispatch(device_t dev, struct trapframe *tf)
|
|||
|
||||
sc = device_get_softc(dev);
|
||||
|
||||
xive_cpud = DPCPU_PTR(xive_cpu_data);
|
||||
for (;;) {
|
||||
ack = xive_read_2(sc, XIVE_TM_SPC_ACK);
|
||||
cppr = (ack & 0xff);
|
||||
|
@ -515,19 +516,17 @@ xive_dispatch(device_t dev, struct trapframe *tf)
|
|||
|
||||
if (he == TM_QW3_NSR_HE_NONE)
|
||||
break;
|
||||
switch (he) {
|
||||
case TM_QW3_NSR_HE_NONE:
|
||||
goto end;
|
||||
case TM_QW3_NSR_HE_POOL:
|
||||
case TM_QW3_NSR_HE_LSI:
|
||||
|
||||
else if (__predict_false(he != TM_QW3_NSR_HE_PHYS)) {
|
||||
/*
|
||||
* We don't support TM_QW3_NSR_HE_POOL or
|
||||
* TM_QW3_NSR_HE_LSI interrupts.
|
||||
*/
|
||||
device_printf(dev,
|
||||
"Unexpected interrupt he type: %d\n", he);
|
||||
goto end;
|
||||
case TM_QW3_NSR_HE_PHYS:
|
||||
break;
|
||||
}
|
||||
|
||||
xive_cpud = DPCPU_PTR(xive_cpu_data);
|
||||
xive_write_1(sc, XIVE_TM_CPPR, cppr);
|
||||
|
||||
for (;;) {
|
||||
|
|
Loading…
Reference in a new issue