As part of this CL the /prof/kpctl interface has been changed back to split
timer+profile.
Documentation has been updated.


https://github.com/brho/akaros/compare/master...dlibenzi:devarch_msr_perf


The following changes since commit 2fa42319139e4cc5ca853546363f84443d0ead00:

  Rename 'reallocarray' to 'kreallocarray'. (2015-11-25 18:02:04 -0500)

are available in the git repository at:

  [email protected]:dlibenzi/akaros devarch_msr_perf

for you to fetch changes up to 63a44bc73435826257ccef2c7174b58764204374:

  Added new perf utility to access CPU counters from userspace (2015-12-02
15:48:17 -0800)

----------------------------------------------------------------
Davide Libenzi (16):
      Added intptr_t definition and made error pointer code use them
      Make disable MTRRs the defaul configuration option
      Added ZERO_DATA() and COUNT_OF() macros to common.h
      Fixed the sys_proc_create API to use const pointers
      Added libpfm4 library support
      Added ability to declare local per CPU variables
      Drop the fake exception tables entries and use weak symbols
      Added error_assert() macro and used branch hinting
      Added API for read/write common integer sizes from/to memory
      Moved MSR read/write APIs out of devarch and into a dedicated file
      STFU useless printk messages
      Reverted /prof/kpctl interface to split start and timer
      Migrated devarch MSR access to new MSR API
      Added perfmon interrupt handling to allow overflow based profiling
      Created the new devarch perf file using the perfmon infrastructure
      Added new perf utility to access CPU counters from userspace

 Documentation/profiling.txt                        |  140 +-
 Makefile                                           |    7 +-
 kern/arch/riscv/types.h                            |    1 +
 kern/arch/riscv/uaccess.h                          |    7 -
 kern/arch/x86/Kbuild                               |    1 +
 kern/arch/x86/Kconfig                              |    2 +-
 kern/arch/x86/devarch.c                            |  337 ++-
 kern/arch/x86/devarch.h                            |   14 +-
 kern/arch/x86/msr.c                                |  130 +
 kern/arch/x86/msr.h                                |  116 +
 kern/arch/x86/perfmon.c                            |  469 ++-
 kern/arch/x86/perfmon.h                            |   70 +-
 kern/arch/x86/ros/perfmon.h                        |   96 +
 kern/arch/x86/trap.c                               |    3 +
 kern/arch/x86/types.h                              |    1 +
 kern/arch/x86/uaccess.h                            |    7 -
 kern/drivers/dev/kprof.c                           |   11 +-
 kern/include/assert.h                              |    7 +-
 kern/include/error.h                               |    6 +-
 kern/include/percpu.h                              |   90 +
 kern/include/ros/common.h                          |    7 +-
 kern/include/ros/memops.h                          |   72 +
 kern/src/Kbuild                                    |    1 +
 kern/src/ex_table.c                                |   71 +-
 kern/src/init.c                                    |    2 +
 kern/src/percpu.c                                  |   42 +
 kern/src/profiler.c                                |    4 -
 .../glibc-2.19-akaros/sysdeps/akaros/serialize.c   |    4 +-
 tools/profile/perf/.gitignore                      |    1 +
 tools/profile/perf/Makefile                        |   42 +
 tools/profile/perf/akaros.c                        |  133 +
 tools/profile/perf/akaros.h                        |   48 +
 tools/profile/perf/perf.c                          |  175 ++
 tools/profile/perf/perf_core.c                     |  618 ++++
 tools/profile/perf/perf_core.h                     |   69 +
 tools/profile/perf/xlib.c                          |  100 +
 tools/profile/perf/xlib.h                          |   42 +
 user/parlib/include/parlib.h                       |    4 +-
 user/parlib/include/serialize.h                    |    4 +-
 user/parlib/syscall.c                              |    4 +-
 user/perfmon/Makefile                              |    4 +
 user/perfmon/events/amd64_events_fam10h.h          | 2418 +++++++++++++++
 user/perfmon/events/amd64_events_fam11h.h          | 1403 +++++++++
 user/perfmon/events/amd64_events_fam12h.h          | 1758 +++++++++++
 user/perfmon/events/amd64_events_fam14h.h          | 1540 ++++++++++
 user/perfmon/events/amd64_events_fam15h.h          | 2298 +++++++++++++++
 user/perfmon/events/amd64_events_fam15h_nb.h       | 2022 +++++++++++++
 user/perfmon/events/amd64_events_k7.h              |  228 ++
 user/perfmon/events/amd64_events_k8.h              | 1307 +++++++++
 user/perfmon/events/intel_atom_events.h            | 1364 +++++++++
 user/perfmon/events/intel_bdw_events.h             | 2485 ++++++++++++++++
 user/perfmon/events/intel_core_events.h            | 1895 ++++++++++++
 user/perfmon/events/intel_coreduo_events.h         | 1229 ++++++++
 user/perfmon/events/intel_hsw_events.h             | 2646 +++++++++++++++++
 user/perfmon/events/intel_ivb_events.h             | 2354 +++++++++++++++
 user/perfmon/events/intel_ivbep_unc_cbo_events.h   |  981 +++++++
 user/perfmon/events/intel_ivbep_unc_ha_events.h    |  925 ++++++
 user/perfmon/events/intel_ivbep_unc_imc_events.h   |  644 ++++
 user/perfmon/events/intel_ivbep_unc_irp_events.h   |  267 ++
 user/perfmon/events/intel_ivbep_unc_pcu_events.h   |  479 +++
 user/perfmon/events/intel_ivbep_unc_qpi_events.h   |  696 +++++
 .../perfmon/events/intel_ivbep_unc_r2pcie_events.h |  253 ++
 user/perfmon/events/intel_ivbep_unc_r3qpi_events.h |  552 ++++
 user/perfmon/events/intel_ivbep_unc_ubo_events.h   |  101 +
 user/perfmon/events/intel_knc_events.h             |  383 +++
 user/perfmon/events/intel_netburst_events.h        | 1549 ++++++++++
 user/perfmon/events/intel_nhm_events.h             | 2530 ++++++++++++++++
 user/perfmon/events/intel_nhm_unc_events.h         | 1247 ++++++++
 user/perfmon/events/intel_p6_events.h              |  716 +++++
 user/perfmon/events/intel_pii_events.h             |  656 +++++
 user/perfmon/events/intel_pm_events.h              |  930 ++++++
 user/perfmon/events/intel_ppro_events.h            |  525 ++++
 user/perfmon/events/intel_slm_events.h             |  896 ++++++
 user/perfmon/events/intel_snb_events.h             | 2445 ++++++++++++++++
 user/perfmon/events/intel_snb_unc_events.h         |  256 ++
 user/perfmon/events/intel_snbep_events.h           | 2466 ++++++++++++++++
 user/perfmon/events/intel_snbep_unc_cbo_events.h   |  801 +++++
 user/perfmon/events/intel_snbep_unc_ha_events.h    |  545 ++++
 user/perfmon/events/intel_snbep_unc_imc_events.h   |  344 +++
 user/perfmon/events/intel_snbep_unc_pcu_events.h   |  307 ++
 user/perfmon/events/intel_snbep_unc_qpi_events.h   |  429 +++
 .../perfmon/events/intel_snbep_unc_r2pcie_events.h |  188 ++
 user/perfmon/events/intel_snbep_unc_r3qpi_events.h |  323 +++
 user/perfmon/events/intel_snbep_unc_ubo_events.h   |   72 +
 user/perfmon/events/intel_wsm_events.h             | 2579 ++++++++++++++++
 user/perfmon/events/intel_wsm_unc_events.h         | 1372 +++++++++
 user/perfmon/events/intel_x86_arch_events.h        |   63 +
 user/perfmon/events/perf_events.h                  |  410 +++
 user/perfmon/examples/Makefile                     |   66 +
 user/perfmon/examples/check_events.c               |  161 +
 user/perfmon/examples/showevtinfo.c                |  913 ++++++
 user/perfmon/include/perfmon/err.h                 |   45 +
 user/perfmon/include/perfmon/perf_event.h          |  504 ++++
 user/perfmon/include/perfmon/pfmlib.h              |  490 ++++
 user/perfmon/include/perfmon/pfmlib_perf_event.h   |   64 +
 user/perfmon/pfmlib_amd64.c                        |  860 ++++++
 user/perfmon/pfmlib_amd64_fam10h.c                 |   63 +
 user/perfmon/pfmlib_amd64_fam11h.c                 |   61 +
 user/perfmon/pfmlib_amd64_fam12h.c                 |   61 +
 user/perfmon/pfmlib_amd64_fam14h.c                 |   60 +
 user/perfmon/pfmlib_amd64_fam15h.c                 |   85 +
 user/perfmon/pfmlib_amd64_k7.c                     |   60 +
 user/perfmon/pfmlib_amd64_k8.c                     |   66 +
 user/perfmon/pfmlib_amd64_priv.h                   |  217 ++
 user/perfmon/pfmlib_common.c                       | 1938 +++++++++++++
 user/perfmon/pfmlib_intel_atom.c                   |   86 +
 user/perfmon/pfmlib_intel_bdw.c                    |   70 +
 user/perfmon/pfmlib_intel_core.c                   |   81 +
 user/perfmon/pfmlib_intel_coreduo.c                |   83 +
 user/perfmon/pfmlib_intel_hsw.c                    |  109 +
 user/perfmon/pfmlib_intel_ivb.c                    |  106 +
 user/perfmon/pfmlib_intel_ivb_unc.c                |   86 +
 user/perfmon/pfmlib_intel_ivbep_unc_cbo.c          |  125 +
 user/perfmon/pfmlib_intel_ivbep_unc_ha.c           |   97 +
 user/perfmon/pfmlib_intel_ivbep_unc_imc.c          |   71 +
 user/perfmon/pfmlib_intel_ivbep_unc_irp.c          |   79 +
 user/perfmon/pfmlib_intel_ivbep_unc_pcu.c          |   97 +
 user/perfmon/pfmlib_intel_ivbep_unc_qpi.c          |   85 +
 user/perfmon/pfmlib_intel_ivbep_unc_r2pcie.c       |   61 +
 user/perfmon/pfmlib_intel_ivbep_unc_r3qpi.c        |   65 +
 user/perfmon/pfmlib_intel_ivbep_unc_ubo.c          |   61 +
 user/perfmon/pfmlib_intel_knc.c                    |   61 +
 user/perfmon/pfmlib_intel_netburst.c               |  493 ++++
 user/perfmon/pfmlib_intel_netburst_priv.h          |  233 ++
 user/perfmon/pfmlib_intel_nhm.c                    |  173 ++
 user/perfmon/pfmlib_intel_nhm_unc.c                |  348 +++
 user/perfmon/pfmlib_intel_p6.c                     |  178 ++
 user/perfmon/pfmlib_intel_rapl.c                   |  158 +
 user/perfmon/pfmlib_intel_slm.c                    |   76 +
 user/perfmon/pfmlib_intel_snb.c                    |  107 +
 user/perfmon/pfmlib_intel_snb_unc.c                |   72 +
 user/perfmon/pfmlib_intel_snbep_unc.c              |  630 ++++
 user/perfmon/pfmlib_intel_snbep_unc_cbo.c          |  107 +
 user/perfmon/pfmlib_intel_snbep_unc_ha.c           |   93 +
 user/perfmon/pfmlib_intel_snbep_unc_imc.c          |   67 +
 user/perfmon/pfmlib_intel_snbep_unc_pcu.c          |   96 +
 user/perfmon/pfmlib_intel_snbep_unc_priv.h         |  296 ++
 user/perfmon/pfmlib_intel_snbep_unc_qpi.c          |   84 +
 user/perfmon/pfmlib_intel_snbep_unc_r2pcie.c       |   61 +
 user/perfmon/pfmlib_intel_snbep_unc_r3qpi.c        |   64 +
 user/perfmon/pfmlib_intel_snbep_unc_ubo.c          |   61 +
 user/perfmon/pfmlib_intel_wsm.c                    |  111 +
 user/perfmon/pfmlib_intel_x86.c                    | 1014 +++++++
 user/perfmon/pfmlib_intel_x86_arch.c               |  224 ++
 user/perfmon/pfmlib_intel_x86_priv.h               |  345 +++
 user/perfmon/pfmlib_priv.h                         |  439 +++
 user/perfmon/tests/Makefile                        |   74 +
 user/perfmon/tests/validate.c                      |  344 +++
 user/perfmon/tests/validate_arm.c                  |  324 +++
 user/perfmon/tests/validate_arm64.c                |  208 ++
 user/perfmon/tests/validate_mips.c                 |  224 ++
 user/perfmon/tests/validate_power.c                |  223 ++
 user/perfmon/tests/validate_x86.c                  | 3064
++++++++++++++++++++
 153 files changed, 71747 insertions(+), 220 deletions(-)
 create mode 100644 kern/arch/x86/msr.c
 create mode 100644 kern/arch/x86/msr.h
 create mode 100644 kern/arch/x86/ros/perfmon.h
 create mode 100644 kern/include/percpu.h
 create mode 100644 kern/include/ros/memops.h
 create mode 100644 kern/src/percpu.c
 create mode 100644 tools/profile/perf/.gitignore
 create mode 100644 tools/profile/perf/Makefile
 create mode 100644 tools/profile/perf/akaros.c
 create mode 100644 tools/profile/perf/akaros.h
 create mode 100644 tools/profile/perf/perf.c
 create mode 100644 tools/profile/perf/perf_core.c
 create mode 100644 tools/profile/perf/perf_core.h
 create mode 100644 tools/profile/perf/xlib.c
 create mode 100644 tools/profile/perf/xlib.h
 create mode 100644 user/perfmon/Makefile
 create mode 100644 user/perfmon/events/amd64_events_fam10h.h
 create mode 100644 user/perfmon/events/amd64_events_fam11h.h
 create mode 100644 user/perfmon/events/amd64_events_fam12h.h
 create mode 100644 user/perfmon/events/amd64_events_fam14h.h
 create mode 100644 user/perfmon/events/amd64_events_fam15h.h
 create mode 100644 user/perfmon/events/amd64_events_fam15h_nb.h
 create mode 100644 user/perfmon/events/amd64_events_k7.h
 create mode 100644 user/perfmon/events/amd64_events_k8.h
 create mode 100644 user/perfmon/events/intel_atom_events.h
 create mode 100644 user/perfmon/events/intel_bdw_events.h
 create mode 100644 user/perfmon/events/intel_core_events.h
 create mode 100644 user/perfmon/events/intel_coreduo_events.h
 create mode 100644 user/perfmon/events/intel_hsw_events.h
 create mode 100644 user/perfmon/events/intel_ivb_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_cbo_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_ha_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_imc_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_irp_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_pcu_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_qpi_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_r2pcie_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_r3qpi_events.h
 create mode 100644 user/perfmon/events/intel_ivbep_unc_ubo_events.h
 create mode 100644 user/perfmon/events/intel_knc_events.h
 create mode 100644 user/perfmon/events/intel_netburst_events.h
 create mode 100644 user/perfmon/events/intel_nhm_events.h
 create mode 100644 user/perfmon/events/intel_nhm_unc_events.h
 create mode 100644 user/perfmon/events/intel_p6_events.h
 create mode 100644 user/perfmon/events/intel_pii_events.h
 create mode 100644 user/perfmon/events/intel_pm_events.h
 create mode 100644 user/perfmon/events/intel_ppro_events.h
 create mode 100644 user/perfmon/events/intel_slm_events.h
 create mode 100644 user/perfmon/events/intel_snb_events.h
 create mode 100644 user/perfmon/events/intel_snb_unc_events.h
 create mode 100644 user/perfmon/events/intel_snbep_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_cbo_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_ha_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_imc_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_pcu_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_qpi_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_r2pcie_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_r3qpi_events.h
 create mode 100644 user/perfmon/events/intel_snbep_unc_ubo_events.h
 create mode 100644 user/perfmon/events/intel_wsm_events.h
 create mode 100644 user/perfmon/events/intel_wsm_unc_events.h
 create mode 100644 user/perfmon/events/intel_x86_arch_events.h
 create mode 100644 user/perfmon/events/perf_events.h
 create mode 100644 user/perfmon/examples/Makefile
 create mode 100644 user/perfmon/examples/check_events.c
 create mode 100644 user/perfmon/examples/showevtinfo.c
 create mode 100644 user/perfmon/include/perfmon/err.h
 create mode 100644 user/perfmon/include/perfmon/perf_event.h
 create mode 100644 user/perfmon/include/perfmon/pfmlib.h
 create mode 100644 user/perfmon/include/perfmon/pfmlib_perf_event.h
 create mode 100644 user/perfmon/pfmlib_amd64.c
 create mode 100644 user/perfmon/pfmlib_amd64_fam10h.c
 create mode 100644 user/perfmon/pfmlib_amd64_fam11h.c
 create mode 100644 user/perfmon/pfmlib_amd64_fam12h.c
 create mode 100644 user/perfmon/pfmlib_amd64_fam14h.c
 create mode 100644 user/perfmon/pfmlib_amd64_fam15h.c
 create mode 100644 user/perfmon/pfmlib_amd64_k7.c
 create mode 100644 user/perfmon/pfmlib_amd64_k8.c
 create mode 100644 user/perfmon/pfmlib_amd64_priv.h
 create mode 100644 user/perfmon/pfmlib_common.c
 create mode 100644 user/perfmon/pfmlib_intel_atom.c
 create mode 100644 user/perfmon/pfmlib_intel_bdw.c
 create mode 100644 user/perfmon/pfmlib_intel_core.c
 create mode 100644 user/perfmon/pfmlib_intel_coreduo.c
 create mode 100644 user/perfmon/pfmlib_intel_hsw.c
 create mode 100644 user/perfmon/pfmlib_intel_ivb.c
 create mode 100644 user/perfmon/pfmlib_intel_ivb_unc.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_cbo.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_ha.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_imc.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_irp.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_pcu.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_qpi.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_r2pcie.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_r3qpi.c
 create mode 100644 user/perfmon/pfmlib_intel_ivbep_unc_ubo.c
 create mode 100644 user/perfmon/pfmlib_intel_knc.c
 create mode 100644 user/perfmon/pfmlib_intel_netburst.c
 create mode 100644 user/perfmon/pfmlib_intel_netburst_priv.h
 create mode 100644 user/perfmon/pfmlib_intel_nhm.c
 create mode 100644 user/perfmon/pfmlib_intel_nhm_unc.c
 create mode 100644 user/perfmon/pfmlib_intel_p6.c
 create mode 100644 user/perfmon/pfmlib_intel_rapl.c
 create mode 100644 user/perfmon/pfmlib_intel_slm.c
 create mode 100644 user/perfmon/pfmlib_intel_snb.c
 create mode 100644 user/perfmon/pfmlib_intel_snb_unc.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_cbo.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_ha.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_imc.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_pcu.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_priv.h
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_qpi.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_r2pcie.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_r3qpi.c
 create mode 100644 user/perfmon/pfmlib_intel_snbep_unc_ubo.c
 create mode 100644 user/perfmon/pfmlib_intel_wsm.c
 create mode 100644 user/perfmon/pfmlib_intel_x86.c
 create mode 100644 user/perfmon/pfmlib_intel_x86_arch.c
 create mode 100644 user/perfmon/pfmlib_intel_x86_priv.h
 create mode 100644 user/perfmon/pfmlib_priv.h
 create mode 100644 user/perfmon/tests/Makefile
 create mode 100644 user/perfmon/tests/validate.c
 create mode 100644 user/perfmon/tests/validate_arm.c
 create mode 100644 user/perfmon/tests/validate_arm64.c
 create mode 100644 user/perfmon/tests/validate_mips.c
 create mode 100644 user/perfmon/tests/validate_power.c
 create mode 100644 user/perfmon/tests/validate_x86.c

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to