gru: change resource assignment for kernel threads
Change the way GRU resources are assigned for kernel threads. GRU contexts for kernel threads are now allocated on demand and can be stolen by user processes when idle. This allows MPI jobs to use ALL of the GRU resources when the kernel is not using them. Signed-off-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Цей коміт міститься в:

зафіксовано
Linus Torvalds

джерело
6e9100741c
коміт
836ce679c0
@@ -57,7 +57,7 @@ static void start_instruction(void *h)
|
||||
static int wait_instruction_complete(void *h, enum mcs_op opc)
|
||||
{
|
||||
int status;
|
||||
cycles_t start_time = get_cycles();
|
||||
unsigned long start_time = get_cycles();
|
||||
|
||||
while (1) {
|
||||
cpu_relax();
|
||||
@@ -65,7 +65,8 @@ static int wait_instruction_complete(void *h, enum mcs_op opc)
|
||||
if (status != CCHSTATUS_ACTIVE)
|
||||
break;
|
||||
if (GRU_OPERATION_TIMEOUT < (get_cycles() - start_time))
|
||||
panic("GRU %p is malfunctioning\n", h);
|
||||
panic("GRU %p is malfunctioning: start %ld, end %ld\n",
|
||||
h, start_time, (unsigned long)get_cycles());
|
||||
}
|
||||
if (gru_options & OPT_STATS)
|
||||
update_mcs_stats(opc, get_cycles() - start_time);
|
||||
|
Посилання в новій задачі
Заблокувати користувача