[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [task #14420] Remove sys_sem_signal from inside SYS_ARCH_PR

From: Joel Cunningham
Subject: [lwip-devel] [task #14420] Remove sys_sem_signal from inside SYS_ARCH_PROTECT crit section
Date: Fri, 24 Mar 2017 11:21:47 -0400 (EDT)
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8


                 Summary: Remove sys_sem_signal from inside SYS_ARCH_PROTECT
crit section
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: jcunningham
            Submitted on: Fri 24 Mar 2017 03:21:46 PM UTC
                Category: socket/netconn
         Should Start On: Fri 24 Mar 2017 12:00:00 AM UTC
   Should be Finished on: Fri 24 Mar 2017 12:00:00 AM UTC
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None
                  Effort: 0.00



In event_callback(), the select infrastructure uses SYS_ARCH_PROTECT to
provide synchronization.  It calls sys_sem_signal() while inside the critical
section and this has worked with interrupt enable/disable implementations of
SYS_ARCH_PROTECT (and obviously mutex implementations).

Unfortunately this prevents using a spinlock in SMP systems for
SYS_ARCH_PROTECT because most spinlock implementations don't support
sleeping/task switch while holding the spinlock.

This could be solved by replacing select's use of SYS_ARCH_PROTECT with a


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]