1 /* |
1 /* |
2 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
3381 // not the entire user process, and user level threads are 1:1 mapped to kernel |
3381 // not the entire user process, and user level threads are 1:1 mapped to kernel |
3382 // threads. It has always been the case, but could change in the future. For |
3382 // threads. It has always been the case, but could change in the future. For |
3383 // this reason, the code should not be used as default (ThreadPriorityPolicy=0). |
3383 // this reason, the code should not be used as default (ThreadPriorityPolicy=0). |
3384 // It is only used when ThreadPriorityPolicy=1 and requires root privilege. |
3384 // It is only used when ThreadPriorityPolicy=1 and requires root privilege. |
3385 |
3385 |
3386 int os::java_to_os_priority[MaxPriority + 1] = { |
3386 int os::java_to_os_priority[CriticalPriority + 1] = { |
3387 19, // 0 Entry should never be used |
3387 19, // 0 Entry should never be used |
3388 |
3388 |
3389 4, // 1 MinPriority |
3389 4, // 1 MinPriority |
3390 3, // 2 |
3390 3, // 2 |
3391 2, // 3 |
3391 2, // 3 |
3396 |
3396 |
3397 -2, // 7 |
3397 -2, // 7 |
3398 -3, // 8 |
3398 -3, // 8 |
3399 -4, // 9 NearMaxPriority |
3399 -4, // 9 NearMaxPriority |
3400 |
3400 |
3401 -5 // 10 MaxPriority |
3401 -5, // 10 MaxPriority |
|
3402 |
|
3403 -5 // 11 CriticalPriority |
3402 }; |
3404 }; |
3403 |
3405 |
3404 static int prio_init() { |
3406 static int prio_init() { |
3405 if (ThreadPriorityPolicy == 1) { |
3407 if (ThreadPriorityPolicy == 1) { |
3406 // Only root can raise thread priority. Don't allow ThreadPriorityPolicy=1 |
3408 // Only root can raise thread priority. Don't allow ThreadPriorityPolicy=1 |
3410 if (!FLAG_IS_DEFAULT(ThreadPriorityPolicy)) { |
3412 if (!FLAG_IS_DEFAULT(ThreadPriorityPolicy)) { |
3411 warning("-XX:ThreadPriorityPolicy requires root privilege on Linux"); |
3413 warning("-XX:ThreadPriorityPolicy requires root privilege on Linux"); |
3412 } |
3414 } |
3413 ThreadPriorityPolicy = 0; |
3415 ThreadPriorityPolicy = 0; |
3414 } |
3416 } |
|
3417 } |
|
3418 if (UseCriticalJavaThreadPriority) { |
|
3419 os::java_to_os_priority[MaxPriority] = os::java_to_os_priority[CriticalPriority]; |
3415 } |
3420 } |
3416 return 0; |
3421 return 0; |
3417 } |
3422 } |
3418 |
3423 |
3419 OSReturn os::set_native_priority(Thread* thread, int newpri) { |
3424 OSReturn os::set_native_priority(Thread* thread, int newpri) { |