#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 Mar 16, 2017 at 2:39:51 PM by Sebastian Huber

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.

comment:2 Changed on May 11, 2017 at 7:31:02 AM by Sebastian Huber

Milestone: 4.124.12.0

comment:3 Changed on Jun 8, 2017 at 7:42:07 AM by Sebastian Huber <sebastian.huber@…>

In f7a2dcf/rtems-docs:

bsp-howto: Warn about TERMIOS_TASK_DRIVEN

Update #2935.

comment:4 Changed on Jun 8, 2017 at 7:43:12 AM by Sebastian Huber

Resolution: wontfix
Status: newclosed

We should keep the task driven mode as is. Maybe remove it in the future.

comment:5 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

Note: See TracTickets for help on using tickets.