IP Library › Granted Patent US 11,782,756
Granted Patent B2
US 11,782,756 · App. 17/069,289 · Granted Oct 10, 2023

Method and apparatus for scheduling processor core, and storage medium

Inventor: Jie Cheng (Guangdong, CN)
Assignee: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
G06F9/4881G06F9/3877G06F9/4401G06F9/44505G06F9/451G06F9/505G06F9/5027G06F9/541G06F11/3428G06F11/3433G06F11/3495
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,782,756
App. No.
17/069,289
Granted
Oct 10, 2023
Kind
B2
Abstract

A method and apparatus for scheduling a processor core and a medium are provided. The method is applied to a terminal. The method includes: sending, by a target application, a target request to the operating system by calling a first application programming interface (API) provided by an embedded software development kit (SDK), the target request being used to indicate the operating system to feed back core information of the processor, and the core information including a configuration condition of the first performance core and the second performance core; feeding back, by the operating system, the core information to the target application; and scheduling, by the target application, a target core to operate a process of the target application in a system calling way based on the core information.

Claims (98)

1. A method for scheduling a processor core, wherein the method is applied to a terminal, a processor in the terminal comprises at least one first performance core and at least one second performance core, a performance of the first performance core is higher than a performance of the second performance core, an operating system and at least one application run on the terminal, and the method comprises:

sending, by a target application, a target request to the operating system by calling a first application programming interface (API) provided by an embedded software development kit (SDK), the target request being used to indicate the operating system to feed back core information of the processor, and the core information comprising configuration conditions of the first performance core and the second performance core;

feeding, by the operating system, the core information back to the target application; and

scheduling, by the target application, a target core to operate a process of the target application via system calls based on the core information, comprising:

determining, by the target application, the target core corresponding to the process;

setting, by the target application, an affinity degree between the process and each core via system calls based on a core number of the target core and a process identifier of the process, wherein an affinity degree between the process and the target core is greater than an affinity degree between the process and another core; and

binding, by the operating system, the process and the target core based on the affinity degree, wherein the bound process operates on the target core.

2. The method of claim 1 , wherein the core information comprises a core type and a core number corresponding to each core, the core type comprises the first performance core and the second performance core.

3. The method of claim 2 , wherein determining, by the target application, the target core corresponding to the process comprises:

obtaining, by the target application, a current application scenario;

determining, by the target application, the first performance core as the target core under a case that the current application scenario belongs to a first performance application scenario; and

determining, by the target application, the second performance core as the target core under a case that the current application scenario belongs to a second performance application scenario;

wherein a performance requirement of the first performance application scenario for the processor is greater than a performance requirement of the second performance application scenario for the processor.

4. The method of claim 2 , wherein the core information comprises load information of each core; and

determining, by the target application, the target core corresponding to the process comprises:

obtaining, by the target application, a current application scenario;

determining, by the target application, a load of each core based on the load information;

determining, by the target application, the first performance core of which a load is lower than a load threshold as the target core under a case that the current application scenario belongs to a first performance application scenario; and

determining, by the target application, the second performance core of which a load is lower than the load threshold as the target core under a case that the current application scenario belongs to a second performance application scenario;

wherein a performance requirement of the first performance application scenario for the processor is greater than a performance requirement of the second performance application scenario for the processor.

5. The method of claim 1 , further comprising:

before sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

sending, by the target application, a scheduling request to the operating system by calling a second API provided by the embedded SDK, the scheduling request being used to indicate the operating system to feed back a difficulty level for operating the target application;

feeding, by the operating system, the difficulty level back to the target application;

sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK under a case that the difficulty level is greater than a preset level threshold; and

withholding from performing, by the target application, core scheduling under a case that the difficulty level is lower than the preset level threshold.

6. The method of claim 2 , further comprising:

before sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

sending, by the target application, a scheduling request to the operating system by calling a second API provided by the embedded SDK, the scheduling request being used to indicate the operating system to feed back a difficulty level for operating the target application;

feeding, by the operating system, the difficulty level back to the target application;

sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK under a case that the difficulty level is greater than a preset level threshold; and

withholding from performing, by the target application, core scheduling under a case that the difficulty level is lower than the preset level threshold.

7. The method of claim 3 , further comprising:

before sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

sending, by the target application, a scheduling request to the operating system by calling a second API provided by the embedded SDK, the scheduling request being used to indicate the operating system to feed back a difficulty level for operating the target application;

feeding, by the operating system, the difficulty level back to the target application;

sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK under a case that the difficulty level is greater than a preset level threshold; and

withholding from performing, by the target application, core scheduling under a case that the difficulty level is lower than the preset level threshold.

8. The method of claim 4 , further comprising:

before sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

sending, by the target application, a scheduling request to the operating system by calling a second API provided by the embedded SDK, the scheduling request being used to indicate the operating system to feed back a difficulty level for operating the target application;

feeding, by the operating system, the difficulty level back to the target application;

sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK under a case that the difficulty level is greater than a preset level threshold; and

withholding from performing, by the target application, core scheduling under a case that the difficulty level is lower than the preset level threshold.

9. The method of claim 1 , further comprising:

after sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

obtaining, by the operating system, an application identifier of the target application;

feeding, by the operating system, the core information back to the target application under a case that the application identifier of the target application belongs a preset application identifier list, the preset application identifier list comprising application identifiers of applications for supporting to perform core scheduling; and

withholding from responding, by the operating system, to the target request under a case that the application identifier of the target application does not belong the preset application identifier list.

10. The method of claim 2 , further comprising:

after sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

obtaining, by the operating system, an application identifier of the target application;

feeding, by the operating system, the core information back to the target application under a case that the application identifier of the target application belongs a preset application identifier list, the preset application identifier list comprising application identifiers of applications for supporting to perform core scheduling; and

withholding from responding, by the operating system, to the target request under a case that the application identifier of the target application does not belong the preset application identifier list.

11. The method of claim 3 , further comprising:

after sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

obtaining, by the operating system, an application identifier of the target application;

feeding, by the operating system, the core information back to the target application under a case that the application identifier of the target application belongs a preset application identifier list, the preset application identifier list comprising application identifiers of applications for supporting to perform core scheduling; and

withholding from responding, by the operating system, to the target request under a case that the application identifier of the target application does not belong the preset application identifier list.

12. The method of claim 4 , further comprising:

after sending, by the target application, the target request to the operating system by calling the first API provided by the embedded SDK:

obtaining, by the operating system, an application identifier of the target application;

feeding, by the operating system, the core information back to the target application under a case that the application identifier of the target application belongs a preset application identifier list, the preset application identifier list comprising application identifiers of applications for supporting to perform core scheduling; and

withholding from responding, by the operating system, to the target request under a case that the application identifier of the target application does not belong the preset application identifier list.

13. The method of claim 1 , further comprising:

after scheduling, by the target application, the target core to operate the process of the target application via system calls based on the core information,

scheduling, by the target application, the second performance core to operate the process via system calls under a case that a foreground operation is switched to a background operation.

14. The method of claim 2 , further comprising:

after scheduling, by the target application, the target core to operate the process of the target application via system calls based on the core information,

scheduling, by the target application, the second performance core to operate the process via system calls under a case that a foreground operation is switched to a background operation.

15. The method of claim 3 , further comprising:

after scheduling, by the target application, the target core to operate the process of the target application via system calls based on the core information,

scheduling, by the target application, the second performance core to operate the process via system calls under a case that a foreground operation is switched to a background operation.

16. The method of claim 4 , further comprising:

after scheduling, by the target application, the target core to operate the process of the target application via system calls based on the core information,

scheduling, by the target application, the second performance core to operate the process via system calls under a case that a foreground operation is switched to a background operation.

17. An apparatus for scheduling a processor core, wherein the apparatus is applied to a terminal, a processor in the terminal comprises at least one first performance core and at least one second performance core, a performance of the first performance core is higher than a performance of the second performance core, an operating system and at least one application run on the terminal, and the apparatus comprises:

one or more processors,

a memory storing instructions executable by the one or more processors,

wherein the one or more processors are configured to:

send a target request from a target application to the operating system by calling a first application programming interface (API) provided by an embedded software development kit (SDK), the target request being used to indicate the operating system to feed back core information of the processor, and the core information comprising configuration conditions of the first performance core and the second performance core;

feed the core information back to the target application; and

schedule a target core to operate a process of the target application via system calls based on the core information, comprising:

determine the target core corresponding to the process; and

set an affinity degree between the process and each core via system calls based on a core number of the target core and a process identifier of the process, wherein an affinity degree between the process and the target core is greater than an affinity degree between the process and another core; and

the operating system is configured to bind the process and the target core based on the affinity degree, wherein the bound process operates on the target core.

18. The apparatus of claim 17 , wherein the core information comprises a core type and a core number corresponding to each core, the core type comprises the first performance core and the second performance core.

19. The apparatus of claim 18 , wherein the one or more processors are configured to:

obtain a current application scenario;

determine the first performance core as the target core under a case that the current application scenario belongs to a first performance application scenario; and

determine the second performance core as the target core under a case that the current application scenario belongs to a second performance application scenario; wherein a performance requirement of the first performance application scenario for the processor is greater than a performance requirement of the second performance application scenario for the processor.

20. A non-transitory computer readable storage medium, wherein the non-transitory storage medium stores at least one instruction, when the at least one instruction is executed by a processor, the processor is caused to perform a method for scheduling a processor core, the method is applied to a terminal, a processor in the terminal comprises at least one first performance core and at least one second performance core, a performance of the first performance core is higher than a performance of the second performance core, an operating system and at least one application run on the terminal, and the method comprises:

sending, by a target application, a target request to the operating system by calling a first application programming interface (API) provided by an embedded software development kit (SDK), the target request being used to indicate the operating system to feed back core information of the processor, and the core information comprising configuration conditions of the first performance core and the second performance core;

feeding, by the operating system, the core information back to the target application; and

scheduling, by the target application, a target core to operate a process of the target application via system calls based on the core information, comprising:

determining, by the target application, the target core corresponding to the process;

setting, by the target application, an affinity degree between the process and each core via system calls based on a core number of the target core and a process identifier of the process, wherein an affinity degree between the process and the target core is greater than an affinity degree between the process and another core; and

binding, by the operating system, the process and the target core based on the affinity degree, wherein the bound process operates on the target core.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2020
From: CHENG, JIE
To: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
Reel/Frame 054041/0450 →
Priority Claims (1)
CN 201810362695.6 · Apr 20, 2018 · national
Continuity (2)
Continuation PCTCN2019083520 · Apr 19, 2019
Related Publication 20210026688A1 · Jan 28, 2021