{
  "schema_version": "0.6.0",
  "paper_id": "performance-evaluation-multithread-execution-paths",
  "page_url": "https://threadslab.org/research-publications/papers/performance-evaluation-multithread-execution-paths/",
  "title": "Performance Evaluation of Complex Multi-Thread Applications Through Execution Path Analysis",
  "title_variants": [],
  "authors": [
    "Majid Rezazadeh",
    "Naser Ezzati-Jivan",
    "Seyed Vahid Azhari",
    "Michel R. Dagenais"
  ],
  "author_details": [
    {
      "name": "Majid Rezazadeh",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/45/10661.html"
    },
    {
      "name": "Naser Ezzati-Jivan",
      "orcid": "https://orcid.org/0000-0003-1435-6297",
      "profile_url": "https://threadslab.org/"
    },
    {
      "name": "Seyed Vahid Azhari",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/42/2821.html"
    },
    {
      "name": "Michel R. Dagenais",
      "orcid": "https://orcid.org/0000-0002-6095-6149",
      "profile_url": "https://dblp.org/pid/60/309.html"
    }
  ],
  "publication": {
    "year": 2022,
    "venue": "Performance Evaluation",
    "type": "journal article",
    "publication_date": "2022-06",
    "online_date": null,
    "print_date": "2022-06",
    "volume": "155-156",
    "issue": null,
    "pages": "102289",
    "article_number": "102289",
    "publisher": "Elsevier BV",
    "issn": [
      "0166-5316"
    ],
    "isbn": [],
    "crossref_type": "journal-article"
  },
  "publication_type": "research paper",
  "status": "published_metadata_record",
  "canonical_source_url": "https://doi.org/10.1016/j.peva.2022.102289",
  "source_record_id": "performance-evaluation-of-complex-multi-thread-applications-through-execution-path-analysis-d1e6144c22",
  "identifiers": {
    "doi": "10.1016/j.peva.2022.102289"
  },
  "abstract": null,
  "abstract_source": "Official ScienceDirect abstract and article page reviewed; author abstract not reproduced because reuse permission for the version of record was not established.",
  "abstract_available": false,
  "scholar_eligibility": {
    "eligible": false,
    "basis": "not-eligible",
    "note": "The page is a discovery record; it does not claim Google Scholar article-host eligibility."
  },
  "description": "The paper unifies Chromium user-space events with Linux kernel scheduling and resource events to analyze execution paths and localize sporadic latency in a complex multithreaded application.",
  "evidence_level": "full-text-reviewed",
  "evidence": {
    "source_basis": "full-text-reviewed",
    "coverage": "material paper sections",
    "summary_origin": "AI-assisted catalog editorial summary",
    "review_status": "catalog-reviewed; paper-author approval pending",
    "verified_on": "2026-08-26",
    "sources": [
      {
        "note": "Local PDF reviewed, including CEGC graph construction, event sets, environment, Chromium bug cases, and trace configurations"
      },
      {
        "note": "ScienceDirect article DOI: https://doi.org/10.1016/j.peva.2022.102289"
      },
      {
        "note": "Author code repository identified in the paper: https://github.com/majid3612/chrome-tracing"
      }
    ]
  },
  "summary": {
    "core_contribution": "The paper unifies Chromium user-space events with Linux kernel scheduling and resource events to analyze execution paths and localize sporadic latency in a complex multithreaded application.",
    "problem": "Chromium jank can arise from user code, thread imbalance, locks, page faults, I/O, interrupts, or scheduler behavior. Chromium's built-in tracer does not provide sufficient kernel scheduling/resource context, precision, buffer capacity, or cross-level causal structure for many cases.",
    "method": "The evaluation combines Chromium events with LTTng/LTTng-UST kernel traces exported to CTF and analyzed in Trace Compass. The CEGC algorithm builds a two-dimensional doubly linked execution graph: horizontal execution states and vertical wake-up relationships. Event sets include sched_switch, sched_wakeup, task start/run/complete, navigation, mouse/key events, timers, IRQ/softirq, and network events; BEGIN/END pairs compute durations. Critical paths classify running, preempted, interrupted, CPU-wait, block-device, network, timer, and input waiting. The setup uses 16 Intel Core i7-7820X cores, 32 GB RAM, Ubuntu 16.04.6/kernel 4.15, LTTng 2.11, and Chromium 73.0.3672.0, with trace rotation for large runs.",
    "findings": "Three Chromium cases are analyzed. Bug 125264 exposes 100–400 ms membarrier delay on the main thread associated with an older liburcu/kernel path; another jank case shows the UI thread blocked on a Chrome_IO thread through futex lock contention; Bug 892747 shows a 911 ms ClosePage stall with approximately 2,700 queued tasks and page-fault/disk-read activity under stress. The multilevel view reveals causes hidden by the user-level symptom, and the paper's public code is at the linked chrome-tracing repository.",
    "limitations": "The study is centered on Chromium and requires application-specific instrumentation and event mapping. The cases diagnose latency/jank rather than functional correctness, and the workload is stress-oriented; transfer to other browsers, applications, kernels, and interaction patterns requires additional validation.",
    "future_work": "Automate cross-application event mapping, use learning or similarity methods to distinguish recurrent jank causes, analyze memory leaks and other defect classes, and evaluate diagnostic accuracy and overhead across modern Chromium versions and heterogeneous systems."
  },
  "tags": [
    "performance-analysis",
    "trace-analysis",
    "multicore-systems",
    "performance-engineering"
  ],
  "keywords": [
    "multi-thread applications",
    "execution paths",
    "performance evaluation",
    "thread behavior"
  ],
  "versions": [
    {
      "id": "published-version",
      "label": "Published version",
      "relation": "version-of-record",
      "title": "Performance Evaluation of Complex Multi-Thread Applications Through Execution Path Analysis",
      "url": "https://doi.org/10.1016/j.peva.2022.102289",
      "pdf_url": null,
      "status": "published",
      "canonical_for_citation": true
    }
  ],
  "access": {
    "status": "published_metadata_record",
    "note": "The DOI is the canonical citation target; this catalog does not redistribute the publisher PDF.",
    "license": null
  },
  "resources": {
    "code": "https://github.com/majid3612/chrome-tracing",
    "data": null,
    "slides": null,
    "demo": null
  },
  "citation_guidance": {
    "when_to_cite": "Cite this paper when combining application and kernel traces to localize sporadic multithreaded latency.",
    "points": [
      "The CEGC execution graph and wake-up relationships.",
      "LTTng/LTTng-UST plus Chromium event instrumentation.",
      "Critical-path states for CPU, lock, I/O, page-fault, interrupt, and scheduler causes.",
      "The three Chromium cases and application-specific instrumentation boundary."
    ],
    "canonical_version_id": "published-version"
  },
  "provenance": {
    "metadata_verified_on": "2026-08-26",
    "metadata_source": [
      "Local PDF reviewed, including CEGC graph construction, event sets, environment, Chromium bug cases, and trace configurations",
      "ScienceDirect article DOI: https://doi.org/10.1016/j.peva.2022.102289",
      "Author code repository identified in the paper: https://github.com/majid3612/chrome-tracing"
    ],
    "summary_written_by": "AI-assisted",
    "summary_verified_by": "full-text-grounded catalog review; author approval pending",
    "linked_preprint_record": null,
    "author_order_note": null
  },
  "batch": {
    "phase": 2,
    "batch_label": "expanded forty-paper release",
    "status": "included_in_expanded_catalog",
    "selected_at": "2026-08-28"
  }
}
