Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
3207d4a
i8042: decrease debug message level to info
fenrus75 Jun 23, 2015
532300c
increase the ext4 default commit age
fenrus75 Jan 11, 2016
0d78620
pci pme wakeups
fenrus75 Mar 14, 2016
1277ad0
intel_idle: tweak cpuidle cstates
fenrus75 Mar 20, 2016
a6f7f4b
smpboot: reuse timer calibration
fenrus75 Feb 11, 2015
65e6127
ipv4/tcp: allow the memory tuning for tcp to go a little bigger than …
fenrus75 Jan 6, 2017
21cf48e
init: wait for partition and retry scan
fenrus75 May 17, 2017
06cb331
add boot option to allow unsigned modules
bwarden Aug 13, 2018
db361ec
enable stateless firmware loading
Jun 20, 2018
a06f2cc
migrate some systemd defaults to the kernel defaults.
ahkok Aug 2, 2018
fdd3791
xattr: allow setting user.* attributes on symlinks by owner
Mar 10, 2016
facb2e2
do accept() in LIFO order for cache efficiency
fenrus75 Dec 13, 2018
475a595
locking: rwsem: spin faster
fenrus75 Feb 18, 2018
87cf75d
ata: libahci: ignore staggered spin-up
thac0 Jun 25, 2019
ce3da53
print CPU that faults
fenrus75 Aug 10, 2019
8a68063
nvme workaround
fenrus75 Nov 11, 2019
9f10d5a
don't report an error if PowerClamp run on other CPU
AKoskovich Feb 12, 2020
c123e70
lib/raid6: add patch
fenrus75 Sep 27, 2021
28ffaff
itmt_epb: use epb to scale itmt
fenrus75 Nov 16, 2021
c05a106
itmt2 ADL fixes
spandruvada Nov 18, 2021
3144112
add a per cpu minimum high watermark an tune batch size
fenrus75 Nov 23, 2021
120dcf0
novector
fenrus75 Apr 15, 2022
49cf378
md/raid6 algorithms: scale test duration for speedier boots
ColinIanKing Apr 28, 2023
98cb7c5
initcall: only print non-zero initcall debug to speed up boot
ColinIanKing Jan 20, 2023
9938686
Place libraries right below the binary for PIE binaries
kakra Nov 18, 2024
55f3677
epp retune
kakra Nov 18, 2024
e7c1f1c
sched/core: add some branch hints based on gcov analysis
ColinIanKing Feb 1, 2023
f6aabff
crypto: kdf: make the module init call a late init call
ColinIanKing Mar 6, 2023
105a2b6
handle sched_yield gracefully when being hammered
Oct 17, 2024
3f144b7
scale net alloc
kakra Nov 18, 2024
9b58786
clocksource: only perform extended clocksource checks for AMD systems
ColinIanKing May 3, 2023
701158d
better idle balance
kakra Nov 18, 2024
9cf1382
ACPI: align slab for improved memory performance
ColinIanKing Jun 27, 2023
a654e20
thermal: intel: powerclamp: check MWAIT first, use pr_warn insteal of…
Sep 19, 2023
9ad61f2
KVM: VMX: make vmx_init a late init call to get to init process faster
Oct 10, 2023
1c61dd4
timer slack
kakra Nov 18, 2024
f2a5b73
sched/fair: remove upper limit on cpu number
Nov 14, 2023
d0c4382
net: sock: increase default number of _SK_MEM_PACKETS to 1024
Apr 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion arch/x86/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export BITS
#
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
#
KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2 -O3 -fno-tree-vectorize -march=westmere -mpopcnt -fivopts -fmodulo-sched
KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/include/asm/msr-index.h
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@
#define HWP_MAX_PERF(x) ((x & 0xff) << 8)
#define HWP_DESIRED_PERF(x) ((x & 0xff) << 16)
#define HWP_ENERGY_PERF_PREFERENCE(x) (((unsigned long long) x & 0xff) << 24)
#define HWP_EPP_PERFORMANCE 0x00
#define HWP_EPP_PERFORMANCE 0x01
#define HWP_EPP_BALANCE_PERFORMANCE 0x80
#define HWP_EPP_BALANCE_POWERSAVE 0xC0
#define HWP_EPP_POWERSAVE 0xFF
Expand Down
1 change: 1 addition & 0 deletions arch/x86/include/asm/topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ extern unsigned int __read_mostly sysctl_sched_itmt_enabled;

/* Interface to set priority of a cpu */
void sched_set_itmt_core_prio(int prio, int core_cpu);
void sched_set_itmt_power_ratio(int power_ratio, int core_cpu);

/* Interface to notify scheduler that system supports ITMT */
int sched_set_itmt_support(void);
Expand Down
4 changes: 4 additions & 0 deletions arch/x86/kernel/cpu/intel_epb.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,10 @@ static ssize_t energy_perf_bias_store(struct device *dev,
if (ret < 0)
return ret;

/* update the ITMT scheduler logic to use the power policy data */
/* scale the val up by 2 so the range is 224 - 256 */
sched_set_itmt_power_ratio(256 - val * 2, cpu);

return count;
}

Expand Down
29 changes: 28 additions & 1 deletion arch/x86/kernel/itmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

static DEFINE_MUTEX(itmt_update_mutex);
DEFINE_PER_CPU_READ_MOSTLY(int, sched_core_priority);
DEFINE_PER_CPU_READ_MOSTLY(int, sched_power_ratio);

/* Boolean to track if system has ITMT capabilities */
static bool __read_mostly sched_itmt_capable;
Expand Down Expand Up @@ -159,7 +160,12 @@ void sched_clear_itmt_support(void)

int arch_asym_cpu_priority(int cpu)
{
return per_cpu(sched_core_priority, cpu);
int power_ratio = per_cpu(sched_power_ratio, cpu);

/* a power ratio of 0 (uninitialized) is assumed to be maximum */
if (power_ratio == 0)
power_ratio = 256 - 2 * 6;
return per_cpu(sched_core_priority, cpu) * power_ratio / 256;
}

/**
Expand All @@ -180,3 +186,24 @@ void sched_set_itmt_core_prio(int prio, int cpu)
{
per_cpu(sched_core_priority, cpu) = prio;
}

/**
* sched_set_itmt_power_ratio() - Set CPU priority based on ITMT
* @power_ratio: The power scaling ratio [1..256] for the core
* @core_cpu: The cpu number associated with the core
*
* Set a scaling to the cpu performance based on long term power
* settings (like EPB).
*
* Note this is for the policy not for the actual dynamic frequency;
* the frequency will increase itself as workloads run on a core.
*/

void sched_set_itmt_power_ratio(int power_ratio, int core_cpu)
{
int cpu;

for_each_cpu(cpu, topology_sibling_cpumask(core_cpu)) {
per_cpu(sched_power_ratio, cpu) = power_ratio;
}
}
3 changes: 3 additions & 0 deletions arch/x86/kernel/tsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1592,6 +1592,9 @@ unsigned long calibrate_delay_is_known(void)
if (!constant_tsc || !mask)
return 0;

if (cpu != 0)
return cpu_data(0).loops_per_jiffy;

sibling = cpumask_any_but(mask, cpu);
if (sibling < nr_cpu_ids)
return cpu_data(sibling).loops_per_jiffy;
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/vmx/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -8675,4 +8675,4 @@ static int __init vmx_init(void)
kvm_x86_vendor_exit();
return r;
}
module_init(vmx_init);
late_initcall(vmx_init);
4 changes: 2 additions & 2 deletions arch/x86/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -756,9 +756,9 @@ show_signal_msg(struct pt_regs *regs, unsigned long error_code,
if (!printk_ratelimit())
return;

printk("%s%s[%d]: segfault at %lx ip %px sp %px error %lx",
printk("%s%s[%d]: segfault at %lx ip %px sp %px error %lx cpu %i",
loglvl, tsk->comm, task_pid_nr(tsk), address,
(void *)regs->ip, (void *)regs->sp, error_code);
(void *)regs->ip, (void *)regs->sp, error_code, raw_smp_processor_id());

print_vma_addr(KERN_CONT " in ", regs->ip);

Expand Down
15 changes: 13 additions & 2 deletions block/early-lookup.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/
#include <linux/blkdev.h>
#include <linux/ctype.h>
#include <linux/delay.h>

struct uuidcmp {
const char *uuid;
Expand Down Expand Up @@ -243,8 +244,18 @@ static int __init devt_from_devnum(const char *name, dev_t *devt)
*/
int __init early_lookup_bdev(const char *name, dev_t *devt)
{
if (strncmp(name, "PARTUUID=", 9) == 0)
return devt_from_partuuid(name + 9, devt);
if (strncmp(name, "PARTUUID=", 9) == 0) {
int res;
int needtowait = 40<<1;
res = devt_from_partuuid(name + 9, devt);
if (!res) return res;
while (res && needtowait) {
msleep(500);
res = devt_from_partuuid(name + 9, devt);
needtowait--;
}
return res;
}
if (strncmp(name, "PARTLABEL=", 10) == 0)
return devt_from_partlabel(name + 10, devt);
if (strncmp(name, "/dev/", 5) == 0)
Expand Down
2 changes: 1 addition & 1 deletion crypto/kdf_sp800108.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ static int __init crypto_kdf108_init(void)

static void __exit crypto_kdf108_exit(void) { }

module_init(crypto_kdf108_init);
late_initcall(crypto_kdf108_init);
module_exit(crypto_kdf108_exit);

MODULE_LICENSE("GPL v2");
Expand Down
2 changes: 1 addition & 1 deletion drivers/acpi/osl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1549,7 +1549,7 @@ void acpi_os_release_lock(acpi_spinlock lockp, acpi_cpu_flags not_used)
acpi_status
acpi_os_create_cache(char *name, u16 size, u16 depth, acpi_cache_t **cache)
{
*cache = kmem_cache_create(name, size, 0, 0, NULL);
*cache = kmem_cache_create(name, size, 0, SLAB_HWCACHE_ALIGN, NULL);
if (*cache == NULL)
return AE_ERROR;
else
Expand Down
4 changes: 2 additions & 2 deletions drivers/ata/libahci.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@
#include "libata.h"

static int ahci_skip_host_reset;
int ahci_ignore_sss;
int ahci_ignore_sss=1;
EXPORT_SYMBOL_GPL(ahci_ignore_sss);

module_param_named(skip_host_reset, ahci_skip_host_reset, int, 0444);
MODULE_PARM_DESC(skip_host_reset, "skip global host reset (0=don't skip, 1=skip)");

module_param_named(ignore_sss, ahci_ignore_sss, int, 0444);
MODULE_PARM_DESC(ignore_sss, "Ignore staggered spinup flag (0=don't ignore, 1=ignore)");
MODULE_PARM_DESC(ignore_sss, "Ignore staggered spinup flag (0=don't ignore, 1=ignore [default])");

static int ahci_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
unsigned hints);
Expand Down
2 changes: 2 additions & 0 deletions drivers/base/firmware_loader/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,8 @@ static int fw_decompress_xz(struct device *dev, struct fw_priv *fw_priv,
static char fw_path_para[256];
static const char * const fw_path[] = {
fw_path_para,
"/etc/firmware/" UTS_RELEASE,
"/etc/firmware",
"/lib/firmware/updates/" UTS_RELEASE,
"/lib/firmware/updates",
"/lib/firmware/" UTS_RELEASE,
Expand Down
7 changes: 5 additions & 2 deletions drivers/clocksource/acpi_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,13 +208,16 @@ static int verify_pmtmr_rate(void)
static int __init init_acpi_pm_clocksource(void)
{
u64 value1, value2;
unsigned int i, j = 0;
unsigned int i, j = 0, checks = 1;

if (!pmtmr_ioport)
return -ENODEV;

if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
checks = ACPI_PM_MONOTONICITY_CHECKS;

/* "verify" this timing source: */
for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) {
for (j = 0; j < checks; j++) {
udelay(100 * j);
value1 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
for (i = 0; i < ACPI_PM_READ_CHECKS; i++) {
Expand Down
7 changes: 7 additions & 0 deletions drivers/cpufreq/intel_pstate.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,13 @@ static void intel_pstate_set_itmt_prio(int cpu)
* update them at any time after it has been called.
*/
sched_set_itmt_core_prio(cppc_perf.highest_perf, cpu);
/*
* On some systems with overclocking enabled, CPPC.highest_perf is hardcoded to 0xff.
* In this case we can't use CPPC.highest_perf to enable ITMT.
* In this case we can look at MSR_HWP_CAPABILITIES bits [8:0] to decide.
*/
if (cppc_perf.highest_perf == 0xff)
cppc_perf.highest_perf = HWP_HIGHEST_PERF(READ_ONCE(all_cpu_data[cpu]->hwp_cap_cached));

if (max_highest_perf <= min_highest_perf) {
if (cppc_perf.highest_perf > max_highest_perf)
Expand Down
Loading