Управление памятью в Xen

Я понимаю, что xen распределяет все требования физической памяти гостя при запуске. Также он поддерживает таблицу страниц теневого копирования (я предполагаю, что она использует struct page_info для поддержки этого. Я прав? Если не кто-нибудь может объяснить?), К которой я хочу получить доступ, потому что мне нужно пройти по этому списку, проверяя, является ли гость, к которому это относится. страница назначена, по крайней мере один раз зашел на нее.

Может кто-нибудь объяснить мне, как я могу достичь этого?

2
задан 3 November 2012 в 13:42

1 ответ

Ravi,

Чтобы ответить на ваш вопрос, я предполагаю, что вы хотите изменить исходный код гипервизора и что вы опытный программист ядра Linux. Если у вас нет опыта в кодировании ядра, то вам, вероятно, следует сначала попробовать более простой проект кодирования ядра, чтобы получить некоторый опыт. Объяснение того, как изменить код теневой памяти Xen, выходит за рамки AskUbuntu. Ответ, конечно, не будет соответствовать одному из этих ответов. То, что вы хотите сделать, очень сложно.

Прежде всего, struct page_info не является списком. Это абстрактный тип данных строительного блока, который используется в нескольких списках в гипервизоре Xen. Поэтому, пожалуйста, сообщите нам, какой список вы смотрите, который использует page_info.

Как вы уже видели, в структуре page_info есть счетчик ссылок, но его нельзя использовать для непосредственного выполнения того, что вы хотите, AFAIK. Обратный указатель _домен, который вы видите как часть структуры page_info, определен только для страниц, не используемых в качестве теневых страниц.

Xen может быть настроен на то, что вы говорите, выделять всю память при запуске гостя, но он также может быть настроен на использование всплывающих окон и выделение памяти позже, как вверх, так и вниз. Чтобы узнать о драйвере аэростата и таком распределении памяти, см. Вики Xen по адресу http://wiki.xen.org/wiki/Main_Page .

Существует также функция трансцендентальной памяти, называемая в источнике «tmem». Если он настроен на использование tmem, Xen заберет память у гостя, который ее не использует, чтобы передать ее другому гостю, который нуждается в ней больше. Таким образом, есть больше работы, если вы хотите изменить гипервизор Xen, чтобы отслеживать гостевой доступ ко всей теневой памяти, работая во всех возможных режимах управления памятью.

Если вы не программируете ядро, а просто решаете проблемы, вы можете подключить последовательный терминал к оборудованию, на котором работает Xen (см. Вики Xen, как это сделать), чтобы увидеть использование памяти. Если у вас правильно работает последовательный терминал, вы можете не только общаться с dom0, но, нажав три раза Ctrl-A, вы можете напрямую общаться с гипервизором. Нажмите клавишу «h», чтобы получить справочный список команд.

С уважением,

Segfaultreloaded

0
ответ дан 3 November 2012 в 13:42

Другие вопросы по тегам:

Похожие вопросы: