Commit 596a19b
authored
[cmis] combine cmis eeprom i2c read (#84)
Change multiple eeprom i2c reads into a single i2c read across multiple addresses, as addresses are continuous in register group.
<!-- Provide a general summary of your changes in the Title above -->
#### Description
<!--
Describe your changes in detail
-->
1. Update functions get_tx_power_flag, get_tx_bias_flag and get_rx_power_flag.
2. Add dedicated groups: TX_POWER_ALARM_FLAGS_FIELD, TX_BIAS_ALARM_FLAGS_FIELD, RX_POWER_ALARM_FLAGS_FIELD.
3. Move the MEDIA_TYPE_FIELD read and prefix lookup out of the loop.
#### Motivation and Context
CMIS API methods were issuing several separate i2c transactions per call, resulting in high bus overhead, increased latency, and poor scalability. By introducing dedicated RegGroupField groups for TX/RX power and bias alarm flags (e.g. TX_POWER_ALARM_FLAGS, TX_BIAS_ALARM_FLAGS, RX_POWER_ALARM_FLAGS) and refactoring the related methods (get_tx_power_flag, get_tx_bias_flag, get_rx_power_flag, etc.) to use a single block read per group, it resolves API call latency. Also moved constant prefix lookups (media‐type prefix) outside of loops to save time.
#### How Has This Been Tested?
Test with performance cases for one port, if there are 64 physical ports, then it can save 1.3s.
Before:
```bash
Running performance tests (3000 iterations each)...
get_tx_power_flag: total 32.120s, avg 10.707ms per call
get_tx_bias_flag: total 26.635s, avg 8.878ms per call
get_rx_power_flag: total 32.306s, avg 10.769ms per call
```
After:
```bash
Running performance tests (3000 iterations each)...
get_tx_power_flag: total 8.213s, avg 2.738ms per call
get_tx_bias_flag: total 7.831s, avg 2.610ms per call
get_rx_power_flag: total 9.632s, avg 3.211ms per call
```
Test with config reload, works fine.1 parent 8129483 commit 596a19b
4 files changed
Lines changed: 142 additions & 102 deletions
File tree
- sonic_platform_base/sonic_xcvr
- api/public
- fields
- mem_maps/public
- tests/sonic_xcvr
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
636 | 636 | | |
637 | 637 | | |
638 | 638 | | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
639 | 661 | | |
640 | 662 | | |
641 | 663 | | |
642 | 664 | | |
643 | | - | |
644 | | - | |
645 | | - | |
646 | | - | |
647 | | - | |
648 | | - | |
649 | | - | |
650 | | - | |
651 | | - | |
652 | | - | |
653 | | - | |
654 | | - | |
655 | | - | |
656 | | - | |
657 | | - | |
658 | | - | |
659 | | - | |
660 | | - | |
661 | | - | |
| 665 | + | |
662 | 666 | | |
663 | 667 | | |
664 | 668 | | |
665 | 669 | | |
666 | 670 | | |
667 | | - | |
668 | | - | |
669 | | - | |
670 | | - | |
671 | | - | |
672 | | - | |
673 | | - | |
674 | | - | |
675 | | - | |
676 | | - | |
677 | | - | |
678 | | - | |
679 | | - | |
680 | | - | |
681 | | - | |
682 | | - | |
683 | | - | |
684 | | - | |
685 | | - | |
| 671 | + | |
686 | 672 | | |
687 | 673 | | |
688 | 674 | | |
689 | 675 | | |
690 | 676 | | |
691 | | - | |
692 | | - | |
693 | | - | |
694 | | - | |
695 | | - | |
696 | | - | |
697 | | - | |
698 | | - | |
699 | | - | |
700 | | - | |
701 | | - | |
702 | | - | |
703 | | - | |
704 | | - | |
705 | | - | |
706 | | - | |
707 | | - | |
708 | | - | |
709 | | - | |
| 677 | + | |
710 | 678 | | |
711 | 679 | | |
712 | 680 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
294 | 297 | | |
295 | 298 | | |
296 | 299 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
296 | 368 | | |
297 | 369 | | |
298 | 370 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
286 | 282 | | |
287 | | - | |
288 | | - | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
289 | 288 | | |
290 | | - | |
291 | | - | |
| 289 | + | |
| 290 | + | |
292 | 291 | | |
293 | 292 | | |
294 | 293 | | |
295 | | - | |
| 294 | + | |
296 | 295 | | |
297 | 296 | | |
298 | 297 | | |
299 | 298 | | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
310 | 305 | | |
311 | | - | |
312 | | - | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
313 | 311 | | |
314 | | - | |
315 | | - | |
| 312 | + | |
| 313 | + | |
316 | 314 | | |
317 | 315 | | |
318 | 316 | | |
319 | | - | |
| 317 | + | |
320 | 318 | | |
321 | 319 | | |
322 | 320 | | |
323 | 321 | | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
334 | 328 | | |
335 | | - | |
336 | | - | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
337 | 334 | | |
338 | | - | |
339 | | - | |
| 335 | + | |
| 336 | + | |
340 | 337 | | |
341 | 338 | | |
342 | 339 | | |
343 | | - | |
| 340 | + | |
344 | 341 | | |
345 | 342 | | |
346 | 343 | | |
| |||
0 commit comments