Share Lock Counter Management for Multi-Core Storage Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional mutexes for multi-core storage processors cause 'cache trashing' when releasing share locks, leading to inefficiency due to invalidation of cache regions as share lock counters are decremented by incorrect CPU cores.
Innovation Solution
The improved technique manages resources by decrementing share lock counters associated with the CPU cores that release the share locks, rather than the cores that acquired them, ensuring each CPU core updates its own counter, thus avoiding cache trashing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional mutexes decrement share lock counters of the original acquiring CPU cores, then accurate tracking of share locks is maintained, but cache trashing occurs and system efficiency deteriorates
Solution Approach 1:
The patent inverts the conventional approach by having the releasing CPU core decrement its own mutex sub-object's share lock counter instead of decrementing the counter of the original acquiring core. This inversion eliminates cache trashing because each core only modifies its own cached data, while still maintaining accurate tracking of share lock states through the cumulative counter values.
2Loss of information
If share lock counters are updated in per-core mutex sub-objects, then precise per-core tracking is achieved, but cache invalidation propagates across cores causing performance degradation
Solution Approach 1:
The patent applies local quality by allowing each CPU core to independently manage and modify only its own mutex sub-object's share lock counter in its local cache. This localized modification approach eliminates the need for widespread cache invalidation across all cores, as each core's cache changes are independent and do not require synchronization with other cores' caches.
3Adaptability or versatility
If mutex sub-objects are instantiated for each CPU core, then parallel access management is enabled, but cache coherence issues arise when cores modify different sub-objects
Solution Approach 1:
The patent segments the mutex management into separate mutex sub-objects for each CPU core, where each sub-object contains a share lock counter specific to that core. This segmentation allows each core to independently modify its own sub-object without affecting the cache coherence of other cores' sub-objects, enabling parallel access while maintaining cache stability.
Data Source
AI summary
A technique for managing resources on a storage array having multiple CPU cores releases share locks on a resource by decrementing share lock counters associated with the CPU cores that release the share locks, regardless of whether these are the same as the CPU cores that acquired the share locks. As each CPU core changes its own share lock counter, cache trashing caused by changing share lock counters associated with other CPU cores can be avoided.


