Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб июл 22, 2017 5:39 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 1:03 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
Я добавил в бранч kolibri-acpi определение числа процессоров - переменная [cpu_count] и запуск одного ядра - функция start_ap. Каждому процессору присваивается номер начиная с нуля для загрузочного. В таблице smpt сохраняется apic id процессора под номером N. Всего таблица рассчитана на 16 процессоров.
start_ap запускает процессор N и переводит в режим ядра. После чего процессор в цикле рисует квадрат размером 32х32 пикселя с координатами х= cpu_apic_id*64, y=0. Теперь пытливые Самоделкины могут использовать эти ядра по своему усмотрению.


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 1:12 pm 
Поддерживается:
ASUS M3N78-VM (Athlon 64 X2, 2 ядра) - система стартует и показывает серый квадрат в левом верхнем углу, не зависает.
Dell Inspiron (Intel i5, 2 ядра + хипертридинг итого 4 виртуальных) - система стартует и показывает серый квадрат в левом верхнем углу, не зависает.
ASRock M3A770DE (Athlon-II 64 X2, 2 ядра) - система стартует и показывает серый квадрат в левом верхнем углу, не зависает.

Не поддерживается.
Roverbook U800 (AMD Geode LX800) - система стартует, но естественно никакого квадрата, т.к. ядро одно, не зависает.
eBox-3300MX (Vortex86MX) - система стартует, но естественно никакого квадрата, т.к. ядро одно, не зависает.

В качестве предложения - кроме серого квадрата писать хотя бы одну цифру, сколько ядер обнаружено.


Вернуться к началу
   
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 2:37 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
Добавил вывод числа CPU на доску отладки.
Перенесу код с определением числа CPU в транк.


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 5:40 pm 
А как он будет работать? При загрузке будет рисование пингвинов выводиться в лог на черном фоне?


Вернуться к началу
   
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 6:55 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
Перенёс в транк. Данные выводятся на доску отладки.
Число процессоров определяется по таблицам ACPI. Если ACPI нет, то cpu_count равно 0, но на доске будет "1 CPU detected", чтобы не смущать народ.


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 6:57 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Вау, круто. А можно как-нибудь эти ядра нагрузить из клиентских приложений? Или планировщику поручить на них часть задач скидывать?


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 7:00 pm 
Боюсь, что придется все собственными ручками в ядре делать.

З.Ы. CPU not found - это старая хохма. :mrgreen:


Вернуться к началу
   
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 7:13 pm 
Все нормально: на i5 определилось 4 ядра, на Athlon 64 x2 определилось 2 ядра.


Вернуться к началу
   
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Пт мар 09, 2012 7:16 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
Сделаю ещё определение топологии, чтобы различать логические ядра и физические.


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Сб мар 10, 2012 1:22 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4092
Можно выводить ещё на чёрном фоне во время загрузки... вместе с частотой процессора.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Сб мар 10, 2012 8:29 am 
Загрузочный лог на черном фоне полезен лишь при зависании, а там знать сколько у тебя ядер не очень важно.


Вернуться к началу
   
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Сб мар 10, 2012 12:03 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4092
Проц i3-330m определяет 4 ядра, на самом деле 2 физических, 4 потока.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Сб мар 10, 2012 11:33 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Serge
Однако теперь надо начинать серьезно продумывать формат исполняемых файлов для Колибри-64,
адресную модель для второго ядра,
API-64,
и еще протокол межпроцессорных сообщений.

Кстати, свет ведь клином на 64 битах не сошелся. Кто-то может захотеть использовать "вторые" ядра как API-ускорители, а кому-то надо будет засунуть туда одно монопольное RT-приложение.


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Вс мар 11, 2012 12:28 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
art_zh
Я могу набросать общий код инициализации, но особенно сильно лезть в это дело пока не буду. Смысла в приложениях без полноценного доступа к сервисам системы не много. Как и писал раньше все это больше "Сделай Сам".

Хотя никаких неразрешимых проблем с исполнением 64-х битных программ в Колибри нет. Главное чтобы все указатели передаваемые ядру лежали ниже 2Gb. Каждый процесс создаётся как обычная программа Колибри. У процесса есть триггер kernеl-mode/user-mode. В user-mode процесс помечен как спящий и не планируется на 32-х битном ядре. В режиме ядра наоборот. Соответственно при смене режимов происходит миграция процесса с одного ядра на другое. Фактически это работает как IPC в микроядерной системе, только передаётся не сообщение, а весь процесс.

Похожим образом и smp организуется. Глобальная блокировка на входе в ядро, так что только один процессор в режиме ядра. Так FreeBSD работала.


Вернуться к началу
 Заголовок сообщения: Re: Больше ядер !
СообщениеДобавлено: Ср мар 14, 2012 9:52 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1211
Nice work,
I can debug on a quad-core i7 (8 threads) and an old dual Pentium III server, if it is of any use?

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB