> On Sep 7, 2017, at 9:14 AM, David Lockyer <david.lock...@chronos.co.uk> wrote: > > Hi Simon, > > Okay, thank you for the suggestion. Just to be clear are you suggesting > modifying lwip_select() to allocate select_cb from a pool & free prior to > return? > > I will have to investigate the speed impact of this, as I have > MEM_LIBC_MALLOC and MAEP_MEM_MALLOC both defined as 1. > > David > > >
Normally the MPU allocations that use dynamic memory are abstracted behind macros that use static memory in the !LWIP_MPU_COMPATIBLE case. Take a look at API_VAR_ALLOC for both LWIP_MPU_COMPATBILE and !LWIP_MPU_COMPATBILE cases Typically each allocation type has its own memory pool. Not sure if Simon is suggesting that as well. I know there’s been a hesitancy to add new memory pools Joel > > On 07/09/17 13:12, goldsimon wrote: >> Looks correct. I guess mpu mode is not used too often. My suggestion would >> probably be to get select_cb from a Memo pool... >> >> Simon >> >> >> Am 6. September 2017 16:12:47 MESZ schrieb David Lockyer >> <david.lock...@chronos.co.uk> <mailto:david.lock...@chronos.co.uk>: >> Hi, >> >> I have a project that uses an STM32F MCU running FreeRTOS (cortex mpu port) >> & lwip, with the MPU enabled. >> I'm upgrading to lwip 2.0.2 from lwip 1.4.1, that I had to customize to be >> compatible with the MPU, in particular in lwip_select(). >> >> The motivation was to use the LWIP_MPU_COMPATIBLE define, so a direct >> modification of the stack source was not required. However for me it still >> appears to try to access another threads memory, triggering an exception. >> >> The changes I had to make were: >> Index: lib/lwip-2.0.2/src/api/sockets.c >> =================================================================== >> --- lib/lwip-2.0.2/src/api/sockets.c (revision xxxxx) >> +++ lib/lwip-2.0.2/src/api/sockets.c (working copy) >> @@ -1428,7 +1428,9 @@ >> /* Put this select_cb on top of list */ >> select_cb.next = select_cb_list; >> if (select_cb_list != NULL) { >> + RAISE_PRIVILEGE(); >> select_cb_list->prev = &select_cb; >> + RESET_PRIVILEGE(); >> } >> select_cb_list = &select_cb; >> /* Increasing this counter tells event_callback that the list has >> changed. */ >> @@ -1508,7 +1510,9 @@ >> /* Take us off the list */ >> SYS_ARCH_PROTECT(lev); >> if (select_cb.next != NULL) { >> + RAISE_PRIVILEGE(); >> select_cb.next->prev = select_cb.prev; >> + RESET_PRIVILEGE(); >> } >> if (select_cb_list == &select_cb) { >> LWIP_ASSERT("select_cb.prev == NULL", select_cb.prev == NULL); >> @@ -1515,7 +1519,9 @@ >> select_cb_list = select_cb.next; >> } else { >> LWIP_ASSERT("select_cb.prev != NULL", select_cb.prev != NULL); >> + RAISE_PRIVILEGE(); >> select_cb.prev->next = select_cb.next; >> + RESET_PRIVILEGE(); >> } >> /* Increasing this counter tells event_callback that the list has >> changed. */ >> select_cb_ctr++; >> >> Is there something else I missed here that would remove the need for this >> modification? >> >> Kind regards, >> >> David Lockyer >> >> ______________________________________________________________________ >> This email has been scanned by the Symantec Email Security.cloud service. >> For more information please visit http://www.symanteccloud.com >> <http://www.symanteccloud.com/> >> ______________________________________________________________________ >> >> -- >> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet. >> ______________________________________________________________________ >> This email has been scanned by the Symantec Email Security.cloud service. >> For more information please visit http://www.symanteccloud.com >> <http://www.symanteccloud.com/> >> ______________________________________________________________________ >> >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org <mailto:lwip-users@nongnu.org> >> https://lists.nongnu.org/mailman/listinfo/lwip-users >> <https://lists.nongnu.org/mailman/listinfo/lwip-users> > > ______________________________________________________________________ > This email has been scanned by the Symantec Email Security.cloud service. > For more information please visit http://www.symanteccloud.com > ______________________________________________________________________ > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users
_______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users