From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758322AbbIDHk1 (ORCPT ); Fri, 4 Sep 2015 03:40:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38309 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754970AbbIDHkZ (ORCPT ); Fri, 4 Sep 2015 03:40:25 -0400 Date: Fri, 4 Sep 2015 09:40:20 +0200 From: Jiri Olsa To: Kan Liang Cc: acme@kernel.org, jolsa@kernel.org, ak@linux.intel.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH V5 1/1] perf,test: test cpu topology Message-ID: <20150904074020.GE24774@krava.redhat.com> References: <1441174982-25090-1-git-send-email-kan.liang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1441174982-25090-1-git-send-email-kan.liang@intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 02, 2015 at 02:23:02AM -0400, Kan Liang wrote: SNIP > + > +int test_session_topology(void) > +{ > + struct perf_session *session; > + char path[PATH_MAX]; > + struct cpu_map *map; > + struct perf_data_file file = { > + .path = path, > + .mode = PERF_DATA_MODE_WRITE, > + }; > + int i; > + > + TEST_ASSERT_VAL("can't get templ file", !get_temp(path)); > + > + pr_debug("krava %s\n", path); it's not that I'd have monopoly on that, but this probably needs some better wording ;-) > + > + session = perf_session__new(&file, false, NULL); > + TEST_ASSERT_VAL("can't get session", session); hum, any failed TEST_ASSERT_VAL will leave the temp file > + > + session->evlist = perf_evlist__new_default(); > + TEST_ASSERT_VAL("can't get evlist", session->evlist); > + > + perf_header__set_feat(&session->header, HEADER_CPU_TOPOLOGY); > + perf_header__set_feat(&session->header, HEADER_NRCPUS); > + > + session->header.data_size += DATA_SIZE; > + > + TEST_ASSERT_VAL("failed to write header", > + !perf_session__write_header(session, session->evlist, file.fd, true)); > + > + perf_session__delete(session); > + > + map = cpu_map__new(NULL); also map, but the file is bigger issue, because someone might notice ;-) jirka > + TEST_ASSERT_VAL("failed to get system cpumap", !(map == NULL)); > + > + file.mode = PERF_DATA_MODE_READ; > + session = perf_session__new(&file, false, NULL); > + TEST_ASSERT_VAL("can't get session", session); > + > + for (i = 0; i < session->header.env.nr_cpus_online; i++) { > + pr_debug("CPU %d, core %d, socket %d\n", i, > + session->header.env.cpu[i].core_id, > + session->header.env.cpu[i].socket_id); > + } > + > + for (i = 0; i < map->nr; i++) { > + TEST_ASSERT_VAL("Core ID doesn't match", > + (session->header.env.cpu[map->map[i]].core_id == (cpu_map__get_core(map, i) & 0xffff))); > + > + TEST_ASSERT_VAL("Socket ID doesn't match", > + (session->header.env.cpu[map->map[i]].socket_id == cpu_map__get_socket(map, i))); > + } > + > + perf_session__delete(session); > + cpu_map__put(map); > + unlink(path); > + > + return 0; > +} > -- > 1.8.3.1 >