Ejemplo n.º 1
0
def find_emap():
    """Search and read a perfmon event map.
       When the EVENTMAP environment variable is set read that, otherwise
       read the map for the current CPU.
       Return an emap object that contains the events and can be queried
       or None if nothing is found or the current CPU is unknown."""
    el = os.getenv("EVENTMAP")
    if el and el.find("/") >= 0:
        try:
            return EmapNativeJSON(el)
        except IOError:
            return None
    if not el:
        el = event_download.get_cpustr()
    try:
        emap = EmapNativeJSON(event_download.eventlist_name(el))
        if emap:
            return emap
    except IOError:
        pass
    try:
        event_download.download(el)
        return EmapNativeJSON(event_download.eventlist_name(el))
    except IOError:
        pass
    return None
Ejemplo n.º 2
0
def json_with_offcore(el, need_oc):
    emap = EmapNativeJSON(event_download.eventlist_name(el, "core"))
    if not emap:
        return None
    oc = event_download.eventlist_name(el, "offcore")
    if os.path.exists(oc):
        emap.add_offcore(oc)
    elif need_oc:
        return None
    return emap
Ejemplo n.º 3
0
def json_with_offcore(el, need_oc):
    emap = EmapNativeJSON(event_download.eventlist_name(el, "core"))
    if not emap:
        return None
    oc = event_download.eventlist_name(el, "offcore")
    if os.path.exists(oc):
        emap.add_offcore(oc)
    elif need_oc:
        return None
    return emap
Ejemplo n.º 4
0
def json_with_extra(el):
    name = event_download.eventlist_name(el, "core")
    emap = EmapNativeJSON(name)
    if not emap or emap.error:
        print >>sys.stderr, "parsing", name, "failed"
        return None
    if experimental:
        try:
            emap.read_events(event_download.eventlist_name(el, "core experimental"))
        except IOError:
            pass
    add_extra_env(emap, el)
    return emap
Ejemplo n.º 5
0
def add_extra_env(emap, el):
    oc = os.getenv("OFFCORE")
    if oc:
        emap.add_offcore(oc)
    else:
        oc = event_download.eventlist_name(el, "offcore")
        if os.path.exists(oc):
            emap.add_offcore(oc)
    uc = os.getenv("UNCORE")
    if uc:
        emap.add_uncore(uc)
    else:
        uc = event_download.eventlist_name(el, "uncore")
        if os.path.exists(uc):
            emap.add_uncore(uc)
    return emap
Ejemplo n.º 6
0
def add_extra_env(emap, el):
    oc = os.getenv("OFFCORE")
    if oc:
        emap.add_offcore(oc)
    else:
        oc = event_download.eventlist_name(el, "offcore")
        if os.path.exists(oc):
            emap.add_offcore(oc)
    uc = os.getenv("UNCORE")
    if uc:
        emap.add_uncore(uc)
    else:
        uc = event_download.eventlist_name(el, "uncore")
        if os.path.exists(uc):
            emap.add_uncore(uc)
    return emap
Ejemplo n.º 7
0
def add_extra_env(emap, el):
    try:
        oc = os.getenv("OFFCORE")
        if oc:
            oc = canon_emapvar(oc, "matrix")
            emap.add_offcore(oc)
        else:
            oc = event_download.eventlist_name(el, "offcore")
            if os.path.exists(oc):
                emap.add_offcore(oc)
	    if experimental:
		oc = event_download.eventlist_name(el, "offcore experimental")
		if os.path.exists(oc):
		    emap.add_offcore(oc)
    except IOError:
        print >>sys.stderr, "Cannot open", oc
    try:
        uc = os.getenv("UNCORE")
        if uc:
            uc = canon_emapvar(uc, "uncore")
            emap.add_uncore(uc)
        else:
            uc = event_download.eventlist_name(el, "uncore")
            if os.path.exists(uc):
                emap.add_uncore(uc)
	    if experimental:
		uc = event_download.eventlist_name(el, "uncore experimental")
		if os.path.exists(uc):
		    emap.add_uncore(uc)
    except IOError:
        print >>sys.stderr, "Cannot open", uc
    try:
        e2 = os.getenv("EVENTMAP2")
        if e2:
            e2 = canon_emapvar(e2, "core")
            emap.read_events(e2)
            # don't try to download for now
    except IOError:
        print >>sys.stderr, "Cannot open", e2
    try:
        u2 = os.getenv("UNCORE2")
        if u2:
            u2 = canon_emapvar(u2, "uncore")
            emap.add_uncore(u2, True)
    except IOError:
        print >>sys.stderr, "Cannot open", u2
    return emap
Ejemplo n.º 8
0
def add_extra_env(emap, el):
    oc = os.getenv("OFFCORE")
    if oc:
        emap.add_offcore(oc)
    else:
        oc = event_download.eventlist_name(el, "offcore")
        if os.path.exists(oc):
            emap.add_offcore(oc)
    uc = os.getenv("UNCORE")
    if uc:
        emap.add_uncore(uc)
    else:
        uc = event_download.eventlist_name(el, "uncore")
        if os.path.exists(uc):
            emap.add_uncore(uc)
    e2 = os.getenv("EVENTMAP2")
    if e2:
        emap.read_events(e2)
        # don't try to download for now
    u2 = os.getenv("UNCORE2")
    if u2:
        emap.add_uncore(u2, True)
    return emap
Ejemplo n.º 9
0
def add_extra_env(emap, el):
    try:
        oc = os.getenv("OFFCORE")
        if oc:
            oc = canon_emapvar(oc, "matrix")
            oc = event_download.eventlist_name(el, "offcore")
            emap.add_offcore(oc)
        else:
            oc = event_download.eventlist_name(el, "offcore")
            if os.path.exists(oc):
                emap.add_offcore(oc)
            if experimental:
                oc = event_download.eventlist_name(el, "offcore experimental")
                if os.path.exists(oc):
                    emap.add_offcore(oc)
    except IOError:
        print("Cannot open", oc, file=sys.stderr)
    try:
        uc = os.getenv("UNCORE")
        if uc:
            uc = canon_emapvar(uc, "uncore")
            uc = event_download.eventlist_name(uc, "uncore")
            emap.add_uncore(uc)
        else:
            uc = event_download.eventlist_name(el, "uncore")
            if os.path.exists(uc):
                emap.add_uncore(uc)
            if experimental:
                uc = event_download.eventlist_name(el, "uncore experimental")
                if os.path.exists(uc):
                    emap.add_uncore(uc)
    except IOError:
        print("Cannot open", uc, file=sys.stderr)

    def read_map(env, typ, r):
        try:
            e2 = os.getenv(env)
            if e2:
                e2 = canon_emapvar(e2, typ)
                r(e2)
                # don't try to download for now
        except IOError:
            print("Cannot open", e2, file=sys.stderr)

    read_map("EVENTMAP2", "core", lambda r: emap.read_events(r))
    read_map("EVENTMAP3", "core", lambda r: emap.read_events(r))
    read_map("UNCORE2", "uncore", lambda r: emap.add_uncore(r))
Ejemplo n.º 10
0
def json_with_extra(el):
    emap = EmapNativeJSON(event_download.eventlist_name(el, "core"))
    if not emap:
        return None
    add_extra_env(emap, el)
    return emap
Ejemplo n.º 11
0
def json_with_extra(el):
    emap = EmapNativeJSON(event_download.eventlist_name(el, "core"))
    if not emap:
        return None
    add_extra_env(emap, el)
    return emap