#2935 closed defect (wontfix)
Termios task driven mode not compatible with SMP
Reported by: | Martin Aberg | Owned by: | joel.sherrill@… |
---|---|---|---|
Priority: | normal | Milestone: | 5.1 |
Component: | score | Version: | 5 |
Severity: | normal | Keywords: | termios smp |
Cc: | Blocked By: | ||
Blocking: |
Description
When the Termios task driven functioning mode is used, rtems_termios_open_tty() calls rtems_task_create() with RTEMS_NO_PREEMPT in the initial task mode parameter. RTEMS_NO_PREEMPT is not supported on SMP.
rtems_task_create() returns RTEMS_UNSATISFIED in this SMP scenario and Termios ends up in rtems_fatal_error_occurred().
Termios starts the RX and TX tasks successfully on SMP if RTEMS_NO_PREEMPT is removed from the initial task modes of these tasks. However, I suspect there may be assumptions on the NO_PREEMPT mode for the RX and TX tasks in other parts of Termios.
Change History (5)
comment:1 Changed on 03/16/17 at 14:39:51 by Sebastian Huber
comment:2 Changed on 05/11/17 at 07:31:02 by Sebastian Huber
Milestone: | 4.12 → 4.12.0 |
---|
comment:3 Changed on 06/08/17 at 07:42:07 by Sebastian Huber <sebastian.huber@…>
comment:4 Changed on 06/08/17 at 07:43:12 by Sebastian Huber
Resolution: | → wontfix |
---|---|
Status: | new → closed |
We should keep the task driven mode as is. Maybe remove it in the future.
comment:5 Changed on 11/09/17 at 06:27:14 by Sebastian Huber
Milestone: | 4.12.0 → 5.1 |
---|
Milestone renamed
Note: See
TracTickets for help on using
tickets.
The task driven mode in general needs a review and possibly a re-implementation. A good alternative is the TERMIOS_IRQ_SERVER_DRIVEN mode in case the interrupt server is available.