Add support for AMD Family 17h.
This commit is contained in:
parent
1688ecda31
commit
0acc4e3e94
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: tprof_x86_amd.c,v 1.2 2018/07/24 09:47:35 maxv Exp $ */
|
||||
/* $NetBSD: tprof_x86_amd.c,v 1.3 2019/05/29 17:09:17 maxv Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2018 The NetBSD Foundation, Inc.
|
||||
|
@ -56,7 +56,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: tprof_x86_amd.c,v 1.2 2018/07/24 09:47:35 maxv Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: tprof_x86_amd.c,v 1.3 2019/05/29 17:09:17 maxv Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -205,6 +205,7 @@ tprof_amd_ident(void)
|
|||
|
||||
switch (CPUID_TO_FAMILY(ci->ci_signature)) {
|
||||
case 0x10:
|
||||
case 0x17:
|
||||
return TPROF_IDENT_AMD_GENERIC;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* $NetBSD: tprof_x86.c,v 1.7 2018/11/26 23:20:57 knakahara Exp $ */
|
||||
/* $NetBSD: tprof_x86.c,v 1.8 2019/05/29 17:09:18 maxv Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2018 The NetBSD Foundation, Inc.
|
||||
* Copyright (c) 2018-2019 The NetBSD Foundation, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to The NetBSD Foundation
|
||||
|
@ -654,11 +654,57 @@ static struct event_table amd_f10h = {
|
|||
.next = NULL
|
||||
};
|
||||
|
||||
static struct event_table *
|
||||
init_amd_f10h(void)
|
||||
{
|
||||
return &amd_f10h;
|
||||
}
|
||||
/*
|
||||
* AMD Family 17h
|
||||
*/
|
||||
static struct name_to_event amd_f17h_names[] = {
|
||||
{ "FpRetx87FpOps", 0x02, __BITS(2,0), true },
|
||||
{ "FpRetSseAvxOps", 0x03, __BITS(7,0), true },
|
||||
{ "FpRetiredSerOps", 0x05, __BITS(3,0), true },
|
||||
{ "LsL1DTlbMiss", 0x45, __BITS(7,0), true },
|
||||
{ "LsTableWalker", 0x46, __BITS(3,0), true },
|
||||
{ "LsMisalAccesses", 0x47, 0x00, true },
|
||||
{ "LsInefSwPref", 0x52, __BITS(1,0), true },
|
||||
{ "LsNotHaltedCyc", 0x76, 0x00, true },
|
||||
{ "IcFw32", 0x80, 0x00, true },
|
||||
{ "IcFw32Miss", 0x81, 0x00, true },
|
||||
{ "IcCacheFillL2", 0x82, 0x00, true },
|
||||
{ "IcCacheFillSys", 0x83, 0x00, true },
|
||||
{ "IcFetchStall", 0x87, __BITS(2,0), true },
|
||||
{ "IcCacheInval", 0x8C, __BITS(1,0), true },
|
||||
{ "BpL1TlbMissL2Hit", 0x84, 0x00, true },
|
||||
{ "BpL1TlbMissL2Miss", 0x85, 0x00, true },
|
||||
{ "BpSnpReSync", 0x86, 0x00, true },
|
||||
{ "BpL1BTBCorrect", 0x8A, 0x00, true },
|
||||
{ "BpL2BTBCorrect", 0x8B, 0x00, true },
|
||||
{ "BpTlbRel", 0x99, 0x00, true },
|
||||
{ "ExRetInstr", 0xC0, 0x00, true },
|
||||
{ "ExRetCops", 0xC1, 0x00, true },
|
||||
{ "ExRetBrn", 0xC2, 0x00, true },
|
||||
{ "ExRetBrnMisp", 0xC3, 0x00, true },
|
||||
{ "ExRetBrnTkn", 0xC4, 0x00, true },
|
||||
{ "ExRetBrnTknMisp", 0xC5, 0x00, true },
|
||||
{ "ExRetBrnFar", 0xC6, 0x00, true },
|
||||
{ "ExRetBrnResync", 0xC7, 0x00, true },
|
||||
{ "ExRetBrnIndMisp", 0xCA, 0x00, true },
|
||||
{ "ExRetNearRet", 0xC8, 0x00, true },
|
||||
{ "ExRetNearRetMispred", 0xC9, 0x00, true },
|
||||
{ "ExRetMmxFpInstr@X87", 0xCB, __BIT(0), true },
|
||||
{ "ExRetMmxFpInstr@Mmx", 0xCB, __BIT(1), true },
|
||||
{ "ExRetMmxFpInstr@Sse", 0xCB, __BIT(2), true },
|
||||
{ "ExRetCond", 0xD1, 0x00, true },
|
||||
{ "ExRetCondMisp", 0xD2, 0x00, true },
|
||||
{ "ExDivBusy", 0xD3, 0x00, true },
|
||||
{ "ExDivCount", 0xD4, 0x00, true },
|
||||
};
|
||||
|
||||
static struct event_table amd_f17h = {
|
||||
.tablename = "AMD Family 17h",
|
||||
.names = amd_f17h_names,
|
||||
.nevents = sizeof(amd_f17h_names) /
|
||||
sizeof(struct name_to_event),
|
||||
.next = NULL
|
||||
};
|
||||
|
||||
static struct event_table *
|
||||
init_amd_generic(void)
|
||||
|
@ -673,7 +719,9 @@ init_amd_generic(void)
|
|||
|
||||
switch (CPUID_TO_FAMILY(eax)) {
|
||||
case 0x10:
|
||||
return init_amd_f10h();
|
||||
return &amd_f10h;
|
||||
case 0x17:
|
||||
return &amd_f17h;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: tprof.8,v 1.13 2018/11/26 23:20:56 knakahara Exp $
|
||||
.\" $NetBSD: tprof.8,v 1.14 2019/05/29 17:09:17 maxv Exp $
|
||||
.\"
|
||||
.\" Copyright (c)2011 YAMAMOTO Takashi,
|
||||
.\" All rights reserved.
|
||||
|
@ -24,7 +24,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd November 27, 2018
|
||||
.Dd May 29, 2019
|
||||
.Dt TPROF 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -130,6 +130,8 @@ ARMv8
|
|||
.It
|
||||
x86 AMD Family 10h
|
||||
.It
|
||||
x86 AMD Family 17h
|
||||
.It
|
||||
x86 Intel Generic (all Intel CPUs)
|
||||
.It
|
||||
x86 Intel Skylake/Kabylake
|
||||
|
@ -168,7 +170,7 @@ were dropped.
|
|||
.An -nosplit
|
||||
The
|
||||
.Nm
|
||||
utility is written by
|
||||
utility was written by
|
||||
.An YAMAMOTO Takashi .
|
||||
It was revamped by
|
||||
.An Maxime Villard
|
||||
|
|
Loading…
Reference in New Issue