示例#1
0
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;
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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;
}