|
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 |
URL: <http://savannah.nongnu.org/task/?14420> 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 _______________________________________________________ Details: 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 mutex _______________________________________________________ Reply to this item at: <http://savannah.nongnu.org/task/?14420> _______________________________________________ Message sent via/by Savannah http://savannah.nongnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |