You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2022/03/15 09:48:18 UTC

[GitHub] [incubator-nuttx] anchao edited a comment on pull request #5645: arch/arm: optimize context switch speed

anchao edited a comment on pull request #5645:
URL: https://github.com/apache/incubator-nuttx/pull/5645#issuecomment-1067769263


   > Did you fix the issue with lm3s6965-ek:qemu-kostest (QEMU) ? The issue still happens.
   
   @masayuki2009 san,
   
   In the previous implementation, I did not consider the signal delivery in the interrupt context without interrupt stack,
   If signal processing occurs in the interrupt context, we will reserve an area of XCPCONTEXT_SIZE from the current stack as the signal context. However, if the interrupt stack is not enabled, the reserved area on the stack will be overlapped with the interrupt area, which leads to the current issue of lm3s6965-ek:qemu-kostest (CONFIG_ARCH_INTERRUPTSTACK=0)
   
   Therefore, the solution is that if the interrupt stack is disabled, reserve an signal xcpcontext to ensure signal processing can have a separate xcpcontext to handle signal context.
   
   
   https://github.com/apache/incubator-nuttx/pull/5645/commits/dffd8f613458fe06c77ab336dc4f46714b6e13b8#diff-31f02252f0714ae3f268b632eebec6f1dff7369c6caaa8625fcf597612ecd694R203-R230
   ```
   	/* If the interrupt stack is disabled, reserve xcpcontext to ensure
   	 * that signal processing can have a separate xcpcontext to handle
   	 * signal context (reference: arm_schedulesigaction.c):
   	 *      ----------------------
   	 *     |    IRQ XCP context   |
   	 *      -------------------
   	 *     |  Signal XCP context  |
   	 *      ----------------------   <- SP
   	 */
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org