root/drivers/misc/cxl/trace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * Copyright 2015 IBM Corp.
   4  */
   5 
   6 #undef TRACE_SYSTEM
   7 #define TRACE_SYSTEM cxl
   8 
   9 #if !defined(_CXL_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  10 #define _CXL_TRACE_H
  11 
  12 #include <linux/tracepoint.h>
  13 
  14 #include "cxl.h"
  15 
  16 #define dsisr_psl9_flags(flags) \
  17         __print_flags(flags, "|", \
  18                 { CXL_PSL9_DSISR_An_CO_MASK,    "FR" }, \
  19                 { CXL_PSL9_DSISR_An_TF,         "TF" }, \
  20                 { CXL_PSL9_DSISR_An_PE,         "PE" }, \
  21                 { CXL_PSL9_DSISR_An_AE,         "AE" }, \
  22                 { CXL_PSL9_DSISR_An_OC,         "OC" }, \
  23                 { CXL_PSL9_DSISR_An_S,          "S" })
  24 
  25 #define DSISR_FLAGS \
  26         { CXL_PSL_DSISR_An_DS,  "DS" }, \
  27         { CXL_PSL_DSISR_An_DM,  "DM" }, \
  28         { CXL_PSL_DSISR_An_ST,  "ST" }, \
  29         { CXL_PSL_DSISR_An_UR,  "UR" }, \
  30         { CXL_PSL_DSISR_An_PE,  "PE" }, \
  31         { CXL_PSL_DSISR_An_AE,  "AE" }, \
  32         { CXL_PSL_DSISR_An_OC,  "OC" }, \
  33         { CXL_PSL_DSISR_An_M,   "M" }, \
  34         { CXL_PSL_DSISR_An_P,   "P" }, \
  35         { CXL_PSL_DSISR_An_A,   "A" }, \
  36         { CXL_PSL_DSISR_An_S,   "S" }, \
  37         { CXL_PSL_DSISR_An_K,   "K" }
  38 
  39 #define TFC_FLAGS \
  40         { CXL_PSL_TFC_An_A,     "A" }, \
  41         { CXL_PSL_TFC_An_C,     "C" }, \
  42         { CXL_PSL_TFC_An_AE,    "AE" }, \
  43         { CXL_PSL_TFC_An_R,     "R" }
  44 
  45 #define LLCMD_NAMES \
  46         { CXL_SPA_SW_CMD_TERMINATE,     "TERMINATE" }, \
  47         { CXL_SPA_SW_CMD_REMOVE,        "REMOVE" }, \
  48         { CXL_SPA_SW_CMD_SUSPEND,       "SUSPEND" }, \
  49         { CXL_SPA_SW_CMD_RESUME,        "RESUME" }, \
  50         { CXL_SPA_SW_CMD_ADD,           "ADD" }, \
  51         { CXL_SPA_SW_CMD_UPDATE,        "UPDATE" }
  52 
  53 #define AFU_COMMANDS \
  54         { 0,                    "DISABLE" }, \
  55         { CXL_AFU_Cntl_An_E,    "ENABLE" }, \
  56         { CXL_AFU_Cntl_An_RA,   "RESET" }
  57 
  58 #define PSL_COMMANDS \
  59         { CXL_PSL_SCNTL_An_Pc,  "PURGE" }, \
  60         { CXL_PSL_SCNTL_An_Sc,  "SUSPEND" }
  61 
  62 
  63 DECLARE_EVENT_CLASS(cxl_pe_class,
  64         TP_PROTO(struct cxl_context *ctx),
  65 
  66         TP_ARGS(ctx),
  67 
  68         TP_STRUCT__entry(
  69                 __field(u8, card)
  70                 __field(u8, afu)
  71                 __field(u16, pe)
  72         ),
  73 
  74         TP_fast_assign(
  75                 __entry->card = ctx->afu->adapter->adapter_num;
  76                 __entry->afu = ctx->afu->slice;
  77                 __entry->pe = ctx->pe;
  78         ),
  79 
  80         TP_printk("afu%i.%i pe=%i",
  81                 __entry->card,
  82                 __entry->afu,
  83                 __entry->pe
  84         )
  85 );
  86 
  87 
  88 TRACE_EVENT(cxl_attach,
  89         TP_PROTO(struct cxl_context *ctx, u64 wed, s16 num_interrupts, u64 amr),
  90 
  91         TP_ARGS(ctx, wed, num_interrupts, amr),
  92 
  93         TP_STRUCT__entry(
  94                 __field(u8, card)
  95                 __field(u8, afu)
  96                 __field(u16, pe)
  97                 __field(pid_t, pid)
  98                 __field(u64, wed)
  99                 __field(u64, amr)
 100                 __field(s16, num_interrupts)
 101         ),
 102 
 103         TP_fast_assign(
 104                 __entry->card = ctx->afu->adapter->adapter_num;
 105                 __entry->afu = ctx->afu->slice;
 106                 __entry->pe = ctx->pe;
 107                 __entry->pid = pid_nr(ctx->pid);
 108                 __entry->wed = wed;
 109                 __entry->amr = amr;
 110                 __entry->num_interrupts = num_interrupts;
 111         ),
 112 
 113         TP_printk("afu%i.%i pid=%i pe=%i wed=0x%016llx irqs=%i amr=0x%llx",
 114                 __entry->card,
 115                 __entry->afu,
 116                 __entry->pid,
 117                 __entry->pe,
 118                 __entry->wed,
 119                 __entry->num_interrupts,
 120                 __entry->amr
 121         )
 122 );
 123 
 124 DEFINE_EVENT(cxl_pe_class, cxl_detach,
 125         TP_PROTO(struct cxl_context *ctx),
 126         TP_ARGS(ctx)
 127 );
 128 
 129 TRACE_EVENT(cxl_afu_irq,
 130         TP_PROTO(struct cxl_context *ctx, int afu_irq, int virq, irq_hw_number_t hwirq),
 131 
 132         TP_ARGS(ctx, afu_irq, virq, hwirq),
 133 
 134         TP_STRUCT__entry(
 135                 __field(u8, card)
 136                 __field(u8, afu)
 137                 __field(u16, pe)
 138                 __field(u16, afu_irq)
 139                 __field(int, virq)
 140                 __field(irq_hw_number_t, hwirq)
 141         ),
 142 
 143         TP_fast_assign(
 144                 __entry->card = ctx->afu->adapter->adapter_num;
 145                 __entry->afu = ctx->afu->slice;
 146                 __entry->pe = ctx->pe;
 147                 __entry->afu_irq = afu_irq;
 148                 __entry->virq = virq;
 149                 __entry->hwirq = hwirq;
 150         ),
 151 
 152         TP_printk("afu%i.%i pe=%i afu_irq=%i virq=%i hwirq=0x%lx",
 153                 __entry->card,
 154                 __entry->afu,
 155                 __entry->pe,
 156                 __entry->afu_irq,
 157                 __entry->virq,
 158                 __entry->hwirq
 159         )
 160 );
 161 
 162 TRACE_EVENT(cxl_psl9_irq,
 163         TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar),
 164 
 165         TP_ARGS(ctx, irq, dsisr, dar),
 166 
 167         TP_STRUCT__entry(
 168                 __field(u8, card)
 169                 __field(u8, afu)
 170                 __field(u16, pe)
 171                 __field(int, irq)
 172                 __field(u64, dsisr)
 173                 __field(u64, dar)
 174         ),
 175 
 176         TP_fast_assign(
 177                 __entry->card = ctx->afu->adapter->adapter_num;
 178                 __entry->afu = ctx->afu->slice;
 179                 __entry->pe = ctx->pe;
 180                 __entry->irq = irq;
 181                 __entry->dsisr = dsisr;
 182                 __entry->dar = dar;
 183         ),
 184 
 185         TP_printk("afu%i.%i pe=%i irq=%i dsisr=0x%016llx dsisr=%s dar=0x%016llx",
 186                 __entry->card,
 187                 __entry->afu,
 188                 __entry->pe,
 189                 __entry->irq,
 190                 __entry->dsisr,
 191                 dsisr_psl9_flags(__entry->dsisr),
 192                 __entry->dar
 193         )
 194 );
 195 
 196 TRACE_EVENT(cxl_psl_irq,
 197         TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar),
 198 
 199         TP_ARGS(ctx, irq, dsisr, dar),
 200 
 201         TP_STRUCT__entry(
 202                 __field(u8, card)
 203                 __field(u8, afu)
 204                 __field(u16, pe)
 205                 __field(int, irq)
 206                 __field(u64, dsisr)
 207                 __field(u64, dar)
 208         ),
 209 
 210         TP_fast_assign(
 211                 __entry->card = ctx->afu->adapter->adapter_num;
 212                 __entry->afu = ctx->afu->slice;
 213                 __entry->pe = ctx->pe;
 214                 __entry->irq = irq;
 215                 __entry->dsisr = dsisr;
 216                 __entry->dar = dar;
 217         ),
 218 
 219         TP_printk("afu%i.%i pe=%i irq=%i dsisr=%s dar=0x%016llx",
 220                 __entry->card,
 221                 __entry->afu,
 222                 __entry->pe,
 223                 __entry->irq,
 224                 __print_flags(__entry->dsisr, "|", DSISR_FLAGS),
 225                 __entry->dar
 226         )
 227 );
 228 
 229 TRACE_EVENT(cxl_psl_irq_ack,
 230         TP_PROTO(struct cxl_context *ctx, u64 tfc),
 231 
 232         TP_ARGS(ctx, tfc),
 233 
 234         TP_STRUCT__entry(
 235                 __field(u8, card)
 236                 __field(u8, afu)
 237                 __field(u16, pe)
 238                 __field(u64, tfc)
 239         ),
 240 
 241         TP_fast_assign(
 242                 __entry->card = ctx->afu->adapter->adapter_num;
 243                 __entry->afu = ctx->afu->slice;
 244                 __entry->pe = ctx->pe;
 245                 __entry->tfc = tfc;
 246         ),
 247 
 248         TP_printk("afu%i.%i pe=%i tfc=%s",
 249                 __entry->card,
 250                 __entry->afu,
 251                 __entry->pe,
 252                 __print_flags(__entry->tfc, "|", TFC_FLAGS)
 253         )
 254 );
 255 
 256 TRACE_EVENT(cxl_ste_miss,
 257         TP_PROTO(struct cxl_context *ctx, u64 dar),
 258 
 259         TP_ARGS(ctx, dar),
 260 
 261         TP_STRUCT__entry(
 262                 __field(u8, card)
 263                 __field(u8, afu)
 264                 __field(u16, pe)
 265                 __field(u64, dar)
 266         ),
 267 
 268         TP_fast_assign(
 269                 __entry->card = ctx->afu->adapter->adapter_num;
 270                 __entry->afu = ctx->afu->slice;
 271                 __entry->pe = ctx->pe;
 272                 __entry->dar = dar;
 273         ),
 274 
 275         TP_printk("afu%i.%i pe=%i dar=0x%016llx",
 276                 __entry->card,
 277                 __entry->afu,
 278                 __entry->pe,
 279                 __entry->dar
 280         )
 281 );
 282 
 283 TRACE_EVENT(cxl_ste_write,
 284         TP_PROTO(struct cxl_context *ctx, unsigned int idx, u64 e, u64 v),
 285 
 286         TP_ARGS(ctx, idx, e, v),
 287 
 288         TP_STRUCT__entry(
 289                 __field(u8, card)
 290                 __field(u8, afu)
 291                 __field(u16, pe)
 292                 __field(unsigned int, idx)
 293                 __field(u64, e)
 294                 __field(u64, v)
 295         ),
 296 
 297         TP_fast_assign(
 298                 __entry->card = ctx->afu->adapter->adapter_num;
 299                 __entry->afu = ctx->afu->slice;
 300                 __entry->pe = ctx->pe;
 301                 __entry->idx = idx;
 302                 __entry->e = e;
 303                 __entry->v = v;
 304         ),
 305 
 306         TP_printk("afu%i.%i pe=%i SSTE[%i] E=0x%016llx V=0x%016llx",
 307                 __entry->card,
 308                 __entry->afu,
 309                 __entry->pe,
 310                 __entry->idx,
 311                 __entry->e,
 312                 __entry->v
 313         )
 314 );
 315 
 316 TRACE_EVENT(cxl_pte_miss,
 317         TP_PROTO(struct cxl_context *ctx, u64 dsisr, u64 dar),
 318 
 319         TP_ARGS(ctx, dsisr, dar),
 320 
 321         TP_STRUCT__entry(
 322                 __field(u8, card)
 323                 __field(u8, afu)
 324                 __field(u16, pe)
 325                 __field(u64, dsisr)
 326                 __field(u64, dar)
 327         ),
 328 
 329         TP_fast_assign(
 330                 __entry->card = ctx->afu->adapter->adapter_num;
 331                 __entry->afu = ctx->afu->slice;
 332                 __entry->pe = ctx->pe;
 333                 __entry->dsisr = dsisr;
 334                 __entry->dar = dar;
 335         ),
 336 
 337         TP_printk("afu%i.%i pe=%i dsisr=%s dar=0x%016llx",
 338                 __entry->card,
 339                 __entry->afu,
 340                 __entry->pe,
 341                 __print_flags(__entry->dsisr, "|", DSISR_FLAGS),
 342                 __entry->dar
 343         )
 344 );
 345 
 346 TRACE_EVENT(cxl_llcmd,
 347         TP_PROTO(struct cxl_context *ctx, u64 cmd),
 348 
 349         TP_ARGS(ctx, cmd),
 350 
 351         TP_STRUCT__entry(
 352                 __field(u8, card)
 353                 __field(u8, afu)
 354                 __field(u16, pe)
 355                 __field(u64, cmd)
 356         ),
 357 
 358         TP_fast_assign(
 359                 __entry->card = ctx->afu->adapter->adapter_num;
 360                 __entry->afu = ctx->afu->slice;
 361                 __entry->pe = ctx->pe;
 362                 __entry->cmd = cmd;
 363         ),
 364 
 365         TP_printk("afu%i.%i pe=%i cmd=%s",
 366                 __entry->card,
 367                 __entry->afu,
 368                 __entry->pe,
 369                 __print_symbolic_u64(__entry->cmd, LLCMD_NAMES)
 370         )
 371 );
 372 
 373 TRACE_EVENT(cxl_llcmd_done,
 374         TP_PROTO(struct cxl_context *ctx, u64 cmd, int rc),
 375 
 376         TP_ARGS(ctx, cmd, rc),
 377 
 378         TP_STRUCT__entry(
 379                 __field(u8, card)
 380                 __field(u8, afu)
 381                 __field(u16, pe)
 382                 __field(u64, cmd)
 383                 __field(int, rc)
 384         ),
 385 
 386         TP_fast_assign(
 387                 __entry->card = ctx->afu->adapter->adapter_num;
 388                 __entry->afu = ctx->afu->slice;
 389                 __entry->pe = ctx->pe;
 390                 __entry->rc = rc;
 391                 __entry->cmd = cmd;
 392         ),
 393 
 394         TP_printk("afu%i.%i pe=%i cmd=%s rc=%i",
 395                 __entry->card,
 396                 __entry->afu,
 397                 __entry->pe,
 398                 __print_symbolic_u64(__entry->cmd, LLCMD_NAMES),
 399                 __entry->rc
 400         )
 401 );
 402 
 403 DECLARE_EVENT_CLASS(cxl_afu_psl_ctrl,
 404         TP_PROTO(struct cxl_afu *afu, u64 cmd),
 405 
 406         TP_ARGS(afu, cmd),
 407 
 408         TP_STRUCT__entry(
 409                 __field(u8, card)
 410                 __field(u8, afu)
 411                 __field(u64, cmd)
 412         ),
 413 
 414         TP_fast_assign(
 415                 __entry->card = afu->adapter->adapter_num;
 416                 __entry->afu = afu->slice;
 417                 __entry->cmd = cmd;
 418         ),
 419 
 420         TP_printk("afu%i.%i cmd=%s",
 421                 __entry->card,
 422                 __entry->afu,
 423                 __print_symbolic_u64(__entry->cmd, AFU_COMMANDS)
 424         )
 425 );
 426 
 427 DECLARE_EVENT_CLASS(cxl_afu_psl_ctrl_done,
 428         TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc),
 429 
 430         TP_ARGS(afu, cmd, rc),
 431 
 432         TP_STRUCT__entry(
 433                 __field(u8, card)
 434                 __field(u8, afu)
 435                 __field(u64, cmd)
 436                 __field(int, rc)
 437         ),
 438 
 439         TP_fast_assign(
 440                 __entry->card = afu->adapter->adapter_num;
 441                 __entry->afu = afu->slice;
 442                 __entry->rc = rc;
 443                 __entry->cmd = cmd;
 444         ),
 445 
 446         TP_printk("afu%i.%i cmd=%s rc=%i",
 447                 __entry->card,
 448                 __entry->afu,
 449                 __print_symbolic_u64(__entry->cmd, AFU_COMMANDS),
 450                 __entry->rc
 451         )
 452 );
 453 
 454 DEFINE_EVENT(cxl_afu_psl_ctrl, cxl_afu_ctrl,
 455         TP_PROTO(struct cxl_afu *afu, u64 cmd),
 456         TP_ARGS(afu, cmd)
 457 );
 458 
 459 DEFINE_EVENT(cxl_afu_psl_ctrl_done, cxl_afu_ctrl_done,
 460         TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc),
 461         TP_ARGS(afu, cmd, rc)
 462 );
 463 
 464 DEFINE_EVENT_PRINT(cxl_afu_psl_ctrl, cxl_psl_ctrl,
 465         TP_PROTO(struct cxl_afu *afu, u64 cmd),
 466         TP_ARGS(afu, cmd),
 467 
 468         TP_printk("psl%i.%i cmd=%s",
 469                 __entry->card,
 470                 __entry->afu,
 471                 __print_symbolic_u64(__entry->cmd, PSL_COMMANDS)
 472         )
 473 );
 474 
 475 DEFINE_EVENT_PRINT(cxl_afu_psl_ctrl_done, cxl_psl_ctrl_done,
 476         TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc),
 477         TP_ARGS(afu, cmd, rc),
 478 
 479         TP_printk("psl%i.%i cmd=%s rc=%i",
 480                 __entry->card,
 481                 __entry->afu,
 482                 __print_symbolic_u64(__entry->cmd, PSL_COMMANDS),
 483                 __entry->rc
 484         )
 485 );
 486 
 487 DEFINE_EVENT(cxl_pe_class, cxl_slbia,
 488         TP_PROTO(struct cxl_context *ctx),
 489         TP_ARGS(ctx)
 490 );
 491 
 492 TRACE_EVENT(cxl_hcall,
 493         TP_PROTO(u64 unit_address, u64 process_token, long rc),
 494 
 495         TP_ARGS(unit_address, process_token, rc),
 496 
 497         TP_STRUCT__entry(
 498                 __field(u64, unit_address)
 499                 __field(u64, process_token)
 500                 __field(long, rc)
 501         ),
 502 
 503         TP_fast_assign(
 504                 __entry->unit_address = unit_address;
 505                 __entry->process_token = process_token;
 506                 __entry->rc = rc;
 507         ),
 508 
 509         TP_printk("unit_address=0x%016llx process_token=0x%016llx rc=%li",
 510                 __entry->unit_address,
 511                 __entry->process_token,
 512                 __entry->rc
 513         )
 514 );
 515 
 516 TRACE_EVENT(cxl_hcall_control,
 517         TP_PROTO(u64 unit_address, char *fct, u64 p1, u64 p2, u64 p3,
 518         u64 p4, unsigned long r4, long rc),
 519 
 520         TP_ARGS(unit_address, fct, p1, p2, p3, p4, r4, rc),
 521 
 522         TP_STRUCT__entry(
 523                 __field(u64, unit_address)
 524                 __field(char *, fct)
 525                 __field(u64, p1)
 526                 __field(u64, p2)
 527                 __field(u64, p3)
 528                 __field(u64, p4)
 529                 __field(unsigned long, r4)
 530                 __field(long, rc)
 531         ),
 532 
 533         TP_fast_assign(
 534                 __entry->unit_address = unit_address;
 535                 __entry->fct = fct;
 536                 __entry->p1 = p1;
 537                 __entry->p2 = p2;
 538                 __entry->p3 = p3;
 539                 __entry->p4 = p4;
 540                 __entry->r4 = r4;
 541                 __entry->rc = rc;
 542         ),
 543 
 544         TP_printk("unit_address=%#.16llx %s(%#llx, %#llx, %#llx, %#llx, R4: %#lx)): %li",
 545                 __entry->unit_address,
 546                 __entry->fct,
 547                 __entry->p1,
 548                 __entry->p2,
 549                 __entry->p3,
 550                 __entry->p4,
 551                 __entry->r4,
 552                 __entry->rc
 553         )
 554 );
 555 
 556 TRACE_EVENT(cxl_hcall_attach,
 557         TP_PROTO(u64 unit_address, u64 phys_addr, unsigned long process_token,
 558                 unsigned long mmio_addr, unsigned long mmio_size, long rc),
 559 
 560         TP_ARGS(unit_address, phys_addr, process_token,
 561                 mmio_addr, mmio_size, rc),
 562 
 563         TP_STRUCT__entry(
 564                 __field(u64, unit_address)
 565                 __field(u64, phys_addr)
 566                 __field(unsigned long, process_token)
 567                 __field(unsigned long, mmio_addr)
 568                 __field(unsigned long, mmio_size)
 569                 __field(long, rc)
 570         ),
 571 
 572         TP_fast_assign(
 573                 __entry->unit_address = unit_address;
 574                 __entry->phys_addr = phys_addr;
 575                 __entry->process_token = process_token;
 576                 __entry->mmio_addr = mmio_addr;
 577                 __entry->mmio_size = mmio_size;
 578                 __entry->rc = rc;
 579         ),
 580 
 581         TP_printk("unit_address=0x%016llx phys_addr=0x%016llx "
 582                 "token=0x%.8lx mmio_addr=0x%lx mmio_size=0x%lx rc=%li",
 583                 __entry->unit_address,
 584                 __entry->phys_addr,
 585                 __entry->process_token,
 586                 __entry->mmio_addr,
 587                 __entry->mmio_size,
 588                 __entry->rc
 589         )
 590 );
 591 
 592 DEFINE_EVENT(cxl_hcall, cxl_hcall_detach,
 593         TP_PROTO(u64 unit_address, u64 process_token, long rc),
 594         TP_ARGS(unit_address, process_token, rc)
 595 );
 596 
 597 DEFINE_EVENT(cxl_hcall_control, cxl_hcall_control_function,
 598         TP_PROTO(u64 unit_address, char *fct, u64 p1, u64 p2, u64 p3,
 599         u64 p4, unsigned long r4, long rc),
 600         TP_ARGS(unit_address, fct, p1, p2, p3, p4, r4, rc)
 601 );
 602 
 603 DEFINE_EVENT(cxl_hcall, cxl_hcall_collect_int_info,
 604         TP_PROTO(u64 unit_address, u64 process_token, long rc),
 605         TP_ARGS(unit_address, process_token, rc)
 606 );
 607 
 608 TRACE_EVENT(cxl_hcall_control_faults,
 609         TP_PROTO(u64 unit_address, u64 process_token,
 610                 u64 control_mask, u64 reset_mask, unsigned long r4,
 611                 long rc),
 612 
 613         TP_ARGS(unit_address, process_token,
 614                 control_mask, reset_mask, r4, rc),
 615 
 616         TP_STRUCT__entry(
 617                 __field(u64, unit_address)
 618                 __field(u64, process_token)
 619                 __field(u64, control_mask)
 620                 __field(u64, reset_mask)
 621                 __field(unsigned long, r4)
 622                 __field(long, rc)
 623         ),
 624 
 625         TP_fast_assign(
 626                 __entry->unit_address = unit_address;
 627                 __entry->process_token = process_token;
 628                 __entry->control_mask = control_mask;
 629                 __entry->reset_mask = reset_mask;
 630                 __entry->r4 = r4;
 631                 __entry->rc = rc;
 632         ),
 633 
 634         TP_printk("unit_address=0x%016llx process_token=0x%llx "
 635                 "control_mask=%#llx reset_mask=%#llx r4=%#lx rc=%li",
 636                 __entry->unit_address,
 637                 __entry->process_token,
 638                 __entry->control_mask,
 639                 __entry->reset_mask,
 640                 __entry->r4,
 641                 __entry->rc
 642         )
 643 );
 644 
 645 DEFINE_EVENT(cxl_hcall_control, cxl_hcall_control_facility,
 646         TP_PROTO(u64 unit_address, char *fct, u64 p1, u64 p2, u64 p3,
 647         u64 p4, unsigned long r4, long rc),
 648         TP_ARGS(unit_address, fct, p1, p2, p3, p4, r4, rc)
 649 );
 650 
 651 TRACE_EVENT(cxl_hcall_download_facility,
 652         TP_PROTO(u64 unit_address, char *fct, u64 list_address, u64 num,
 653         unsigned long r4, long rc),
 654 
 655         TP_ARGS(unit_address, fct, list_address, num, r4, rc),
 656 
 657         TP_STRUCT__entry(
 658                 __field(u64, unit_address)
 659                 __field(char *, fct)
 660                 __field(u64, list_address)
 661                 __field(u64, num)
 662                 __field(unsigned long, r4)
 663                 __field(long, rc)
 664         ),
 665 
 666         TP_fast_assign(
 667                 __entry->unit_address = unit_address;
 668                 __entry->fct = fct;
 669                 __entry->list_address = list_address;
 670                 __entry->num = num;
 671                 __entry->r4 = r4;
 672                 __entry->rc = rc;
 673         ),
 674 
 675         TP_printk("%#.16llx, %s(%#llx, %#llx), %#lx): %li",
 676                 __entry->unit_address,
 677                 __entry->fct,
 678                 __entry->list_address,
 679                 __entry->num,
 680                 __entry->r4,
 681                 __entry->rc
 682         )
 683 );
 684 
 685 #endif /* _CXL_TRACE_H */
 686 
 687 /* This part must be outside protection */
 688 #undef TRACE_INCLUDE_PATH
 689 #define TRACE_INCLUDE_PATH .
 690 #define TRACE_INCLUDE_FILE trace
 691 #include <trace/define_trace.h>

/* [<][>][^][v][top][bottom][index][help] */