mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
Two fixes for the scheduler:
- Work around an uninitializaed variable warning where GCC can't figure it out. - Allow 'isolcpus=' to skip unknown subparameters so that older kernels work with the commandline of a newer kernel. Improve the error output while at it. -----BEGIN PGP SIGNATURE----- iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAl6cVFwTHHRnbHhAbGlu dXRyb25peC5kZQAKCRCmGPVMDXSYoZAaD/9i9QgLuj1Ka59kNPAs68i5Kjar72VS us1dM2n0Tx6lIUEYsdJsu4GTRi5NEBqLbmwSgsXROnhI6Jd17hHp5JViezk1GZWc Zg2uARAj9Jsqh2q5IjriNOwzq47PDC4dmSUzaecJff8PqGkk9Lpry6qvx3A02uSn tVVQAXqwCbPTaQzuhEf/q6mbfRaO90tVqGdseD+1wE0FBFfPLwddegLEGhL1vYsA 55UhpKCGsS9lrfmgkxk1Xb3e0pJBObiV0SXdn2qHqJTpVUaDTZzsWgJHXg+0Fe1V 0ZsuGfmaaisYPBZmqRo4HALbkgnvVECSbp7FAnhvqiQMyNaciiwkkFv9Ap5+aayf c8wXz/emAmuEMNzipovyFUITCIOs6IL1CkESsbO8Bgx9sTHO+pcgNEYrsX1953UC 45GjhXR3ymnclqsVqfMWIcNRukk0g9W38yp1DgA5IIhVz1rHogEquD9F10qsCGb1 FgSOnyGlU0I0JR5tEfqR0TeCuqLGKB2NvnEgLU4OVpsdEC5ac87uvzWEZuOmR5Z4 vQCkps1z1ABW5fB/kFO83OiA5BZfDGnq5Vvh6XDOv6EeWjhIXrolu6VeTYpBSInq w0oNpsaA9wsy7WIy1RJ8jtSNsgS8fULCE5lUBtFeSUY/T7IcWd0lwnTlL97A4qzg GdYVT/UAHLCzCA== =AKgh -----END PGP SIGNATURE----- Merge tag 'sched-urgent-2020-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fixes from Thomas Gleixner: "Two fixes for the scheduler: - Work around an uninitialized variable warning where GCC can't figure it out. - Allow 'isolcpus=' to skip unknown subparameters so that older kernels work with the commandline of a newer kernel. Improve the error output while at it" * tag 'sched-urgent-2020-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/vtime: Work around an unitialized variable warning sched/isolation: Allow "isolcpus=" to skip unknown sub-parameters
This commit is contained in:
commit
08dd387277
@ -1003,12 +1003,12 @@ u64 kcpustat_field(struct kernel_cpustat *kcpustat,
|
|||||||
enum cpu_usage_stat usage, int cpu)
|
enum cpu_usage_stat usage, int cpu)
|
||||||
{
|
{
|
||||||
u64 *cpustat = kcpustat->cpustat;
|
u64 *cpustat = kcpustat->cpustat;
|
||||||
|
u64 val = cpustat[usage];
|
||||||
struct rq *rq;
|
struct rq *rq;
|
||||||
u64 val;
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (!vtime_accounting_enabled_cpu(cpu))
|
if (!vtime_accounting_enabled_cpu(cpu))
|
||||||
return cpustat[usage];
|
return val;
|
||||||
|
|
||||||
rq = cpu_rq(cpu);
|
rq = cpu_rq(cpu);
|
||||||
|
|
||||||
|
@ -149,6 +149,9 @@ __setup("nohz_full=", housekeeping_nohz_full_setup);
|
|||||||
static int __init housekeeping_isolcpus_setup(char *str)
|
static int __init housekeeping_isolcpus_setup(char *str)
|
||||||
{
|
{
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
bool illegal = false;
|
||||||
|
char *par;
|
||||||
|
int len;
|
||||||
|
|
||||||
while (isalpha(*str)) {
|
while (isalpha(*str)) {
|
||||||
if (!strncmp(str, "nohz,", 5)) {
|
if (!strncmp(str, "nohz,", 5)) {
|
||||||
@ -169,10 +172,24 @@ static int __init housekeeping_isolcpus_setup(char *str)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pr_warn("isolcpus: Error, unknown flag\n");
|
/*
|
||||||
|
* Skip unknown sub-parameter and validate that it is not
|
||||||
|
* containing an invalid character.
|
||||||
|
*/
|
||||||
|
for (par = str, len = 0; *str && *str != ','; str++, len++) {
|
||||||
|
if (!isalpha(*str) && *str != '_')
|
||||||
|
illegal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (illegal) {
|
||||||
|
pr_warn("isolcpus: Invalid flag %.*s\n", len, par);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pr_info("isolcpus: Skipped unknown flag %.*s\n", len, par);
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
|
||||||
/* Default behaviour for isolcpus without flags */
|
/* Default behaviour for isolcpus without flags */
|
||||||
if (!flags)
|
if (!flags)
|
||||||
flags |= HK_FLAG_DOMAIN;
|
flags |= HK_FLAG_DOMAIN;
|
||||||
|
Loading…
Reference in New Issue
Block a user