Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Track when the asm interpreter transitions into C++ interpreter #436

Open
wants to merge 3 commits into
base: trunk
Choose a base branch
from

Commits on Apr 18, 2023

  1. Add interpreter transition event

    In debug(opt) mode, register a bpftrace event that fires when the
    assembly interpreter switches to the C++ interpreter. This also includes
    opcodes that have no assembly implementation (and therefore always
    switch to C++).
    tekknolagi committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    b00b2d7 View commit details
    Browse the repository at this point in the history
  2. Add asm interpreter implementation of LOAD_ATTR_INSTANCE_SLOT_DESCR

    For richards.py this occurs 25330 times, according to the bpftrace
    script. It is not the hottest, but it is easy to implement.
    
    (smaller)
    ...
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_COMPARE_IN_MONOMORPHIC]: 14073
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_COMPARE_EQ_STR]: 17581
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_LOAD_ATTR_INSTANCE_TYPE]: 19845
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_LOAD_ATTR_INSTANCE_SLOT_DESCR]: 25330
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_BUILD_TUPLE]: 27540
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_GET_ITER]: 44881
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_INPLACE_OP_MONOMORPHIC]: 56030
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_BINARY_FLOORDIV_SMALLINT]: 57701
    @interpreter_deopt[usdt:./build/bin/python:python:InterpreterDeopt_BINARY_OP_MONOMORPHIC]: 58618
    (higher)
    tekknolagi committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    b010b3b View commit details
    Browse the repository at this point in the history
  3. Add asm interpreter implementation of LOAD_ATTR_INSTANCE_TYPE

    This brings it down from 19727 to 4101 transitions from asm to C++.
    tekknolagi committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    4b916d3 View commit details
    Browse the repository at this point in the history