5.15.y: Fixups for current revision
- Rebase acs-overrides_iommu - Rebase prjc - Update defconfig Fixes https://github.com/Frogging-Family/linux-tkg/issues/782
This commit is contained in:
@@ -8388,6 +8388,7 @@ CONFIG_AMILO_RFKILL=m
|
||||
CONFIG_FUJITSU_LAPTOP=m
|
||||
CONFIG_FUJITSU_TABLET=m
|
||||
CONFIG_GPD_POCKET_FAN=m
|
||||
CONFIG_X86_PLATFORM_DRIVERS_HP=y
|
||||
CONFIG_HP_ACCEL=m
|
||||
CONFIG_WIRELESS_HOTKEY=m
|
||||
CONFIG_HP_WMI=m
|
||||
|
@@ -183,11 +183,11 @@ index 4700d24e5d55..8f7a3d7fd9c1 100644
|
||||
* Some Atheros AR9xxx and QCA988x chips do not behave after a bus reset.
|
||||
* The device will throw a Link Down error on AER-capable systems and
|
||||
@@ -4513,6 +4613,7 @@ static const struct pci_dev_acs_enabled {
|
||||
{ PCI_VENDOR_ID_ZHAOXIN, 0x9083, pci_quirk_mf_endpoint_acs },
|
||||
{ PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs },
|
||||
/* Zhaoxin Root/Downstream Ports */
|
||||
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
|
||||
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
|
||||
/* Wangxun nics */
|
||||
{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
|
||||
|
@@ -9924,3 +9924,91 @@ index 588c7b983e3ba..8a6aa5b7279d3 100644
|
||||
/*
|
||||
* If we are going to sleep and we have plugged IO queued,
|
||||
|
||||
diff --git a/kernel/sched/alt_core.c b/kernel/sched/alt_core.c
|
||||
index ff4a45708a68e7c43f4e6494e120341514b31b56..f783788e3caa71e4c668ef0c0284dc77529b10f3 100644
|
||||
--- a/kernel/sched/alt_core.c
|
||||
+++ b/kernel/sched/alt_core.c
|
||||
@@ -28,7 +28,6 @@
|
||||
#include <linux/kprobes.h>
|
||||
#include <linux/mmu_context.h>
|
||||
#include <linux/nmi.h>
|
||||
-#include <linux/profile.h>
|
||||
#include <linux/rcupdate_wait.h>
|
||||
#include <linux/security.h>
|
||||
#include <linux/syscalls.h>
|
||||
@@ -2236,9 +2235,10 @@ ttwu_stat(struct task_struct *p, int cpu, int wake_flags)
|
||||
rq = this_rq();
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
- if (cpu == rq->cpu)
|
||||
+ if (cpu == rq->cpu) {
|
||||
__schedstat_inc(rq->ttwu_local);
|
||||
- else {
|
||||
+ __schedstat_inc(p->stats.nr_wakeups_local);
|
||||
+ } else {
|
||||
/** Alt schedule FW ToDo:
|
||||
* How to do ttwu_wake_remote
|
||||
*/
|
||||
@@ -2246,6 +2246,7 @@ ttwu_stat(struct task_struct *p, int cpu, int wake_flags)
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
__schedstat_inc(rq->ttwu_count);
|
||||
+ __schedstat_inc(p->stats.nr_wakeups);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2895,6 +2896,11 @@ static inline void __sched_fork(unsigned long clone_flags, struct task_struct *p
|
||||
p->stime = 0;
|
||||
p->sched_time = 0;
|
||||
|
||||
+#ifdef CONFIG_SCHEDSTATS
|
||||
+ /* Even if schedstat is disabled, there should not be garbage */
|
||||
+ memset(&p->stats, 0, sizeof(p->stats));
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_PREEMPT_NOTIFIERS
|
||||
INIT_HLIST_HEAD(&p->preempt_notifiers);
|
||||
#endif
|
||||
@@ -7397,6 +7403,10 @@ void normalize_rt_tasks(void)
|
||||
if (p->flags & PF_KTHREAD)
|
||||
continue;
|
||||
|
||||
+ schedstat_set(p->stats.wait_start, 0);
|
||||
+ schedstat_set(p->stats.sleep_start, 0);
|
||||
+ schedstat_set(p->stats.block_start, 0);
|
||||
+
|
||||
if (!rt_task(p)) {
|
||||
/*
|
||||
* Renice negative nice level userspace
|
||||
diff --git a/kernel/sched/alt_sched.h b/kernel/sched/alt_sched.h
|
||||
index 289058a09bd53a96a9bc09cb2e9cb5ee8e42a3d0..f2b9e686d6a69c07f54c2cae36f7ce0ab70f9cb2 100644
|
||||
--- a/kernel/sched/alt_sched.h
|
||||
+++ b/kernel/sched/alt_sched.h
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <linux/livepatch.h>
|
||||
#include <linux/membarrier.h>
|
||||
#include <linux/proc_fs.h>
|
||||
+#include <linux/profile.h>
|
||||
#include <linux/psi.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/stop_machine.h>
|
||||
diff --git a/kernel/sched/stats.h b/kernel/sched/stats.h
|
||||
index 38f3698f5e5b31d35fe18c3c6c103a685475e64e..b9d597394316d2f5f16b6eb19f922b65bf9912fc 100644
|
||||
--- a/kernel/sched/stats.h
|
||||
+++ b/kernel/sched/stats.h
|
||||
@@ -89,6 +89,7 @@ static inline void rq_sched_info_depart (struct rq *rq, unsigned long long delt
|
||||
|
||||
#endif /* CONFIG_SCHEDSTATS */
|
||||
|
||||
+#ifndef CONFIG_SCHED_ALT
|
||||
#ifdef CONFIG_FAIR_GROUP_SCHED
|
||||
struct sched_entity_stats {
|
||||
struct sched_entity se;
|
||||
@@ -105,6 +106,7 @@ __schedstats_from_se(struct sched_entity *se)
|
||||
#endif
|
||||
return &task_of(se)->stats;
|
||||
}
|
||||
+#endif /* CONFIG_SCHED_ALT */
|
||||
|
||||
#ifdef CONFIG_PSI
|
||||
void psi_task_change(struct task_struct *task, int clear, int set);
|
||||
|
Reference in New Issue
Block a user