US 12,468,570 B2
Asymmetric central processing unit (CPU) sharing with a containerized service hosted in a data storage system
Roy Koren, Kfar Saba (IL); Vladimir Shveidel, Pardes-Hana (IL); Itai Shavit, Ramat Gan (IL); Peleg Vigodny, Meona (IL); Leron Fliess, Kiryat Ono (IL); and Philip Love, Goleta, CA (US)
Assigned to Dell Products L.P., Round Rock, TX (US)
Filed by Dell Products L.P., Round Rock, TX (US)
Filed on Jul. 7, 2022, as Appl. No. 17/859,101.
Prior Publication US 2024/0012679 A1, Jan. 11, 2024
Int. Cl. G06F 9/48 (2006.01); G06F 9/38 (2018.01); G06F 9/50 (2006.01)
CPC G06F 9/4881 (2013.01) [G06F 9/3877 (2013.01); G06F 9/5038 (2013.01); G06F 9/505 (2013.01)] 9 Claims
OG exemplary drawing
 
1. A method comprising:
allocating a shared portion of a plurality of processor cores in a data storage system, wherein processor cores in the shared portion of the processor cores are shared between a storage system application located in the data storage system and a containerized service also located in the data storage system;
allocating a non-shared portion of the processor cores, wherein processor cores in the non-shared portion of the processor cores are used exclusively by the storage system application;
using, by the storage system application, processor cores in the shared portion of the processor cores to execute background tasks performed by the storage system application, wherein using processor cores in the shared portion of the processor cores to execute the background tasks performed by the storage system application includes:
determining a total number of processor cores currently needed to execute the background tasks performed by the storage system application, and
in response to determining that the total number of processor cores currently needed to execute the background tasks performed by the storage system application is not greater than a total number of processor cores within the shared portion of the processor cores, using only processor cores that are within the shared portion of the processor cores to execute the background tasks performed by the storage system application;
using, by the storage system application, while only processor cores that are within the shared portion of the processor cores are simultaneously being used to execute the background tasks performed by the storage system application, processor cores in the non-shared portion of the processor cores to execute host Input/Output (I/O) request processing performed by the storage system application;
wherein the containerized service provides a file-based data storage service to one or more hosts;
wherein the storage system application provides a block-based data storage service to one or more hosts;
in response to determining that the total number of processor cores currently needed to execute the background tasks performed by the storage system application is currently less than the total number of processor cores within the shared portion of the processor cores, using all processor cores that are within the non-shared portion of the processor cores and at least one processor core within the shared portion of the processor cores that is not currently being used to execute the background tasks performed by the storage system application to execute host I/O request processing performed by the storage system application;
assigning an amount of host I/O request processing to the at least one processor core within the shared portion of the processor cores that is smaller than an amount of host I/O request processing that is assigned to the processor cores within the non-shared portion of the processor cores;
periodically yielding, by the storage system application, at least one of the processor cores in the shared portion of the processor cores for preferred execution of the containerized service with respect to execution of the storage system application, wherein a frequency at which the storage system application yields the at least one processor core in the shared portion of the processor cores for preferred execution of the containerized service with respect to execution of the storage system application is increased in response to detecting a high load on the containerized service; and
whereby using processor cores within the shared portion of the processor cores to execute the background tasks performed by the storage system application and processor cores within the non-shared portion of the processor cores to execute host I/O request processing performed by the storage system application advantageously improves processor core utilization while also avoiding undesirable increases in host I/O request processing latency that would result from execution of host I/O request processing being interrupted by execution of the containerized service on the processor cores within the shared portion of the processor cores.