IP Library Patent Application 18921640
Patent Application
App. No. 18/921,640

SERVER DELAY CONTROL DEVICE, SERVER DELAY CONTROL METHOD, AND PROGRAM

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 None
App. No.
18/921,640
Abstract

Provided is a device including: computing hardware including one or more central processing units (CPUs); and an operating system (OS) implemented on the computing hardware and comprising a kernel. The device is configured to perform packet processing according to New API (NAPI) polling model in the kernel of the OS.

Claims (80)

1 . A device comprising: computing hardware including one or more central processing units (CPUs); and an operating system (OS) implemented on the computing hardware and comprising a kernel,

wherein the device is configured to perform packet processing according to New API (NAPI) polling model in the kernel of the OS.

2 . The device according to claim 1 ,

wherein the kernel is configured to execute a kernel thread occupying a specific CPU of the one or more CPUs in the kernel, and

wherein the kernel thread is configured to perform the packet processing according to NAPI polling model.

3 . The device according to claim 2 ,

wherein the kernel comprises a ring buffer for storing arrived packets, and

wherein the kernel thread is configured to:

monitor packet arrivals to the ring buffer according to NAPI polling model, and

when an arrival of a packet to the ring buffer is detected by the kernel thread, retrieve, from the ring buffer, the packet whose arrival to the ring buffer is detected,

4 . The device according to claim 3 ,

wherein the kernel further comprises a poll list in which packet arrival information is to be registered, the packet arrival information being indicative of an arrival of a packet to the ring buffer, and

wherein the kernel thread is configured to monitor the poll list to monitor the packet arrivals to the ring buffer according to NAPI polling model.

5 . The device according to claim 2 ,

wherein the kernel is further configured to execute a plurality of kernel threads, including the kernel thread, each occupying a respective one of the one or more CPUs and configured to perform the packet processing according to NAPI polling model, and

wherein the kernel is configured to allocate CPUs to the plurality of kernel threads such that a number of the CPUs allocated to the plurality of kernel threads is varied according to an amount of incoming packets.

6 . The device according to claim 3 ,

wherein the kernel thread is further configured to analyze a content of the packet retrieved from the ring buffer and assign processing to a subsequent processing part of the kernel in a manner depending on a type of the packet retrieved from the ring buffer.

7 . The device according to claim 2 ,

wherein the kernel starts the kernel thread by being applied a kernel patch without rebooting the OS.

8 . The device according to claim 2 ,

wherein the device further includes a virtual machine implemented on the computing hardware,

wherein the OS is a Guest OS operating on the virtual machine,

wherein the kernel comprises a ring buffer for storing arrived packets,

wherein the ring buffer is managed by the kernel, in a memory space in which the Guest OS is deployed, and

wherein the kernel thread is further configured to:

monitor packet arrivals to the ring buffer according to NAPI polling model; and

when an arrival of a packet to the ring buffer is detected by the kernel thread, retrieve, from the ring buffer, the packet whose arrival to the ring buffer is detected.

9 . The device according to claim 2 ,

wherein the OS is a Host OS implemented on the computing hardware, on which Host OS a virtual machine and an external process formed outside the virtual machine can operate,

wherein the Host OS comprises a ring buffer for storing arrived packets,

wherein the ring buffer is managed by the kernel, in a memory space in which the Host OS is deployed, and

wherein the kernel thread is further configured to:

monitor packet arrivals to the ring buffer according to NAPI polling model; and

when an arrival of a packet to the ring buffer is detected by the kernel thread, retrieve, from the ring buffer, the packet whose arrival to the ring buffer is detected.

10 . A device control method to be executed by a device comprising: computing hardware including one or more central processing units (CPUs); and an operating system (OS) implemented on the computing hardware and comprising a kernel, the kernel comprising a ring buffer for storing arrived packets, the device control method comprising steps of:

executing, by the kernel, a kernel thread occupying a specific CPU of the one or more CPUs in the kernel;

monitoring, by the kernel thread, packet arrivals to the ring buffer according to New API (NAPI) polling model; and

when an arrival of a packet to the ring buffer is detected, retrieving, by the kernel thread, the packet whose arrival to the ring buffer is detected, from the ring buffer.

11 . A non-transitory computer-readable medium storing a computer program of a device comprising: computing hardware including one or more central processing units (CPUs); and an operating system (OS) implemented on computing hardware and comprising a kernel, the computer program causing the device to perform packet processing according to New API (NAPI) polling model in the kernel of the OS.

12 . The non-transitory computer-readable medium according to claim 11 ,

wherein the packet processing according to New API (NAPI) polling mode comprises steps of:

executing, by the kernel, a kernel thread occupying a specific CPU of the one or more CPUs in the kernel,

monitoring, by the kernel thread, packet arrivals to the ring buffer according to NAPI polling model, and

when an arrival of a packet to the ring buffer is detected, retrieving, by the kernel thread the packet whose arrival to the ring buffer is detected, from the ring buffer.

13 . A server delay control device deployed in a kernel of an operating system (OS) of a server implemented on a computer comprising one or more central processing units (CPUs),

wherein the OS comprises:

the kernel;

a ring buffer managed by the kernel, in a memory space in which the server deploys the OS; and

a poll list in which packet arrival information is to be registered, the packet arrival information being indicative of an arrival of a packet to the ring buffer,

wherein the server delay control device is configured to execute a kernel thread in the kernel, the kernel thread configured to monitor a packet arrival according to New API (NAPI) polling model, and

wherein the server delay control device comprises:

a packet arrival monitoring part configured to monitor from the kernel thread whether the packet arrival information has been registered in the poll list; and

a packet dequeuer configured to, when the packet arrival information has been registered in the poll list, dequeue the packet from the ring buffer on the basis of the packet arrival information.

14 . The server delay control device according to claim 13 ,

wherein the OS is a Guest OS configured to operate in a virtual machine of the server, and

wherein the Guest OS further comprises a protocol processor configured to perform protocol processing on the packet dequeued from the ring buffer.

15 . The server delay control device according to claim 13 ,

wherein the OS is a Host OS on which a virtual machine and an external process formed outside the virtual machine can operate, and

wherein the Host OS further comprises a TAP device, which is a virtual interface created by the kernel.

16 . The server delay control device according to claim 13 ,

wherein the server delay control device is deployed in the kernel to start the kernel thread by applying a kernel patch to the kernel without rebooting the OS.

17 . A server delay control method to be executed by a server delay control device deployed in a kernel of an OS of a server implemented on a computer comprising one or more hardware processors,

wherein the OS comprises:

the kernel;

a ring buffer managed by the kernel, in a memory space in which the server deploys the OS; and

a poll list in which packet arrival information is to be registered, the packet arrival information being indicative of an arrival of a packet to the ring buffer,

wherein the server delay control device is configured to execute a kernel thread configured to monitor a packet arrival according to New API (NAPI) polling model, and

wherein the server delay control method comprises steps of:

monitoring, by the kernel thread, whether the packet arrival information has been registered in the poll list according to NAPI polling model; and

when the packet arrival information has been registered in the poll list, dequeuing, by the kernel thread, the packet from the ring buffer on the basis of the packet arrival information.

18 . A non-transitory computer-readable medium storing a computer program of a server delay control device deployed in a kernel of an OS of a server implemented using a computer comprising one or more hardware processors,

wherein the OS comprises:

the kernel;

a ring buffer managed by the kernel, in a memory space in which the server deploys the OS; and

a poll list in which packet arrival information is to be registered, the packet arrival information being indicative of an arrival of a packet to the ring buffer,

wherein the server delay control device is configured to execute a kernel thread configured to monitor a packet arrival according to New API (NAPI) polling model, and

wherein the computer program causes the computer to perform steps of:

monitoring, by the kernel thread, whether the packet arrival information has been registered in the poll list according to NAPI polling model; and

when the packet arrival information has been registered in the poll list, dequeuing, by the kernel thread, the packet from the ring buffer on the basis of the packet arrival information.

Assignments (2)
CHANGE OF NAME Recorded Aug 14, 2025
From: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
To: NTT, INC.
Reel/Frame 072468/0951 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2024
From: FUJIMOTO, KEI
To: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
Reel/Frame 069495/0772 →