|
Большое число программных прерываний в ОС Linux при приеме информации по интерфейсу CAN на AM3517, Нужно уменьшить число программных прерываний в ОС Linux |
|
|
|
Sep 18 2013, 09:49
|
Группа: Участник
Сообщений: 14
Регистрация: 18-09-13
Пользователь №: 78 372

|
На AM3517 при получении информации через интерфейс CAN (скорость передачи данных 1 Мбит/с шина CAN загружена около 80%) в ОС Linux генерируется много программных прерываний (около 45% загрузки процессора). Можно ли уменьшить количество программных прерываний при приеме?
|
|
|
|
|
 |
Ответов
|
Oct 16 2013, 11:53
|
Группа: Участник
Сообщений: 14
Регистрация: 18-09-13
Пользователь №: 78 372

|
Цитата(Tarbal @ Oct 16 2013, 17:42)  Вы уверены, что вы починили функциональность, а не только предотватили печатание сообщения? Я бы разобрался что происходит для начала. После правки, проверил работоспособность периферии сидящей на i2c, а так же проверил прием по CAN интерфейсу, потери пакетов не наблюдалось. Проверки продолжу, потому что действительно пока сам не уверен, что все работает должным образом. Параллельно буду донимать поддержку TI, чтоб они подтвердили, наличие ошибки и сделали корректный патч, не как я поступил, просто обрезал латентности.
|
|
|
|
|
Oct 17 2013, 05:25
|
Группа: Участник
Сообщений: 14
Регистрация: 18-09-13
Пользователь №: 78 372

|
Цитата(Tarbal @ Oct 16 2013, 18:47)  И не рассчитывайте  У них (как и у Фрискейла) сейчас кампания за Андроид. Все что напрямую не связано с Андроидом ими игнорируется. Однако в e2e написать стоит. Вот ответ из TI: CODE If you make some search on the src code you will fond out that the fct the print this messages are _omap_device_activate and _omap_device_deactivate from arch/arm/plat-omap/omap_device.c.
Seems to be called from I2c driver context in this case. You will need to investigate when this code is called and why it would prevent the CAN driver to capture packets. Нашел, более правильное решение, в файле omap_device.c для функции _omap_device_activate внес немного другое изменение. было: CODE 144 if (act_lat > odpl->activate_lat) { 145 odpl->activate_lat_worst = act_lat; 146 if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { 147 odpl->activate_lat = act_lat; 148 pr_warning("omap_device: %s.%d: new worst case " 149 "activate latency %d: %llu\n", 150 od->pdev.name, od->pdev.id, 151 od->pm_lat_level, act_lat); 152 } else 153 pr_warning("omap_device: %s.%d: activate " 154 "latency %d higher than exptected. " 155 "(%llu > %d)\n", 156 od->pdev.name, od->pdev.id, 157 od->pm_lat_level, act_lat, 158 odpl->activate_lat); 159 } сделал CODE 144 if (act_lat > odpl->activate_lat) { 145 odpl->activate_lat_worst = act_lat; 146 if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { 147 odpl->activate_lat = act_lat; 148 } else 149 pr_warning("omap_device: %s.%d: activate " 150 "latency %d higher than exptected. " 151 "(%llu > %d)\n", 152 od->pdev.name, od->pdev.id, 153 od->pm_lat_level, act_lat, 154 odpl->activate_lat); 155 } И для функции _omap_device_deactivate было CODE 212 if (deact_lat > odpl->deactivate_lat) { 213 odpl->deactivate_lat_worst = deact_lat; 214 if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { 215 odpl->deactivate_lat = deact_lat; 216 pr_warning("omap_device: %s.%d: new worst case " 217 "deactivate latency %d: %llu\n", 218 od->pdev.name, od->pdev.id, 219 od->pm_lat_level, deact_lat); 220 } else 221 pr_warning("omap_device: %s.%d: deactivate " 222 "latency %d higher than exptected. " 223 "(%llu > %d)\n", 224 od->pdev.name, od->pdev.id, 225 od->pm_lat_level, deact_lat, 226 odpl->deactivate_lat); 227 } сделал CODE 208 if (deact_lat > odpl->deactivate_lat) { 209 odpl->deactivate_lat_worst = deact_lat; 210 if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { 211 odpl->deactivate_lat = deact_lat; 212 } else 213 pr_warning("omap_device: %s.%d: deactivate " 214 "latency %d higher than exptected. " 215 "(%llu > %d)\n", 216 od->pdev.name, od->pdev.id, 217 od->pm_lat_level, deact_lat, 218 odpl->deactivate_lat); 219 }
|
|
|
|
Сообщений в этой теме
Таратухин Сергей Большое число программных прерываний в ОС Linux при приеме информации по интерфейсу CAN на AM3517 Sep 18 2013, 09:49 kurtis У вас случайно прерывания не по gpio идут? Если по... Sep 18 2013, 12:45 Tarbal Цитата(Таратухин Сергей @ Sep 18 2013, 13... Sep 18 2013, 17:00 _3m Цитата(Tarbal @ Sep 18 2013, 21:00) Уточн... Sep 18 2013, 19:24  Таратухин Сергей Цитата(_3m @ Sep 19 2013, 01:24) Я посмот... Sep 19 2013, 05:54   _3m Цитата(Таратухин Сергей @ Sep 19 2013, 09... Sep 19 2013, 07:16    Tarbal Цитата(_3m @ Sep 19 2013, 11:16) Пока не ... Sep 19 2013, 13:19     Таратухин Сергей Цитата(Tarbal @ Sep 19 2013, 19:19) Ваши ... Sep 20 2013, 09:13      sasamy Цитата(Таратухин Сергей @ Sep 20 2013, 13... Sep 20 2013, 10:42       Таратухин Сергей Цитата(sasamy @ Sep 20 2013, 16:42) В ста... Sep 20 2013, 12:23        sasamy Цитата(Таратухин Сергей @ Sep 20 2013, 16... Sep 20 2013, 12:55         sasamy Цитата(sasamy @ Sep 20 2013, 16:55) Посмо... Sep 20 2013, 14:30          AndrewN QUOTE (sasamy @ Sep 20 2013, 18:30) Кстат... Sep 21 2013, 18:38          Таратухин Сергей Цитата(sasamy @ Sep 20 2013, 20:30) Кстат... Sep 23 2013, 06:26           Tarbal Цитата(Таратухин Сергей @ Sep 23 2013, 10... Sep 23 2013, 12:20            Таратухин Сергей Цитата(Tarbal @ Sep 23 2013, 18:20) Для ... Sep 23 2013, 12:45             Tarbal Цитата(Таратухин Сергей @ Sep 23 2013, 16... Sep 23 2013, 13:33              Таратухин Сергей Цитата(Tarbal @ Sep 23 2013, 19:33) Я не ... Oct 8 2013, 05:27               Tarbal Цитата(Таратухин Сергей @ Oct 8 2013, 09... Oct 8 2013, 12:21                Таратухин Сергей Цитата(Tarbal @ Oct 8 2013, 18:21) Вы пол... Oct 15 2013, 09:11                 Tarbal Цитата(Таратухин Сергей @ Oct 15 2013, 13... Oct 15 2013, 12:12                  Таратухин Сергей Цитата(Tarbal @ Oct 15 2013, 18:12) laten... Oct 16 2013, 11:30             sasamy Цитата(Таратухин Сергей @ Sep 23 2013, 16... Sep 23 2013, 13:38              AndrewN QUOTE (sasamy @ Sep 23 2013, 16:38) почем... Sep 23 2013, 21:51               A. Fig Lee Цитата(AndrewN @ Sep 23 2013, 17:51) Колл... Sep 24 2013, 00:34               Tarbal Цитата(AndrewN @ Sep 24 2013, 01:51) Колл... Sep 24 2013, 00:54                AndrewN QUOTE (Tarbal @ Sep 24 2013, 04:54) Цыпля... Sep 24 2013, 02:56                 Tarbal Цитата(AndrewN @ Sep 24 2013, 06:56) Упс.... Sep 24 2013, 03:12                 _3m Цитата(AndrewN @ Sep 24 2013, 06:56) Инте... Sep 24 2013, 06:17                  AndrewN QUOTE (_3m @ Sep 24 2013, 10:17) Такты сч... Sep 24 2013, 21:50                   Tarbal Цитата(AndrewN @ Sep 25 2013, 01:50) Пото... Sep 25 2013, 01:45      Tarbal Цитата(Таратухин Сергей @ Sep 20 2013, 13... Sep 20 2013, 12:30       Таратухин Сергей Цитата(Tarbal @ Sep 20 2013, 18:30) У люб... Sep 21 2013, 15:53        Tarbal Цитата(Таратухин Сергей @ Sep 21 2013, 19... Sep 21 2013, 16:39         Таратухин Сергей Цитата(Tarbal @ Sep 21 2013, 22:39) Ну то... Sep 23 2013, 11:54          Tarbal Цитата(Таратухин Сергей @ Sep 23 2013, 15... Sep 23 2013, 12:05           Таратухин Сергей Цитата(Tarbal @ Sep 23 2013, 18:05) Я поп... Sep 23 2013, 12:14 Tarbal Положим одна транзакция 100 бит. Значит при 80% за... Sep 19 2013, 01:13 A. Fig Lee Цитата(Таратухин Сергей @ Sep 18 2013, 05... Sep 20 2013, 12:11 Tarbal Отгадать не получится. Надо дебагировать. Oct 18 2013, 01:47 Grommerin Здравствуйте. Уже месяц бьюсь над такой-же проблем... Nov 3 2014, 12:02 ZASADA Цитата(Grommerin @ Nov 3 2014, 15:02) Здр... Nov 4 2014, 10:39 Grommerin Цитата(ZASADA @ Nov 4 2014, 13:39) вы неп... Nov 11 2014, 08:50 _3m Чтобы не начинать похожую тему напишу сюда.
Разыс... Apr 6 2016, 14:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|