mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Linux 5.4-rc3
-----BEGIN PGP SIGNATURE----- iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl2jtUYeHHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGL28H/Akb3JEXNKHCv3MI 89dzKlLgf/W/e0qJirb9/YdcUL462NUFoC0Bg0qLgLFYdhT94Zp5J68C4oZPJfxA /LrTDsHWrbUtTvhxJqMueVT3JTpkF36ZTvTGwLTHzTqexM/o3kuDWjWTTxZlMGbX Uais/ywmmCVCmaX8IJ3GJFGCJse+T1W73VOSo7bm6C+Ruy6Euwasa9kc40uHiPpD 6Xew9j9AJ0xIV96sLzDFOYAXYFQBZnAbFLA+Ho53TiuG78J6MP4Pm9+1VhMyF1uH mgeA5GAfKpqq/QXf32iMU7s7HTdoF5r1UaQJtu+p6BFTGhd7LrDrh4gA/9Wyv7+t 9stS20U= =ima3 -----END PGP SIGNATURE----- Merge 5.4-rc3 into android-mainline Linux 5.4-rc3 Signed-off-by: Greg Kroah-Hartman <[email protected]> Change-Id: Ia87ba662738dd58ddb917e32c1fbd812861e7a46
This commit is contained in:
commit
630839ac24
396 changed files with 3472 additions and 4619 deletions
|
|
@ -747,7 +747,7 @@ void vtime_account_system(struct task_struct *tsk)
|
|||
|
||||
write_seqcount_begin(&vtime->seqcount);
|
||||
/* We might have scheduled out from guest path */
|
||||
if (current->flags & PF_VCPU)
|
||||
if (tsk->flags & PF_VCPU)
|
||||
vtime_account_guest(tsk, vtime);
|
||||
else
|
||||
__vtime_account_system(tsk, vtime);
|
||||
|
|
@ -790,7 +790,7 @@ void vtime_guest_enter(struct task_struct *tsk)
|
|||
*/
|
||||
write_seqcount_begin(&vtime->seqcount);
|
||||
__vtime_account_system(tsk, vtime);
|
||||
current->flags |= PF_VCPU;
|
||||
tsk->flags |= PF_VCPU;
|
||||
write_seqcount_end(&vtime->seqcount);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vtime_guest_enter);
|
||||
|
|
@ -801,7 +801,7 @@ void vtime_guest_exit(struct task_struct *tsk)
|
|||
|
||||
write_seqcount_begin(&vtime->seqcount);
|
||||
vtime_account_guest(tsk, vtime);
|
||||
current->flags &= ~PF_VCPU;
|
||||
tsk->flags &= ~PF_VCPU;
|
||||
write_seqcount_end(&vtime->seqcount);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vtime_guest_exit);
|
||||
|
|
|
|||
|
|
@ -4926,20 +4926,28 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
|
|||
if (++count > 3) {
|
||||
u64 new, old = ktime_to_ns(cfs_b->period);
|
||||
|
||||
new = (old * 147) / 128; /* ~115% */
|
||||
new = min(new, max_cfs_quota_period);
|
||||
/*
|
||||
* Grow period by a factor of 2 to avoid losing precision.
|
||||
* Precision loss in the quota/period ratio can cause __cfs_schedulable
|
||||
* to fail.
|
||||
*/
|
||||
new = old * 2;
|
||||
if (new < max_cfs_quota_period) {
|
||||
cfs_b->period = ns_to_ktime(new);
|
||||
cfs_b->quota *= 2;
|
||||
|
||||
cfs_b->period = ns_to_ktime(new);
|
||||
|
||||
/* since max is 1s, this is limited to 1e9^2, which fits in u64 */
|
||||
cfs_b->quota *= new;
|
||||
cfs_b->quota = div64_u64(cfs_b->quota, old);
|
||||
|
||||
pr_warn_ratelimited(
|
||||
"cfs_period_timer[cpu%d]: period too short, scaling up (new cfs_period_us %lld, cfs_quota_us = %lld)\n",
|
||||
smp_processor_id(),
|
||||
div_u64(new, NSEC_PER_USEC),
|
||||
div_u64(cfs_b->quota, NSEC_PER_USEC));
|
||||
pr_warn_ratelimited(
|
||||
"cfs_period_timer[cpu%d]: period too short, scaling up (new cfs_period_us = %lld, cfs_quota_us = %lld)\n",
|
||||
smp_processor_id(),
|
||||
div_u64(new, NSEC_PER_USEC),
|
||||
div_u64(cfs_b->quota, NSEC_PER_USEC));
|
||||
} else {
|
||||
pr_warn_ratelimited(
|
||||
"cfs_period_timer[cpu%d]: period too short, but cannot scale up without losing precision (cfs_period_us = %lld, cfs_quota_us = %lld)\n",
|
||||
smp_processor_id(),
|
||||
div_u64(old, NSEC_PER_USEC),
|
||||
div_u64(cfs_b->quota, NSEC_PER_USEC));
|
||||
}
|
||||
|
||||
/* reset count so we don't come right back in here */
|
||||
count = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue