hotspot/src/os/linux/vm/os_linux.cpp
changeset 11601 f359304c1856
parent 11483 4d3f4bca0019
child 11967 ce179af268b1
equal deleted inserted replaced
11600:48468ad48e4c 11601:f359304c1856
     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) {