External Sibling Call Context Suppression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing environments restrict sibling calls (sibcalls) to local callees, limiting their effectiveness due to the inability to determine whether a call is to an external sibling routine, leading to incorrect context restoration and performance issues.
Innovation Solution
A method to determine if a routine call is potentially to an external sibling routine, suppressing context information saving and using a stub to transfer control without storing context, allowing for efficient external sibcalls by marking sibcallers and using relocation entries to indicate potential external calls.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sibling calls are restricted to local callees only, then context information can be safely saved and restored, but the effectiveness and performance improvement of sibling calls is limited
Solution Approach 1:
The patent makes the context saving behavior dynamic by detecting at runtime whether the sibcaller was called locally or externally. The system adjusts its behavior based on the actual call context: saving context information when called locally and suppressing it when called externally, thereby adapting to different execution scenarios to enable external sibling calls while maintaining correctness.
Solution Approach 2:
The patent changes the parameter of context information saving from a static compile-time decision to a dynamic runtime decision. By using runtime detection mechanisms (such as checking the call stack or using special registers), the system determines whether to save context based on the actual calling context, enabling external sibling calls to work correctly.
2Reliability
If context information is saved for potentially external sibling calls, then correct restoration is possible, but code complexity and overhead increase
Solution Approach 1:
The patent extracts the context saving logic from the standard sibling call mechanism by introducing a separate detection and decision-making process. Instead of always saving context, the system extracts only the necessary context saving operations based on runtime detection, thereby reducing unnecessary overhead while maintaining reliability for external sibling calls.
Solution Approach 2:
The patent implements dynamic context saving by detecting the actual call context at runtime. The system only saves context information when the sibcaller is determined to have been called locally, and suppresses context saving when called externally, thereby reducing code complexity and overhead while maintaining correctness.
3Adaptability or versatility
If sibling calls are made to external routines, then versatility is improved, but the ability to determine call origin and restore context correctly is lost
Solution Approach 1:
The patent performs preliminary detection of the call context before executing the sibling call. By detecting whether the sibcaller was called locally or externally at the time of the sibling call instruction, the system can preliminarily determine whether to save context information, thereby preserving necessary call context information for external sibling calls.
Solution Approach 2:
The patent uses feedback mechanisms to determine the call origin. By monitoring runtime information such as the call stack, register states, or special markers, the system receives feedback about whether the sibcaller was called locally or externally, and uses this feedback to make informed decisions about context saving and restoration.
Data Source
AI summary
Optimizations are provided for sibling calls. A sibling caller is marked to indicate that it may call a sibling routine or that it may call an external sibling routine. Based on the marking, certain processing is performed to facilitate use of sibling calls, particularly when the sibling routine being called is external to the caller.


