IP Library Granted Patent US 10,038,652
Granted Patent B2
US 10,038,652 · App. 15/251,935 · Granted Jul 31, 2018

Self tuning buffer allocation in a shared-memory switch

Inventors: Anoop Ghanwani (Roseville, CA); Shivakumar Sundaram (Chennai, IN); Aravind Babu Mahendrababu (Chennai, IN); Avinash Natarajan (Chennai, IN)
Assignee: Dell Products L.P.
H04L49/9047H04L49/103
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 10,038,652
App. No.
15/251,935
Granted
Jul 31, 2018
Kind
B2
Abstract

An N-port, shared-memory switch allocates a shared headroom buffer pool (Ps) for a priority group (PG). Ps is smaller than a worst case headroom buffer pool (Pw), where Pw equals the sum of worst case headrooms corresponding to each port-priority tuple (PPT) associated with the PG. Each worst case headroom comprises headroom required to buffer worst case, post-pause, traffic received on that PPT. Subject to a PPT maximum, each PPT may consume Ps as needed. Because rarely will all PPTs simultaneously experience worst case traffic, Ps may be significantly smaller than Pw, e.g., Ps<(Pw/A) where M>=2. Ps may be size-adjusted based on utilization of Ps, without halting traffic to or from the switch. If Ps utilization exceeds an upper utilization threshold, Ps may be increased, subject to a maximum threshold (Pmax). Conversely, if utilization falls below a lower utilization threshold, Ps may be decreased.

Claims (59)

1. A switching method for a shared-memory switch comprising a plurality of ports supporting a plurality of priority levels, the method comprising:

for each port-priority tuple (PPT) associated with a priority group (PG), estimating a worst case headroom (Hw) for a connection to a peer, wherein the shared-memory switch supports a pause command to suspend traffic via the connection and wherein each worst cast headroom is indicative of a headroom buffer required to buffer PPT traffic received from the peer via the connection;

allocating a shared headroom buffer pool (Ps) shared by all PPTs in the priority group, wherein Ps is less than a worst case headroom buffer pool (Pw), and Pw is equal to the sum of each Hw corresponding to a PPT within the priority group; and

subject to a PPT maximum, permitting any particular PPT in the priority group to consume Ps as needed for traffic received after sending a pause command.

2. The method of claim 1 , wherein the PPT maximum for a particular PPT comprises the worst case headroom, Hw, for the particular PPT.

3. The method of claim 1 , further comprising:

monitoring utilization of Ps; and

adjusting Ps in accordance with the utilization.

4. The method of claim 3 , wherein adjusting Ps comprises:

responsive to detecting the utilization of Ps exceeding a high utilization threshold, increasing Ps, subject to a maximum shared headroom buffer pool (Pmax); and

responsive to detecting the utilization less than a low utilization threshold, decreasing Ps, subject to a minimum shared headroom buffer pool (Pmin);.

5. The method of claim 4 , wherein increasing Ps comprises:

determining a headroom increase corresponding to the product of Ps and an increase factor; and

subject to Pmax, increasing Ps by the headroom increase.

6. The method of claim 5 , wherein decreasing Ps comprises:

determining an un-utilized portion of Ps;

determining a shared headroom buffer pool reduction comprising a product of the un-utilized portion and a reduction factor; and

subject to Pmin, releasing a portion of Ps equal to shared headroom buffer pool reduction.

7. The method of claim 6 , wherein the low utilization threshold is 0.8, the reduction factor is 0.5, the high utilization threshold is 0.9, and the increase factor is 1.1.

8. The method of claim 4 , wherein Pmax is equal to Pw and wherein Pmin is equal to N maximum transmission units (MTUs) where N is the number of PPTs associated with the PG.

9. The method of claim 4 , wherein the shared memory switching includes at least one configuration register indicative of Ps and wherein adjusting Ps includes modifying a value of the at least one configuration register without halting packet traffic.

10. An information handling system comprising:

an embedded controller;

a plurality of ports;

a shared-memory switch;

a switching fabric, controlled by the embedded controller, interconnecting the plurality of ports; and

a computer readable medium including instructions, executable by the embedded controller, wherein the instructions, when executed by the embedded controller, cause the embedded controller to perform shared pool operations comprising:

for each port-priority tuple (PPT) associated with a priority group (PG), estimating a worst case headroom (Hw) for a connection to a peer, wherein the shared-memory switch supports a pause command to suspend traffic via the connection and wherein each worst cast headroom is indicative of a headroom buffer required to buffer post-pause traffic received from the peer via the connection;

allocating a shared headroom buffer pool (Ps) shared by all PPTs in the priority group, wherein Ps is less than a worst case headroom buffer pool (Pw), and Pw is equal to the sum of each Hw associated with a PPT of the priority group; and

permitting any particular PPT in the priority group to consume Ps as needed for post-pause traffic, subject to a PPT maximum equal to the worst case headroom Hw for the particular PPT.

11. The information handling system of claim 10 , wherein Ps is less than Pw/M, wherein M is greater than or equal to 2.

12. The information handling system of claim 10 , further comprising:

monitoring utilization of Ps; and

adjusting Ps in accordance with the utilization.

13. The information handling system of claim 12 , wherein adjusting Ps comprises:

responsive to detecting the utilization exceeding a high utilization threshold, increasing Ps, subject to a maximum shared headroom buffer pool threshold (Pmax); and

responsive to detecting the utilization less than a low utilization threshold, decreasing Ps.

14. The information handling system of claim 13 , wherein decreasing Ps comprises:

determining an un-utilized portion of Ps;

determining a pool reduction comprising a product of the un-utilized portion and a reduction factor; and

subject to Pmin, releasing a portion of Ps equal to the pool reduction.

15. The information handling system of claim 14 , wherein increasing Ps comprises:

determining a headroom increase comprising a product of Ps and an increase factor; and

subject to Pmax, increasing Ps by the headroom increase.

16. The information handling system of claim 14 , wherein releasing a portion of Ps comprises one of:

releasing the portion of Ps for burst traffic; and

increasing a shared headroom buffer pool of a different priority group; and

increasing a non-headroom buffer pool.

17. The information handling system of claim 13 , wherein the shared pool operations further comprise performing the shared pool operations of claim 13 for each of a plurality of priority groups to allocate a plurality of shared headroom buffer pools, one corresponding to each priority group.

18. The information handling system of claim 13 , wherein the priority group comprises a lossless priority group comprising a plurality of lossless levels.

19. A non-transitory computer readable medium, including instructions executable by a processor, wherein the instructions, when executed, cause the processor to perform operations, comprising:

for each port-priority tuple (PPT) associated with a priority group (PG), estimating a worst case headroom (Hw) for a connection to a peer, wherein the shared-memory switch supports a pause command to suspend traffic via the connection and wherein each worst cast headroom is indicative of a headroom buffer required to buffer post-pause traffic received from the peer via the connection;

allocating a shared headroom buffer pool (Ps) shared by all PPTs in the priority group, wherein Ps is less than a worst case headroom buffer pool (Pw), and Pw is equal to the sum of each Hw associated with a PPT of the priority group; and

permitting any particular PPT in the priority group to consume Ps as needed for post-pause traffic, subject to a PPT maximum.

20. The non-transitory computer readable medium of claim 19 , wherein the operations include:

monitoring utilization of Ps;

responsive to detecting the utilization exceeding a high utilization threshold, increasing Ps, subject to a maximum shared headroom buffer pool threshold (Pmax); and

responsive to detecting the utilization less than a low utilization threshold, decreasing Ps, subject to a minimum shared headroom buffer pool threshold (Pmin); and

wherein Ps is less than Pw/M, M is greater than or equal to 2, Hmax is equal to Hw, and Pmax is equal to Pw.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040679/0386) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0666 →
RELEASE OF SECURITY INTEREST AT REEL 040633 FRAME 0799 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
Reel/Frame 058297/0427 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 23, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0386 →
SECURITY INTEREST Recorded Nov 16, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040633/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2016
From: GHANWANI, ANOOP; SUNDARAM, SHIVAKUMAR; MAHENDRABABU, ARAVIND BABU; NATARAJAN, AVINASH
To: DELL PRODUCTS L.P.
Reel/Frame 039589/0279 →
Continuity (1)
Related Publication 20180063038A1 · Mar 1, 2018
Cited By (1)
US 12,301,480