Cache Coloring Task_struct e Kernel Stack

Cache Coloring Task_Struct e Kernel Stack é um patch criado para cache-cores tanto task_struct e kernel stack.
Baixe Agora

Cache Coloring Task_struct e Kernel Stack Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • Davide Libenzi
  • Site do editor:
  • http://www.xmailserver.org/davide.html

Cache Coloring Task_struct e Kernel Stack Tag


Cache Coloring Task_struct e Kernel Stack Descrição

Cache Coloring Task_Struct e Kernel Stack é um patch criado para cache-cores Todo task_struct e kernel stack. Cache Coloring Task_Struct e Kernel Stack é um patch criado para cache-cores tanto task_struct and kernel stack usando um alocador de laje para tarefas de tarefas e ponteiro de pilha inicial que jittering for kernel stack. Uma estrutura extra é definida para alocações de tarefas de tarefas, desde uma nova estrutura de tarefa inicial: #define tsk_to_kstack (p) ((((struct Full_tok_struct *) (p)) -> pilha) #define tsk_kstack_top (p) ((((estrutural full_tok_struct *) (p)) -> stack_top) #define tsk_count (p) (((struct Full_tok_struct *) (p) (p)) -> Contagem) Struct Full_Task_Strute {Struct Task_struct Tarefa; Contagem atomic_t; pilha longa não assinada; stack_top não assinado longo;}; struct init_tok_struct {pilha longa não assinada ; Struct Full_Task_Strruque FTSK;}; assim, cada ponteiro para um task_struct é realmente um ponteiro full_tok_struct que pode ser usado para acessar outros campos como a base de pilha de tarefas, a tampa da pilha de tarefas e a contagem de uso de tarefas. A pilha para Task_Struct Envel Lookup é feita armazenando o ponteiro do proprietário da pilha TASK_STRICUT na base da pilha: estrutura task_strut * alloc_task_struct (nulo) {struct Full_Task_Strut * f = ( Struct Full_Task_struct *) KMEM_CACHE_ALLOC (Tsk_Cache, Gfp_kernel); se (! f) retornar nulo; f-> stack = __get_free_pages (gfp_kernel, 1); if (! f-> pilha) {kmem_cache_free (tsk_cache, f); retornar nulo; } atomic_set (F-> Count, 1); * ((estrutural task_struct **) f-> pilha) = (estrutura task_struct *) f; Retornar (estrutural task_strucut *) F;} O empilhador inicial O ponteiro do quadro do pilha é feito por: #define stack_colour_bits 3 # Defina Stack_Colour_mask ((1 ESP = ESP; P-> Thread. esp = tsk_kstack_top (p) = (long sircy) infantil; p-> thread.esp0 = (não assinado longo) (infantil + 1); p-> thread.EIP = (longa duração (não assinada) RET_FROM_FORK; Savesegment (FS, P-> Thread.fs); Savesegment (GS, P-> Thread.gs); Unlovazy_fpu (corrente); Struct_cpy (p-> thread.i387, atual-> thread.i387); retorne 0;} usando três bits de cor de três pilha oito As cores serão usadas para o ponteiro do quadro de pilha inicial que deve ser suficiente para a maioria das arquiteturas de cache. O cuidado tem que ser tomado em aumentar demais stack_colour_bits porque isso pode levar a transbordamentos de pilha de kernel (por exemplo, um stack_colour_bits definido como 4 com um tamanho de linha de cache de 128 bytes como P4 resultarão em um jitter máximo de 2048 bytes deixando apenas 6 kb para a pilha do kernel).


Cache Coloring Task_struct e Kernel Stack Software Relacionado

Algraph

Algraph é uma ferramenta para alinhamento manual de gráficos linguísticos, como estruturas de estrutura ou estruturas de dependência da frase. ...

152

Download

ESTEIDUTIL.

Esteidutil é uma ferramenta de GUI da GUI do Estoniano National ID de identificação. ...

168

Download

WGPhone

WGPhone é um programa para analisar automaticamente as contas telefônicas em ações planas. ...

140

Download