diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2017-11-21 20:32:26 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-11-28 20:39:07 -0600 |
commit | de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3 (patch) | |
tree | 36884e7dfb6520febf52c3f3b822a52b5d105f59 /doc | |
parent | ddc35b93fcadf624e9c60c4b9fefd83330748613 (diff) | |
download | skiboot-de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3.zip skiboot-de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3.tar.gz skiboot-de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3.tar.bz2 |
xive: Implement "single escalation" feature
This adds a new VP flag to control the new DD2.0
"single escalation" feature.
This feature allows us to have a single escalation
interrupt per VP instead of one per queue.
It works by hijacking queue 7 (which is this no longer
usable when that is enabled) and exploiting two new
hardware bits that will:
- Make the normal queues (0..6) escalate unconditionally
thus ignoring the ESe bits.
- Route the above escalations to queue 7
- Have queue 7 silently escalate without notification
Thus the escalation of queue 7 becomes the one escalation
interrupt for all the other queues.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/xive.rst | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/doc/xive.rst b/doc/xive.rst index c35db6e..0997c72 100644 --- a/doc/xive.rst +++ b/doc/xive.rst @@ -657,17 +657,12 @@ This call returns information about a VP: - OPAL_XIVE_VP_ENABLED - This must be set for the VP to be usable and cleared before freeing it + Returns the enabled state of the VP - OPAL_XIVE_VP_SINGLE_ESCALATION (if available) - If this is set, the queues are configured such that all priorities - turn into a single escalation interrupt. This results in the loss of - priority 7 which can no longer be used. This this needs to be set - before any interrupt is routed to that priority. - - This feature is available if the "single-escalation-property" is - present in the xive device-tree node. + Returns whether single escalation mode is enabled for this VP + (see opal_xive_set_vp_info()). * cam_value: This is the value to program into the thread management area to dispatch that VP (ie, an encoding of the block + index). @@ -696,6 +691,24 @@ This call configures a VP: .. note:: This can be used to disable the boot time VPs though this isn't recommended. This must be used to enable allocated VPs. + - OPAL_XIVE_VP_SINGLE_ESCALATION (if available) + + If this is set, the queues are configured such that all priorities + turn into a single escalation interrupt. This results in the loss of + priority 7 which can no longer be used. This this needs to be set + before any interrupt is routed to that priority and queue 7 must not + have been already enabled. + + This feature is available if the "single-escalation-property" is + present in the xive device-tree node. + + .. warning:: When enabling single escalation, and pre-existing routing + and configuration of the individual queues escalation + is lost (except queue 7 which is the new merged escalation). + When further disabling it, the previous value is not + retrieved and the field cleared, escalation is disabled on + all the queues. + * report_cl_pair: This is the real address of the reporting cache line pair for that VP or 0 to disable. |