zephyr/subsys/net/lib/lwm2m
Michael Scott 42abfc6532 net: lwm2m: dont use system workqueue for services
"It's a Trap!" -- Admiral Ackbar

When moving to the BSD-socket APIs, the original thread running LwM2M
periodic services such as observes and lifetime updates, was replaced
with a re-occuring workqueue job.  To save the overhead of creating a
new thread, I used the system workqueue for these jobs.

This was a mistake.  If these jobs hit a semaphore or wait for some
reason, it cannot be prempted due to the priority of the system work
queue.

Let's instead add this service handling to the thread that we already
use for polling sockets.  This also removes a configuration issue where
the system workqueue stack size needed to be increased.  This can now
be adjusted via the LWM2M_ENGINE_STACK_SIZE knob.

Directly fixes semaphore usage in the socket-based DNS code.
This was introduced as a bugfix for non-responsive DNS server hanging
the Zephyr device forever.  However, this probably fixes randomly
seeming hangs on the device.

Signed-off-by: Michael Scott <mike@foundries.io>
2019-04-10 13:54:23 -04:00
..
buf_util.h net: lwm2m: move to flat buffers 2019-01-31 23:02:56 -05:00
CMakeLists.txt license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
ipso_light_control.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
ipso_temp_sensor.c net: lwm2m: remove some unnecessary includes 2019-01-30 10:35:54 +02:00
ipso_timer.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
Kconfig net: lwm2m: raise stack sizes 2019-03-15 06:57:50 -05:00
Kconfig.ipso kconfig: subsys: net: Remove redundant dependencies 2019-03-09 09:49:59 -05:00
lwm2m_engine.c net: lwm2m: dont use system workqueue for services 2019-04-10 13:54:23 -04:00
lwm2m_engine.h net: lwm2m: migrate LwM2M library to BSD-sockets API 2019-01-31 23:02:56 -05:00
lwm2m_obj_device.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
lwm2m_obj_firmware.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
lwm2m_obj_firmware_pull.c net: lwm2m: migrate LwM2M library to BSD-sockets API 2019-01-31 23:02:56 -05:00
lwm2m_obj_security.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
lwm2m_obj_server.c net: lwm2m: support for LwM2M bootstrap 2019-01-31 23:02:56 -05:00
lwm2m_object.h net: lwm2m: guard obj_field parameter of LWM2M_HAS_PERM 2019-03-15 06:57:50 -05:00
lwm2m_rd_client.c net: lwm2m: remove unnecessary check in sm_do_registration() 2019-03-15 06:57:50 -05:00
lwm2m_rd_client.h net: lwm2m: support for LwM2M bootstrap 2019-01-31 23:02:56 -05:00
lwm2m_rw_json.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
lwm2m_rw_json.h net: lwm2m: add JSON formatter for WRITE operations 2019-01-31 23:02:56 -05:00
lwm2m_rw_oma_tlv.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
lwm2m_rw_oma_tlv.h net: lwm2m: refactor lwm2m_engine_context into lwm2m_message 2019-01-30 10:35:54 +02:00
lwm2m_rw_plain_text.c all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
lwm2m_rw_plain_text.h net: lwm2m: refactor lwm2m_engine_context into lwm2m_message 2019-01-30 10:35:54 +02:00
lwm2m_util.c net: lwm2m: fix float exponent after fraction assign 2019-02-26 01:45:51 +01:00
lwm2m_util.h net: lwm2m: fix float32/64 handling 2019-02-12 21:19:49 -05:00