Commit 7a275fd7 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'x86/urgent' into perf/urgent, to pick up new CPU model definitions



Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents df4d2973 8d7c6ac3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -83,6 +83,9 @@
#define INTEL_FAM6_TIGERLAKE_L		0x8C
#define INTEL_FAM6_TIGERLAKE		0x8D

#define INTEL_FAM6_COMETLAKE		0xA5
#define INTEL_FAM6_COMETLAKE_L		0xA6

/* "Small Core" Processors (Atom) */

#define INTEL_FAM6_ATOM_BONNELL		0x1C /* Diamondville, Pineview */
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
#define MWAIT_ECX_INTERRUPT_BREAK	0x1
#define MWAITX_ECX_TIMER_ENABLE		BIT(1)
#define MWAITX_MAX_LOOPS		((u32)-1)
#define MWAITX_DISABLE_CSTATES		0xf
#define MWAITX_DISABLE_CSTATES		0xf0

static inline void __monitor(const void *eax, unsigned long ecx,
			     unsigned long edx)
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@
#define VMWARE_CMD_VCPU_RESERVED 31

#define VMWARE_PORT(cmd, eax, ebx, ecx, edx)				\
	__asm__("inl (%%dx)" :						\
	__asm__("inl (%%dx), %%eax" :					\
		"=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) :		\
		"a"(VMWARE_HYPERVISOR_MAGIC),				\
		"c"(VMWARE_CMD_##cmd),					\
+2 −2
Original line number Diff line number Diff line
@@ -113,8 +113,8 @@ static void delay_mwaitx(unsigned long __loops)
		__monitorx(raw_cpu_ptr(&cpu_tss_rw), 0, 0);

		/*
		 * AMD, like Intel, supports the EAX hint and EAX=0xf
		 * means, do not enter any deep C-state and we use it
		 * AMD, like Intel's MWAIT version, supports the EAX hint and
		 * EAX=0xf0 means, do not enter any deep C-state and we use it
		 * here in delay() to minimize wakeup latency.
		 */
		__mwaitx(MWAITX_DISABLE_CSTATES, delay, MWAITX_ECX_TIMER_ENABLE);
+20 −1
Original line number Diff line number Diff line
@@ -227,7 +227,26 @@ static inline bool strstarts(const char *str, const char *prefix)
}

size_t memweight(const void *ptr, size_t bytes);
void memzero_explicit(void *s, size_t count);

/**
 * memzero_explicit - Fill a region of memory (e.g. sensitive
 *		      keying data) with 0s.
 * @s: Pointer to the start of the area.
 * @count: The size of the area.
 *
 * Note: usually using memset() is just fine (!), but in cases
 * where clearing out _local_ data at the end of a scope is
 * necessary, memzero_explicit() should be used instead in
 * order to prevent the compiler from optimising away zeroing.
 *
 * memzero_explicit() doesn't need an arch-specific version as
 * it just invokes the one of memset() implicitly.
 */
static inline void memzero_explicit(void *s, size_t count)
{
	memset(s, 0, count);
	barrier_data(s);
}

/**
 * kbasename - return the last part of a pathname.
Loading