Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
[Linux/Kernel] Подскажите 19.08.03 19:54 Число просмотров: 1127
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 19.08.03 19:55 Количество правок: 1
|
> глянь в ldd 2м издании. > > пробежаться наверно стоит по vm_area_struct, например от > какого-то процесса ядра типа swapper-a. на счет проверки на > "доступность" - были функции, в ldd описаны в контектсе > выделения region-a. там перед выделением делалась проверка > на доступность участка памяти. где-то в 2-5 главе. точно > сказать немогу.
Нет, это совсем не то (если я правильно понял).
Предложенным способом можно проверить размещена ли страница с заданным вируальным адресом в физической памяти, или в вытолкнута в swap.
А мне нужо проверить может ли PCI Bus Master устройство обратиться к заданному адресу физической памяти. Несмотря на то, что разрядность адреса PCI32 и системной памяти может быть одинаковой, не все адреса доступны.
Это контролируеся мостом PCI<->CPU/RAM. И если "запустить" PCI bus-master transfer на недоступный адрес (не важно read или write), то можно вызвать зависание либо PCI-устройства, либо PCI-моста, а на некоторых чипсетах и системы в целом.
|
<programming>
|
[Linux/Kernel] Подскажите 14.08.03 13:15
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Linux/Kernel:
Нужно быстро проверить, доступен ли определенный участок виртуальной памяти ядра с PCI-шины. Например, исполнимый код ядра и static-переменные не доступны. Я так понимаю все своидтся к проверке на попадание в определенный диаппазон адресов, но вот в каких переменных ядра храняться границы этого диаппазона.
|
|
[Linux/Kernel] Подскажите 18.08.03 22:49
Автор: Eugene Статус: Незарегистрированный пользователь Отредактировано 18.08.03 22:51 Количество правок: 1
|
> Linux/Kernel: > Нужно быстро проверить, доступен ли определенный участок > виртуальной памяти ядра с PCI-шины. Например, исполнимый > код ядра и static-переменные не доступны. Я так понимаю все > своидтся к проверке на попадание в определенный диаппазон > адресов, но вот в каких переменных ядра храняться границы > этого диаппазона.
глянь в ldd 2м издании.
пробежаться наверно стоит по vm_area_struct, например от какого-то процесса ядра типа swapper-a. на счет проверки на "доступность" - были функции, в ldd описаны в контектсе выделения region-a. там перед выделением делалась проверка на доступность участка памяти. где-то в 2-5 главе. точно сказать немогу.
|
| |
[Linux/Kernel] Подскажите 19.08.03 19:54
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 19.08.03 19:55 Количество правок: 1
|
> глянь в ldd 2м издании. > > пробежаться наверно стоит по vm_area_struct, например от > какого-то процесса ядра типа swapper-a. на счет проверки на > "доступность" - были функции, в ldd описаны в контектсе > выделения region-a. там перед выделением делалась проверка > на доступность участка памяти. где-то в 2-5 главе. точно > сказать немогу.
Нет, это совсем не то (если я правильно понял).
Предложенным способом можно проверить размещена ли страница с заданным вируальным адресом в физической памяти, или в вытолкнута в swap.
А мне нужо проверить может ли PCI Bus Master устройство обратиться к заданному адресу физической памяти. Несмотря на то, что разрядность адреса PCI32 и системной памяти может быть одинаковой, не все адреса доступны.
Это контролируеся мостом PCI<->CPU/RAM. И если "запустить" PCI bus-master transfer на недоступный адрес (не важно read или write), то можно вызвать зависание либо PCI-устройства, либо PCI-моста, а на некоторых чипсетах и системы в целом.
|
|
|