static int intel_hsw_hau_begin(struct stats_type *type) { int nr = 0; uint32_t events[] = { REQUESTS_READS, REQUESTS_WRITES, CLOCKTICKS, IMC_WRITES, }; int dids[] = {0x2F30, 0x2F38}; char **dev_paths = NULL; int nr_devs; if (pci_map_create(&dev_paths, &nr_devs, dids, 2) < 0) TRACE("Failed to identify pci devices"); int i; for (i = 0; i < nr_devs; i++) if (intel_snb_uncore_begin_dev(dev_paths[i], events, 4) == 0) nr++; if (nr == 0) type->st_enabled = 0; pci_map_destroy(&dev_paths, nr_devs); return nr > 0 ? 0 : -1; }
static void intel_snb_imc_collect(struct stats_type *type) { char **dev_paths = NULL; int nr_devs; if (pci_map_create(&dev_paths, &nr_devs, dids, 4) < 0) TRACE("Failed to identify pci devices"); int i; for (i = 0; i < nr_devs; i++) intel_pmc_uncore_collect_dev(type, dev_paths[i]); pci_map_destroy(&dev_paths, nr_devs); }
static void intel_ivb_hau_collect(struct stats_type *type) { int dids[] = {0x0e30, 0x0e38}; char **dev_paths = NULL; int nr_devs; if (pci_map_create(&dev_paths, &nr_devs, dids, 2) < 0) TRACE("Failed to identify pci devices"); int i; for (i = 0; i < nr_devs; i++) intel_snb_uncore_collect_dev(type, dev_paths[i]); pci_map_destroy(&dev_paths, nr_devs); }
static int intel_ivb_imc_begin(struct stats_type *type) { int nr = 0; char **dev_paths = NULL; int nr_devs; if (pci_map_create(&dev_paths, &nr_devs, dids, 4) < 0) TRACE("Failed to identify pci devices"); int i; for (i = 0; i < nr_devs; i++) if (intel_pmc_uncore_begin_dev(dev_paths[i], events, 4) == 0) nr++; if (nr == 0) type->st_enabled = 0; pci_map_destroy(&dev_paths, nr_devs); return nr > 0 ? 0 : -1; }