cxl: Add psl9 specific code
The new Coherent Accelerator Interface Architecture, level 2, for the IBM POWER9 brings new content and features: - POWER9 Service Layer - Registers - Radix mode - Process element entry - Dedicated-Shared Process Programming Model - Translation Fault Handling - CAPP - Memory Context ID If a valid mm_struct is found the memory context id is used for each transaction associated with the process handle. The PSL uses the context ID to find the corresponding process element. Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> [mpe: Fixup comment formatting, unsplit long strings] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
abd1d99bb3
commit
f24be42aab
@@ -17,6 +17,15 @@
|
||||
|
||||
#include "cxl.h"
|
||||
|
||||
#define dsisr_psl9_flags(flags) \
|
||||
__print_flags(flags, "|", \
|
||||
{ CXL_PSL9_DSISR_An_CO_MASK, "FR" }, \
|
||||
{ CXL_PSL9_DSISR_An_TF, "TF" }, \
|
||||
{ CXL_PSL9_DSISR_An_PE, "PE" }, \
|
||||
{ CXL_PSL9_DSISR_An_AE, "AE" }, \
|
||||
{ CXL_PSL9_DSISR_An_OC, "OC" }, \
|
||||
{ CXL_PSL9_DSISR_An_S, "S" })
|
||||
|
||||
#define DSISR_FLAGS \
|
||||
{ CXL_PSL_DSISR_An_DS, "DS" }, \
|
||||
{ CXL_PSL_DSISR_An_DM, "DM" }, \
|
||||
@@ -154,6 +163,40 @@ TRACE_EVENT(cxl_afu_irq,
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(cxl_psl9_irq,
|
||||
TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar),
|
||||
|
||||
TP_ARGS(ctx, irq, dsisr, dar),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u8, card)
|
||||
__field(u8, afu)
|
||||
__field(u16, pe)
|
||||
__field(int, irq)
|
||||
__field(u64, dsisr)
|
||||
__field(u64, dar)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->card = ctx->afu->adapter->adapter_num;
|
||||
__entry->afu = ctx->afu->slice;
|
||||
__entry->pe = ctx->pe;
|
||||
__entry->irq = irq;
|
||||
__entry->dsisr = dsisr;
|
||||
__entry->dar = dar;
|
||||
),
|
||||
|
||||
TP_printk("afu%i.%i pe=%i irq=%i dsisr=0x%016llx dsisr=%s dar=0x%016llx",
|
||||
__entry->card,
|
||||
__entry->afu,
|
||||
__entry->pe,
|
||||
__entry->irq,
|
||||
__entry->dsisr,
|
||||
dsisr_psl9_flags(__entry->dsisr),
|
||||
__entry->dar
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(cxl_psl_irq,
|
||||
TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar),
|
||||
|
||||
|
Reference in New Issue
Block a user