Отключение планировщика для уменьшения времени процессора при спин-блокировке

В Linux, в среде kvm, когда процесс в виртуальной машине блокируется на каком-либо ресурсе и вытесняется, другие процессы виртуальной машины, которым нужен этот заблокированный ресурс, будут тратить время на спин-блокировку. И процесс разблокирует ресурс, когда ему будет выделен ПРОЦЕССОР.

Я хотел бы отключить планировщик от предварительной очистки, пока процесс не разблокирует ресурс. И это уменьшит время процессора на спин-блокировке.

Как добиться вышеперечисленного?? то есть

  1. Как узнать, заблокировался ли процесс в ВМ на каком-то ресурсе?

  2. Тогда как сообщить планировщику, чтобы он не вытеснял процесс, пока ресурс не будет разблокирован?

поправьте меня, если я где-то ошибаюсь..

Заранее спасибо..


person rAzOr    schedule 17.04.2012    source источник
comment
@Basilevs: я имел в виду упреждение ..   -  person rAzOr    schedule 17.04.2012


Ответы (1)


Используйте вызов spinlock_irq_save(). Он отключает прерывания и вытеснение, а также атомарно блокирует спин-блокировку. См. http://www.kernel.org/doc/Documentation/spinlocks.txt для вариантов использования.

person Basilevs    schedule 17.04.2012