> man operating_systems
Центр информации по операционным системам :: Форумы :: Операционные системы :: GNU/Linux
 
<< Предыдущая тема | Следующая тема >>
sparc32: вопрос по alignment!
Переход на страницу  1 [2] 3
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
vv40in
Пятница 10.10.2008 14:44
ID пользователя #1076
Зарегистрирован: Суббота 07.06.2008 12:10
Сообщений: 62
спасибо! теперь буду знать!
Наверх
vv40in
Понедельник 13.10.2008 17:16
ID пользователя #1076
Зарегистрирован: Суббота 07.06.2008 12:10
Сообщений: 62
скажите, а как для других алокаторов решить ту же проблему?
Наверх
Dron
Понедельник 13.10.2008 17:45


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Для каких? (можно задавать вопросы поконкретнее?)
Ты про SLUB/SLOB? они все используют SLAB_MINALIGN
Во всяком случае в последних ядрах. даже более того...

Там используется max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN)

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
vv40in
Понедельник 13.10.2008 20:28
ID пользователя #1076
Зарегистрирован: Суббота 07.06.2008 12:10
Сообщений: 62
нет. после изучения вопроса придется вопрос пересмотреть.
оказалось, что все гораздо мрачнее. это
struct Scsi_Host shost в которой находиттся ul hostdata[0] = то же что и == (&hostdata[0]==struct ata_port*)
hostdata[0] выровнена по u32 (судя по
unsigned long hostdata[0] /* Used for storage of host specific stuff */
__attribute__ ((aligned (sizeof(unsigned long))));

)
(см. linux/libata.h)
а это ужЕ сложнее и в дальнейшем порождает различные изощренные каверзы
Наверх
Dron
Вторник 14.10.2008 14:23


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Не понимаю, по идее 32-х битные значения должны быть выровнены только на 32. указатели то у тебя 32-х битные?

Напиши по человечески
__attribute__ ((aligned (sizeof(struct Scsi_Host *))))
или просто
__attribute__ ((aligned (sizeof(void *))))



Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
ossadchy
Вторник 14.10.2008 23:24
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
поддерживаю -- есть синтаксис GNU C который все нормально помогает выровнять.
Наверх
Сайт
vv40in
Среда 15.10.2008 10:52
ID пользователя #1076
Зарегистрирован: Суббота 07.06.2008 12:10
Сообщений: 62
я тоже поддерживаю . и выравнивает.
но не работает почему-то - 64-битные величины то тут то там оказываются невыравненными по 64-битной границе . согласитесь, что не я (т.е. пользователь) должен этим заниматься. этим должен заниматься разработчик.
Наверх
Dron
Среда 15.10.2008 11:31


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Ну тут да, скорее всего косяк разработчиков.. если ты хранишь указатели, то собственно почему ты выравниваешь их на unsigned long?

Но надо сказать, что счастья не будет. Линукс жутко бардачный. поэтому свои проблемы решай сам. опенсорс - не для слабых духом)

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Hmmm
Пятница 17.10.2008 17:33

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
Ты другое ядро попробовать поставить категорически не хочешь? 2.6.27.1 например. И еще, как ты ядро собираешь? Просто линукс на спарках работает - 100% Вот нарыл, может поможет: http://www.gentoo.org/doc/ru/handbook/hb-install-sparc-kernel.xml

P.S. http://packages.debian.org/ru/etch/linux-image-2.6.18-6-sparc32

[ Редактирование Пятница 17.10.2008 17:35 ]
Наверх
vv40in
Пятница 17.10.2008 21:30
ID пользователя #1076
Зарегистрирован: Суббота 07.06.2008 12:10
Сообщений: 62
категорически не могу. у нас LEON, а не просто sparc. дело в том, что там очень много изменений сделано разработчиками LEONа

[ Редактирование Пятница 17.10.2008 21:33 ]
Наверх
Переход на страницу  1 [2] 3  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.