message: implement additional methods to read nominal frequency
diff: @@ -1597,6 +1597,14 @@ bool PCM::initMSR()
  bool PCM::detectNominalFrequency()
  {
  if (MSR.size())
  + {
  + if (max_cpuid >= 0x16)
  + {
  + PCM_CPUID_INFO cpuinfo;
  + pcm_cpuid(0x16, cpuinfo);
  + nominal_frequency = uint64(extract_bits_ui(cpuinfo.reg.eax, 0, 15)) * 1000000ULL;;
  + }
  + if (!nominal_frequency)
  {
  uint64 freq = 0;
  MSR[socketRefCore[0]]->read(PLATFORM_INFO_ADDR, &freq);
  @@ -1622,10 +1630,16 @@ bool PCM::detectNominalFrequency()
  ) ? (100000000ULL) : (133333333ULL);
  nominal_frequency = ((freq >> 8) & 255) * bus_freq;
  + }
  if(!nominal_frequency)
  nominal_frequency = get_frequency_from_cpuid();
  + if(!nominal_frequency)
  + {
  + computeNominalFrequency();
  + }
  +
  if(!nominal_frequency)
  {
  std::cerr << "Error: Can not detect core frequency.\n";
  