IP Library Granted Patent US 12,277,431
Granted Patent B2
US 12,277,431 · App. 17/100,548 · Granted Apr 15, 2025

Data buffering method, data processing method, computer device, storage medium

Inventor: Jing Chen (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F9/45558G06F9/544G06F2009/45579G06F2009/45583G06F2009/45595
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 12,277,431
App. No.
17/100,548
Granted
Apr 15, 2025
Kind
B2
Abstract

A method including acquiring virtual location information of a virtual data buffer of a virtual network interface component; designating physical location information of a physical data buffer of a physical network interface component as the virtual location information; and storing data according to the virtual location information when the data is being stored into the physical data buffer. Since the physical location information of the physical data buffer of the physical network interface component is designated as the virtual location information instead of being determined via allocation by a physical device. Thus, the physical network interface component is capable of storing, upon receiving data, the data into a data buffer designated by the virtual network interface component, thereby eliminating the process of copying data from a data buffer designated by the physical network interface component to the data buffer designated by the virtual network interface component.

Claims (97)

1. A method comprising:

acquiring virtual location information of a virtual data buffer of a virtual network interface component;

creating an information queue composed of physical buffer control information;

creating a physical storage space;

designating physical location information of a physical data buffer of a physical network interface component as the virtual location information, without copying data from the physical data buffer to the virtual data buffer, the act of designating the physical location information including:

converting the virtual location information into a physical address; and

determining, according to the physical address, the physical location information of the physical data buffer, the act of determining the physical location information including adding the physical address to the physical buffer control information of the physical data buffer;

acquiring the physical buffer control information in the physical storage space;

creating a physical receiving queue of the physical network interface component, the physical receiving queue having a one-to-one mapping to the physical data buffer;

adding the physical buffer control information to the physical receiving queue;

storing data according to the virtual location information in response to storing the data into the physical data buffer, the act of storing including:

determining, according to the data, a virtual network interface component to which the data is to be sent;

acquiring, from the physical receiving queue corresponding to the virtual network interface component, the physical location information of the physical data buffer, the act of acquiring the physical location information including acquiring the physical buffer control information in the physical receiving queue, the physical buffer control information including the physical location information; and

storing the data according to the physical location information;

marking in the physical buffer control information that the data is received; and

notifying, according to the physical buffer control information, the virtual network interface component that the data is received.

2. The method according to claim 1 , wherein before the acquiring the virtual location information of the virtual data buffer of the virtual network interface component, the method further comprises:

allocating a virtual storage space for the virtual network interface component; and

determining virtual location information of multiple virtual data buffers in the virtual storage space.

3. The method according to claim 2 , wherein the determining the virtual location information of the multiple virtual data buffers in the virtual storage space comprises:

creating a virtual receiving queue of the virtual network interface component, the virtual receiving queue comprising virtual buffer control information;

acquiring, from the virtual storage space, the virtual location information; and

adding the virtual location information to the virtual buffer control information.

4. The method according to claim 3 , wherein the acquiring the virtual location information of the virtual data buffer of the virtual network interface component comprises:

performing detection on the virtual location information in the virtual receiving queue.

5. The method according to claim 4 , wherein before the performing detection on the virtual location information in the virtual receiving queue, the method further comprises:

receiving a notification that initialization of the virtual network interface component is completed.

6. The method according to claim 1 , wherein the adding the physical address to the physical buffer control information of the physical data buffer comprises:

acquiring the physical buffer control information in the information queue;

adding, in sequence, the physical address to the acquired physical buffer control information; and

storing the physical buffer control information into the physical storage space.

7. The method according to claim 1 , wherein the creating the physical storage space comprises creating an empty physical storage space.

8. An apparatus comprising:

one or more processors; and

one or more memories storing thereon computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising:

acquiring virtual location information of a virtual data buffer of a virtual network interface component;

creating an information queue composed of physical buffer control information;

creating a physical storage space;

designating physical location information of a physical data buffer of a physical network interface component as the virtual location information, without copying data from the physical data buffer to the virtual data buffer, the act of designating the physical location information including:

converting the virtual location information into a physical address; and

determining, according to the physical address, the physical location information of the physical data buffer, the act of determining the physical location information including adding the physical address to the physical buffer control information of the physical data buffer;

acquiring the physical buffer control information in the physical storage space;

creating a physical receiving queue of the physical network interface component, the physical receiving queue having a one-to-one mapping to the physical data buffer;

adding the physical buffer control information to the physical receiving queue;

storing data according to the virtual location information in response to storing the data into the physical data buffer, the act of storing including:

determining, according to the data, a virtual network interface component to which the data is to be sent;

acquiring, from the physical receiving queue corresponding to the virtual network interface component, the physical location information of the physical data buffer, the act of acquiring the physical location information including acquiring the physical buffer control information in the physical receiving queue, the physical buffer control information including the physical location information; and

storing the data according to the physical location information;

marking in the physical buffer control information that the data is received; and

notifying, according to the physical buffer control information, the virtual network interface component that the data is received.

9. The apparatus according to claim 8 , wherein before the acquiring the virtual location information of the virtual data buffer of the virtual network interface component, the acts further comprise:

allocating a virtual storage space for the virtual network interface component; and

determining virtual location information of multiple virtual data buffers in the virtual storage space.

10. The apparatus according to claim 9 , wherein the determining the virtual location information of the multiple virtual data buffers in the virtual storage space comprises:

creating a virtual receiving queue of the virtual network interface component, the virtual receiving queue comprising virtual buffer control information;

acquiring, from the virtual storage space, the virtual location information; and

adding the virtual location information to the virtual buffer control information.

11. The apparatus according to claim 10 , wherein the acquiring the virtual location information of the virtual data buffer of the virtual network interface component comprises:

performing detection on the virtual location information in the virtual receiving queue.

12. The apparatus according to claim 11 , wherein before the performing detection on the virtual location information in the virtual receiving queue, the acts further comprise:

receiving a notification that initialization of the virtual network interface component is completed.

13. The apparatus according to claim 8 , wherein the adding the physical address to the physical buffer control information of the physical data buffer comprises:

acquiring the physical buffer control information in the information queue;

adding, in sequence, the physical address to the acquired physical buffer control information; and

storing the physical buffer control information into the physical storage space.

14. The apparatus according to claim 8 , wherein the creating the physical storage space comprises creating an empty physical storage space.

15. One or more memories storing thereon computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform acts comprising:

acquiring virtual location information of a virtual data buffer of a virtual network interface component;

creating an information queue composed of physical buffer control information;

creating a physical storage space;

designating physical location information of a physical data buffer of a physical network interface component as the virtual location information, without copying data from the physical data buffer to the virtual data buffer, the act of designating the physical location information including:

converting the virtual location information into a physical address; and

determining, according to the physical address, the physical location information of the physical data buffer, the act of determining the physical location information including adding the physical address to the physical buffer control information of the physical data buffer;

acquiring the physical buffer control information in the physical storage space;

creating a physical receiving queue of the physical network interface component, the physical receiving queue having a one-to-one mapping to the physical data buffer;

adding the physical buffer control information to the physical receiving queue;

storing data according to the virtual location information in response to storing the data into the physical data buffer, the act of storing including:

determining, according to the data, a virtual network interface component to which the data is to be sent;

acquiring, from the physical receiving queue corresponding to the virtual network interface component, the physical location information of the physical data buffer, the act of acquiring the physical location information including acquiring the physical buffer control information in the physical receiving queue, the physical buffer control information including the physical location information; and

storing the data according to the physical location information;

marking in the physical buffer control information that the data is received; and

notifying, according to the physical buffer control information, the virtual network interface component that the data is received.

16. The one or more memories according to claim 15 , wherein before the acquiring the virtual location information of the virtual data buffer of the virtual network interface component, the acts further comprise:

allocating a virtual storage space for the virtual network interface component; and

determining virtual location information of multiple virtual data buffers in the virtual storage space.

17. The one or more memories according to claim 16 , wherein the determining the virtual location information of the multiple virtual data buffers in the virtual storage space comprises:

creating a virtual receiving queue of the virtual network interface component, the virtual receiving queue comprising virtual buffer control information;

acquiring, from the virtual storage space, the virtual location information; and

adding the virtual location information to the virtual buffer control information.

18. The one or more memories according to claim 17 , wherein the acquiring the virtual location information of the virtual data buffer of the virtual network interface component comprises:

performing detection on the virtual location information in the virtual receiving queue.

19. The one or more memories according to claim 18 , wherein before the performing detection on the virtual location information in the virtual receiving queue, the acts further comprise:

receiving a notification that initialization of the virtual network interface component is completed.

20. The one or more memories according to claim 15 , wherein the adding the physical address to the physical buffer control information of the physical data buffer comprises:

acquiring the physical buffer control information in the information queue;

adding, in sequence, the physical address to the acquired physical buffer control information; and

storing the physical buffer control information into the physical storage space.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2021
From: CHEN, JING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 055340/0561 →
Priority Claims (1)
CN 201810539153.1 · May 30, 2018 · national
Continuity (2)
Continuation PCTCN2019087799 · May 21, 2019
Related Publication 20210103459A1 · Apr 8, 2021
References Cited (55)
US 7356818B2 · Carollo et al. · 2008 [cited by applicant]
US 7657659B1 · Lambeth · 2010 [cited by applicant]
US 7733890B1 · Droux et al. · 2010 [cited by applicant]
US 7984123B2 · Tripathi et al. · 2011 [cited by applicant]
US 8174984B2 · Tripathi et al. · 2012 [cited by applicant]
US 8683000B1 · Schlansker et al. · 2014 [cited by applicant]
US 8739179B2 · Tripathi · 2014 [cited by applicant]
US 9608940B2 · Chan et al. · 2017 [cited by applicant]
US 10178054B2 · Palermo et al. · 2019 [cited by applicant]
US 20050204058A1 · Philbrick · 2005 [cited by examiner]
US 20060288129A1 · Pope · 2006 [cited by examiner]
US 20070061492A1 · Van Riel · 2007 [cited by applicant]
US 20070162572A1 · Aloni · 2007 [cited by examiner]
US 20090183180A1 · Nelson · 2009 [cited by examiner]
US 20100223419A1 · Cardona · 2010 [cited by examiner]
US 20120311597A1 · Manula · 2012 [cited by examiner]
US 20120331250A1 · Nelson · 2012 [cited by examiner]
US 20140143366A1 · Thakkar · 2014 [cited by examiner]
US 20140219287A1 · Birke et al. · 2014 [cited by applicant]
US 20140280674A1 · Arramreddy · 2014 [cited by examiner]
US 20140344488A1 · Flynn · 2014 [cited by examiner]
US 20150200866A1 · Pope · 2015 [cited by examiner]
US 20150370586A1 · Cooper · 2015 [cited by examiner]
US 20160266925A1 · Wei · 2016 [cited by applicant]
US 20160283421A1 · Wilson · 2016 [cited by examiner]
US 20160306645A1 · Serebrin · 2016 [cited by examiner]
US 20170024341A1 · Davda · 2017 [cited by examiner]
US 20170123835A1 · Mizuno · 2017 [cited by examiner]
US 20170161090A1 · Kodama · 2017 [cited by examiner]
US 20170289068A1 · Palermo et al. · 2017 [cited by applicant]
CN 102467408A · 2012 [cited by applicant]
CN 103346981A · 2013 [cited by applicant]
CN 103677674A · 2014 [cited by applicant]
CN 106612306A · 2017 [cited by applicant]
CN 107608806A · 2018 [cited by applicant]
CN 107995129A · 2018 [cited by applicant]
CN 108243118A · 2018 [cited by applicant]
JP 2013196138A · 2013 [cited by applicant]
JP 2014531093A · 2014 [cited by applicant]
English translation of International Search Report mailed Aug. 5, 2019, from corresponding PCT Application No. PCT/CN2019/087799, 2 pages. [cited by applicant]
English translation of Written Opinion mailed Aug. 5, 2019, from corresponding PCT Application No. PCT/CN2019/087799, 7 pages. [cited by applicant]
Dong, et al, “High performance network virtualization with SR-IOV”, High Performance Computer Architecture, 2010 IEEE 16th International Symposium, Jan. 9, 2010, pp. 1-10. [cited by applicant]
Extended European Search Report mailed Jan. 31, 2022 for European Patent Application No. 19811105.6, 9 pages. [cited by applicant]
Kalman, et al, “Zero-copy Receive for vhost”, retrieved from <<https://events17.linuxfoundation.org/sites/events/files/slides/Zero-copy%20receive%20for%20vhost.pdf>>, Nov. 20, 2017, pp. 1-18. [cited by applicant]
Rapoport, “Zero-Copy Receive for vhost”, retrieved from <<https://www.youtube.com/watch?v=szA5h7od634>>, Nov. 20, 2017, 2 pages. [cited by applicant]
Tianhua, et al, “The Design and Implementation of Zero-Copy for Linux”, Intelligent Systems Design and Applications, 2008 IEEE Eighth International Conference, Nov. 26, 2008, pp. 121-126. [cited by applicant]
Translation of Chinese First Office Action for corresponding Chinese application No. CN201810539153 dated Sep. 26, 2022, 10 pages. [cited by applicant]
Translation of Chinese Search Report for Corresponding Chinese Application CN201810539153 dated Sep. 19, 2022, 1 page. [cited by applicant]
The European Office Action mailed May 19, 2023 for European patent application No. 19811105.6, a foreign counterpart of U.S. Appl. No. 17/100,548, 6 pages. [cited by applicant]
Japanese Office Action mailed Jul. 18, 2023 for Japanese Patent Application No. 2020-566722, a foreign counterpart to U.S. Appl. No. 17/100,548, 9 pages. [cited by applicant]
Mike Rapoport, Zero copy receive for vhost, https://www.youtube.com/watch?v=szA5h7od634, dated Nov. 20, 2017. [cited by applicant]
Translation of Chinese 1st Search Report for corresponding Chinese application No. 201810539153 dated Sep. 26, 2022, 1 page. [cited by applicant]
Translation of Chinese 2nd Office Action for corresponding Chinese application No. 201810539153 dated Feb. 24, 2023, 10 pages. [cited by applicant]
Translation of Chinese Office Action for corresponding Chinese application No. 201810539153 dated May 26, 2023, 6 pages. [cited by applicant]
Office Action for European Application No. 19811105.6, Dated Jul. 16, 2024, 5 pages. [cited by applicant]
Cited By (1)
US 12,608,132