All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] Rework gcov support in Xen
@ 2016-10-10  9:40 Wei Liu
  2016-10-10  9:40 ` [PATCH v2 1/9] Kconfig: use tab instead of space Wei Liu
                   ` (9 more replies)
  0 siblings, 10 replies; 58+ messages in thread
From: Wei Liu @ 2016-10-10  9:40 UTC (permalink / raw)
  To: Xen-devel
  Cc: Stefano Stabellini, Wei Liu, George Dunlap, Andrew Cooper,
	Ian Jackson, Tim Deegan, philippe.gabriel, Jan Beulich

The original implementation of gcov support in Xen has several
limitations:

1. The internal data structures are tied to gcc 3.4 format.
2. The sysctl interface is tied to gcc 3.4 format.
3. The gcov type definition is wrong, doesn't work with 32 bit
   hypervisor, which means arm32 wouldn't work.

Since the hypervisor interface is sysctl, we have the liberty to not
care about backward compatibility. This series completely rewrites the
gcov support inside Xen.

1. Support both gcc 3.4 and 4.7 format, configurable via Kconfig.
2. The sysctl interface is not tied to particular gcc format version.
3. Should work with arm32.

I have tested using both formats on x86. I was able to get gcov to
recognise the extracted data. I haven't really analyse the data in
detail though.

The patch series mostly consists of two parts. The meat is in the
first few patches. A few other patches are added to make available
automatic format detection.

There are still some rough edges, but I feel that this is good enough to post
so that people can review the sysctl interface.

This series can be found at:

git://xenbits.xen.org/people/liuw/xen.git wip.rework-gcov-v$VERSION

Wei.

---
v2: see individual commits for changes.

Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Deegan <tim@xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>

Wei Liu (9):
  Kconfig: use tab instead of space
  Kconfig: add BROKEN config
  xen: delete gcno files in clean target
  xen, tools: rip out old gcov implementation
  gcov: add new interface and 3.4 and 4.7 format support
  gcov: userspace tools to extract and split gcov data
  Config.mk: expand cc-ver a bit
  Config.mk: introduce cc-ifversion
  gcov: provide the capability to select gcov format automatically

 Config.mk                   |  13 +-
 tools/misc/xencov.c         | 111 +++++++-------
 tools/misc/xencov_split     | 288 ++++++++++++-----------------------
 xen/Kconfig                 |   3 +
 xen/Kconfig.debug           |  36 ++++-
 xen/Makefile                |   2 +-
 xen/common/gcov/Makefile    |   7 +-
 xen/common/gcov/gcc_3_4.c   | 363 ++++++++++++++++++++++++++++++++++++++++++++
 xen/common/gcov/gcc_4_7.c   | 201 ++++++++++++++++++++++++
 xen/common/gcov/gcov.c      | 308 ++++++++++++++++++++-----------------
 xen/common/gcov/gcov.h      |  36 +++++
 xen/common/gcov/gcov_base.c |  64 ++++++++
 xen/common/sysctl.c         |   7 +-
 xen/include/public/gcov.h   | 115 --------------
 xen/include/public/sysctl.h |  61 ++++----
 xen/include/xen/gcov.h      |  94 +-----------
 16 files changed, 1076 insertions(+), 633 deletions(-)
 create mode 100644 xen/common/gcov/gcc_3_4.c
 create mode 100644 xen/common/gcov/gcc_4_7.c
 create mode 100644 xen/common/gcov/gcov.h
 create mode 100644 xen/common/gcov/gcov_base.c
 delete mode 100644 xen/include/public/gcov.h

-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 58+ messages in thread

end of thread, other threads:[~2016-10-13  9:20 UTC | newest]

Thread overview: 58+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-10  9:40 [PATCH v2 0/9] Rework gcov support in Xen Wei Liu
2016-10-10  9:40 ` [PATCH v2 1/9] Kconfig: use tab instead of space Wei Liu
2016-10-10 11:21   ` Jan Beulich
2016-10-10  9:40 ` [PATCH v2 2/9] Kconfig: add BROKEN config Wei Liu
2016-10-10 11:22   ` Jan Beulich
2016-10-10  9:40 ` [PATCH v2 3/9] xen: delete gcno files in clean target Wei Liu
2016-10-10 11:23   ` Jan Beulich
2016-10-10  9:40 ` [PATCH v2 4/9] xen, tools: rip out old gcov implementation Wei Liu
2016-10-10 11:24   ` Jan Beulich
2016-10-10  9:40 ` [PATCH v2 5/9] gcov: add new interface and 3.4 and 4.7 format support Wei Liu
2016-10-10 11:56   ` Jan Beulich
2016-10-10 12:23     ` Andrew Cooper
2016-10-10 12:56       ` Jan Beulich
2016-10-10 13:12         ` Wei Liu
2016-10-10 13:11     ` Wei Liu
2016-10-10 14:43       ` Wei Liu
2016-10-11 10:31   ` [PATCH v3] " Wei Liu
2016-10-12 12:42     ` Jan Beulich
2016-10-12 13:06       ` Wei Liu
2016-10-12 13:11         ` Jan Beulich
2016-10-12 13:24         ` George Dunlap
2016-10-12 13:26           ` George Dunlap
2016-10-12 13:31             ` Wei Liu
2016-10-12 13:33             ` Jan Beulich
2016-10-12 13:34             ` Andrew Cooper
2016-10-12 13:41               ` George Dunlap
2016-10-12 13:43                 ` Andrew Cooper
2016-10-12 13:29           ` Konrad Rzeszutek Wilk
2016-10-12 13:40             ` Wei Liu
2016-10-12 13:46               ` Konrad Rzeszutek Wilk
2016-10-12 13:50                 ` Wei Liu
2016-10-12 13:23       ` Konrad Rzeszutek Wilk
2016-10-12 13:31         ` Jan Beulich
2016-10-12 13:44           ` Konrad Rzeszutek Wilk
2016-10-12 14:08             ` Jan Beulich
2016-10-12 14:17             ` Martin Pohlack
2016-10-12 16:21               ` Konrad Rzeszutek Wilk
2016-10-13  8:05                 ` Martin Pohlack
2016-10-12 15:33       ` Wei Liu
2016-10-12 15:42         ` Jan Beulich
2016-10-12 17:07           ` Wei Liu
2016-10-13  8:29             ` Jan Beulich
2016-10-13  8:49               ` Wei Liu
2016-10-13  9:15                 ` Jan Beulich
2016-10-13  9:20                   ` Wei Liu
2016-10-10  9:40 ` [PATCH v2 6/9] gcov: userspace tools to extract and split gcov data Wei Liu
2016-10-10 15:44   ` Ian Jackson
2016-10-10  9:40 ` [PATCH v2 7/9] Config.mk: expand cc-ver a bit Wei Liu
2016-10-10 11:57   ` Jan Beulich
2016-10-10  9:40 ` [PATCH v2 8/9] Config.mk: introduce cc-ifversion Wei Liu
2016-10-10 12:00   ` Jan Beulich
2016-10-10 13:18     ` Wei Liu
2016-10-10 13:22       ` Jan Beulich
2016-10-10 13:24         ` Wei Liu
2016-10-10  9:40 ` [PATCH v2 9/9] gcov: provide the capability to select gcov format automatically Wei Liu
2016-10-10 12:00   ` Jan Beulich
2016-10-10 15:47 ` [PATCH v2 0/9] Rework gcov support in Xen Ian Jackson
2016-10-10 15:58   ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.