• Vinicius Costa Gomes's avatar
    igc: Enhance Qbv scheduling by using first flag bit · db0b124f
    Vinicius Costa Gomes authored
    The I225 hardware has a limitation that packets can only be scheduled
    in the [0, cycle-time] interval. So, scheduling a packet to the start
    of the next cycle doesn't usually work.
    
    To overcome this, we use the Transmit Descriptor first flag to indicates
    that a packet should be the first packet (from a queue) in a cycle
    according to the section 7.5.2.9.3.4 The First Packet on Each QBV Cycle
    in Intel Discrete I225/6 User Manual.
    
    But this only works if there was any packet from that queue during the
    current cycle, to avoid this issue, we issue an empty packet if that's
    not the case. Also require one more descriptor to be available, to take
    into account the empty packet that might be issued.
    
    Test Setup:
    
    Talker: Use l2_tai to generate the launchtime into packet load.
    
    Listener: Use timedump.c to compute the delta between packet arrival
    and LaunchTime packet payload.
    
    Test Result:
    
    Before:
    
    1666000610127300000,1666000610127300096,96,621273
    1666000610127400000,1666000610127400192,192,621274
    1666000610127500000,1666000610127500032,32,621275
    1666000610127600000,1666000610127600128,128,621276
    1666000610127700000,1666000610127700224,224,621277
    1666000610127800000,1666000610127800064,64,621278
    1666000610127900000,1666000610127900160,160,621279
    1666000610128000000,1666000610128000000,0,621280
    1666000610128100000,1666000610128100096,96,621281
    1666000610128200000,1666000610128200192,192,621282
    1666000610128300000,1666000610128300032,32,621283
    1666000610128400000,1666000610128301056,-98944,621284
    1666000610128500000,1666000610128302080,-197920,621285
    1666000610128600000,1666000610128302848,-297152,621286
    1666000610128700000,1666000610128303872,-396128,621287
    1666000610128800000,1666000610128304896,-495104,621288
    1666000610128900000,1666000610128305664,-594336,621289
    1666000610129000000,1666000610128306688,-693312,621290
    1666000610129100000,1666000610128307712,-792288,621291
    1666000610129200000,1666000610128308480,-891520,621292
    1666000610129300000,1666000610128309504,-990496,621293
    1666000610129400000,1666000610128310528,-1089472,621294
    1666000610129500000,1666000610128311296,-1188704,621295
    1666000610129600000,1666000610128312320,-1287680,621296
    1666000610129700000,1666000610128313344,-1386656,621297
    1666000610129800000,1666000610128314112,-1485888,621298
    1666000610129900000,1666000610128315136,-1584864,621299
    1666000610130000000,1666000610128316160,-1683840,621300
    1666000610130100000,1666000610128316928,-1783072,621301
    1666000610130200000,1666000610128317952,-1882048,621302
    1666000610130300000,1666000610128318976,-1981024,621303
    1666000610130400000,1666000610128319744,-2080256,621304
    1666000610130500000,1666000610128320768,-2179232,621305
    1666000610130600000,1666000610128321792,-2278208,621306
    1666000610130700000,1666000610128322816,-2377184,621307
    1666000610130800000,1666000610128323584,-2476416,621308
    1666000610130900000,1666000610128324608,-2575392,621309
    1666000610131000000,1666000610128325632,-2674368,621310
    1666000610131100000,1666000610128326400,-2773600,621311
    1666000610131200000,1666000610128327424,-2872576,621312
    1666000610131300000,1666000610128328448,-2971552,621313
    1666000610131400000,1666000610128329216,-3070784,621314
    1666000610131500000,1666000610131500032,32,621315
    1666000610131600000,1666000610131600128,128,621316
    1666000610131700000,1666000610131700224,224,621317
    
    After:
    
    1666073510646200000,1666073510646200064,64,2676462
    1666073510646300000,1666073510646300160,160,2676463
    1666073510646400000,1666073510646400256,256,2676464
    1666073510646500000,1666073510646500096,96,2676465
    1666073510646600000,1666073510646600192,192,2676466
    1666073510646700000,1666073510646700032,32,2676467
    1666073510646800000,1666073510646800128,128,2676468
    1666073510646900000,1666073510646900224,224,2676469
    1666073510647000000,1666073510647000064,64,2676470
    1666073510647100000,1666073510647100160,160,2676471
    1666073510647200000,1666073510647200256,256,2676472
    1666073510647300000,1666073510647300096,96,2676473
    1666073510647400000,1666073510647400192,192,2676474
    1666073510647500000,1666073510647500032,32,2676475
    1666073510647600000,1666073510647600128,128,2676476
    1666073510647700000,1666073510647700224,224,2676477
    1666073510647800000,1666073510647800064,64,2676478
    1666073510647900000,1666073510647900160,160,2676479
    1666073510648000000,1666073510648000000,0,2676480
    1666073510648100000,1666073510648100096,96,2676481
    1666073510648200000,1666073510648200192,192,2676482
    1666073510648300000,1666073510648300032,32,2676483
    1666073510648400000,1666073510648400128,128,2676484
    1666073510648500000,1666073510648500224,224,2676485
    1666073510648600000,1666073510648600064,64,2676486
    1666073510648700000,1666073510648700160,160,2676487
    1666073510648800000,1666073510648800000,0,2676488
    1666073510648900000,1666073510648900096,96,2676489
    1666073510649000000,1666073510649000192,192,2676490
    1666073510649100000,1666073510649100032,32,2676491
    1666073510649200000,1666073510649200128,128,2676492
    1666073510649300000,1666073510649300224,224,2676493
    1666073510649400000,1666073510649400064,64,2676494
    1666073510649500000,1666073510649500160,160,2676495
    1666073510649600000,1666073510649600000,0,2676496
    1666073510649700000,1666073510649700096,96,2676497
    1666073510649800000,1666073510649800192,192,2676498
    1666073510649900000,1666073510649900032,32,2676499
    1666073510650000000,1666073510650000128,128,2676500
    
    Fixes: 82faa9b7 ("igc: Add support for ETF offloading")
    Signed-off-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
    Co-developed-by: default avatarAravindhan Gunasekaran <aravindhan.gunasekaran@intel.com>
    Signed-off-by: default avatarAravindhan Gunasekaran <aravindhan.gunasekaran@intel.com>
    Co-developed-by: default avatarMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
    Signed-off-by: default avatarMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
    Signed-off-by: default avatarMalli C <mallikarjuna.chilakala@intel.com>
    Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    db0b124f
igc.h 17 KB