Mmap семафор блокировки страниц в ядре - PullRequest
1 голос
/ 24 июля 2011

Если я уже держу семафор mmap (чтение) для mm_struct, и я бы хотел записать некоторые данные в член структуры страницы, если бы я перечитал семафор и попытался получить down_write для mm_struct, или я должен использовать отдельная блокировка (это элемент структуры, который я создал, это список). Также, если у меня уже есть семафор down_read и я вызываю другой метод, который down_reads тот же семафор, это не должно тупиковать из моего понимания правильно?

1 Ответ

0 голосов
/ 28 июля 2011

Решение, которое я нашел, заключается в том, что down_read не вызовет тупиковую ситуацию.Вместо этого я использую спин-блокировку для сохранения исключительных прав на изменение списка, а также изменение флагов страницы.Это позволяет мне избежать проблем с несколькими сбоями на одной странице, а также позволяет мне видеть, что если я в данный момент удерживаю блокировку, обработчик ошибок страницы может просто вернуться, потому что я уже обработаю эту ошибку.

...