1.7 GHz SPR, 'D' stepping
 1 DSA device, 1 WQ (size=128, 1 engine, mode="dedicated", type="kernel", 
name="dmaengine")
 io_uring-bench with some mods:
 1 thread, 1 io_uring context (sq_ring=64,cq_ring=128), random reads over one 
1GB file on tmpfs

 Without touching data in user-space:
                  SW copy (KIOPS)       DMA copy (irq) (KIOPS)        DMA copy 
(poll) (KIOPS)
1KB             1488.8                  583.9                   1189.0
2KB             1300.7                  582.0                   1170.8
4KB             1045.5                  580.1                   1214.8
8KB               709.7                 532.2                     952.3
16KB              393.3                 441.1                     690.7
32KB              203.2                 313.6                     434.2
64KB                91.5                        229.3                     266.8
128KB               46.1                        128.9                     155.2
 
With touching data in user-space:
                  SW copy (KIOPS)       DMA copy (irq) (KIOPS)        DMA copy 
(poll) (KIOPS)
1KB             1281.4                  586.8                   1157.0
2KB             1129.0                  603.9                   1058.1
4K                888.9                 615.7                     935.6
8KB               506.2                 511.8                     757.8
16KB              309.4                 363.1                     472.6
32KB              131.1                 221.4                     275.2
64KB                65.7                        147.2                     152.8
128KB               31.4                          79.5                      76.2

FS layer                                        1KB     4KB     8KB     16KB    
32KB    128KB
-----------
read_iter (get_page + sw copy)          986     1367    2194    3994    8237    
35441   
read_iter (get_page)                    442     459     652     1089    1852    
  5599
sw copy (deduced)                       542     908     1542    2905    6385    
29842

io_uring layer
-------------------
alloc dma_copy_vec                      222     214     244     248     284     
381
dma_map_sg                              130     132     146     210     296     
1034
cleanup dma_copy_vec                    208     303     375     451     700     
2108
(dma_unmap_sg, put_page, kfree)

dma driver layer
----------------------
dma_memcpy_sg_prep                      345     344     329     479     713     
2611
dma_txd_submit                  108     109     108     109     109       111
dma_tx_status                           327     349     431     534     797     
2346
idxd_dma_tx_status (deduced)            119       41      56      83      97    
  238   ???

SW copy
=======

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 1024 -d 64 -- /tmp/xz1
[  152.636953] _io_ring_call_stat_print(read_iter): 
nb_call=37514528,nb_cycle=37008954492,cycle/call=986;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 4096 -d 64 -- /tmp/xz1
[   70.028931] _io_ring_call_stat_print(read_iter): 
nb_call=28191936,nb_cycle=38541193956,cycle/call=1367;

taskset -c 1 /bin/bash -x /mnt/share0/buildroot-prev1/build/images/io_uring -b 
8192 -d 64 -- /tmp/xz1
[  218.785124] _io_ring_call_stat_print(read_iter): 
nb_call=19109312,nb_cycle=41928352830,cycle/call=2194;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 16384 -d 64 -- /tmp/xz1
[  337.191163] _io_ring_call_stat_print(read_iter): 
nb_call=11452608,nb_cycle=45751699798,cycle/call=3994;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 32768 -d 64 -- /tmp/xz1
[  294.087806] _io_ring_call_stat_print(read_iter): 
nb_call=5717280,nb_cycle=47097616396,cycle/call=8237;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 131072 -d 64 -- /tmp/xz1
[  152.502022] _io_ring_call_stat_print(read_iter): 
nb_call=1404480,nb_cycle=49777091724,cycle/call=35441;

DMA copy (ipoll)
==============

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 1024 -d 64 -p 1 -- /tmp/xz1
[  838.747911] _io_ring_call_stat_print(read_iter): 
nb_call=24296523,nb_cycle=10747261984,cycle/call=442;
[  838.749273] _io_ring_call_stat_print(dma_copy): 
nb_call=24296523,nb_cycle=10502724540,cycle/call=432;
[  838.750632] _io_ring_call_stat_print(dma_tx_status): 
nb_call=24296523,nb_cycle=7600041778,cycle/call=312;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 4096 -d 64 -p 1 -- /tmp/xz1
[ 1007.960910] _io_ring_call_stat_print(read_iter): 
nb_call=23038754,nb_cycle=10597803630,cycle/call=459;
[ 1007.962291] _io_ring_call_stat_print(dma_copy): 
nb_call=23038754,nb_cycle=10078534928,cycle/call=437;
[ 1007.963670] _io_ring_call_stat_print(dma_tx_status): 
nb_call=23038754,nb_cycle=8797313170,cycle/call=381;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 8192 -d 64 -p 1 -- /tmp/xz1
[ 1111.263944] _io_ring_call_stat_print(read_iter): 
nb_call=19890966,nb_cycle=12980210200,cycle/call=652;
[ 1111.265306] _io_ring_call_stat_print(dma_copy): 
nb_call=19890966,nb_cycle=10791559664,cycle/call=542;
[ 1111.266677] _io_ring_call_stat_print(dma_tx_status): 
nb_call=19890966,nb_cycle=8551330946,cycle/call=429;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 16384 -d 64 -p 1 -- 
/tmp/xz1
[ 1185.235939] _io_ring_call_stat_print(read_iter): 
nb_call=14168913,nb_cycle=15437025706,cycle/call=1089;
[ 1185.237311] _io_ring_call_stat_print(dma_copy): 
nb_call=14168913,nb_cycle=13240559576,cycle/call=934;
[ 1185.238681] _io_ring_call_stat_print(dma_tx_status): 
nb_call=14168913,nb_cycle=7891900714,cycle/call=556;

extra stats enabled:
--------------------------

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 1024 -d 64 -p 1 -- /tmp/xz1
[  165.854097] _io_ring_call_stat_print(read_iter): 
nb_call=20243146,nb_cycle=9360535452,cycle/call=462;
[  165.855472] _io_ring_call_stat_print(dma_map_page): 
nb_call=20243146,nb_cycle=2645942826,cycle/call=130;
[  165.856866] _io_ring_call_stat_print(dma_map_prep): 
nb_call=20243146,nb_cycle=6984741092,cycle/call=345;
[  165.858238] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=20243146,nb_cycle=2204089220,cycle/call=108;
[  165.859657] _io_ring_call_stat_print(dma_tx_status): 
nb_call=20243146,nb_cycle=6626478424,cycle/call=327;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 4096 -d 64 -p 1 -- /tmp/xz1
[  275.031263] _io_ring_call_stat_print(read_iter): 
nb_call=19959625,nb_cycle=9161716298,cycle/call=459;
[  275.033058] _io_ring_call_stat_print(dma_map_page): 
nb_call=19959625,nb_cycle=2635932496,cycle/call=132;
[  275.034480] _io_ring_call_stat_print(dma_map_prep): 
nb_call=19959625,nb_cycle=6870646042,cycle/call=344;
[  275.035862] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=19959625,nb_cycle=2176350008,cycle/call=109;
[  275.037256] _io_ring_call_stat_print(dma_tx_status): 
nb_call=19959625,nb_cycle=6977679726,cycle/call=349;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 8192 -d 64 -p 1 -- /tmp/xz1
[  401.383119] _io_ring_call_stat_print(read_iter): 
nb_call=18062188,nb_cycle=11587080420,cycle/call=641;
[  401.384486] _io_ring_call_stat_print(dma_map_page): 
nb_call=18062188,nb_cycle=2637550686,cycle/call=146;
[  401.385889] _io_ring_call_stat_print(dma_map_prep): 
nb_call=18062188,nb_cycle=5952760396,cycle/call=329;
[  401.387271] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=18062188,nb_cycle=1965616416,cycle/call=108;
[  401.388691] _io_ring_call_stat_print(dma_tx_status): 
nb_call=18062188,nb_cycle=7790097454,cycle/call=431;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 16384 -d 64 -p 1 -- 
/tmp/xz1
[  627.571132] _io_ring_call_stat_print(read_iter): 
nb_call=13945661,nb_cycle=14898802216,cycle/call=1068;
[  627.572494] _io_ring_call_stat_print(dma_map_page): 
nb_call=13945661,nb_cycle=2929960406,cycle/call=210;
[  627.573883] _io_ring_call_stat_print(dma_map_prep): 
nb_call=13945661,nb_cycle=6693123644,cycle/call=479;
[  627.575250] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=13945661,nb_cycle=1520918608,cycle/call=109;
[  627.576649] _io_ring_call_stat_print(dma_tx_status): 
nb_call=13945661,nb_cycle=7452250324,cycle/call=534;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 32768 -d 64 -p 1 -- 
/tmp/xz1
[  778.798192] _io_ring_call_stat_print(read_iter): 
nb_call=10047303,nb_cycle=17626174618,cycle/call=1754;
[  778.799583] _io_ring_call_stat_print(dma_map_page): 
nb_call=10047303,nb_cycle=2975384344,cycle/call=296;
[  778.801000] _io_ring_call_stat_print(dma_map_prep): 
nb_call=10047303,nb_cycle=7166354834,cycle/call=713;
[  778.802384] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=10047303,nb_cycle=1098932882,cycle/call=109;
[  778.803807] _io_ring_call_stat_print(dma_tx_status): 
nb_call=10047303,nb_cycle=8010400466,cycle/call=797;

even more stats enabled:
----------------------------------

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 1024 -d 64 -p 1 -- /tmp/xz1
[  227.487680] _io_ring_call_stat_print(read_iter): 
nb_call=18531697,nb_cycle=9091525924,cycle/call=490;
[  227.489095] _io_ring_call_stat_print(dma_map_page): 
nb_call=18531697,nb_cycle=2642274344,cycle/call=142;
[  227.490470] _io_ring_call_stat_print(dma_map_prep): 
nb_call=18531697,nb_cycle=6435793506,cycle/call=347;
[  227.491841] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=18531697,nb_cycle=2023143092,cycle/call=109;
[  227.493257] _io_ring_call_stat_print(dma_tx_status): 
nb_call=18531697,nb_cycle=8965236398,cycle/call=483;
[  227.494650] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=18531697,nb_cycle=3868579740,cycle/call=208;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 4096 -d 64 -p 1 -- /tmp/xz1
[  335.794733] _io_ring_call_stat_print(read_iter): 
nb_call=18385330,nb_cycle=8541024350,cycle/call=464;
[  335.796064] _io_ring_call_stat_print(dma_map_page): 
nb_call=18385330,nb_cycle=2000742552,cycle/call=108;
[  335.797471] _io_ring_call_stat_print(dma_map_prep): 
nb_call=18385330,nb_cycle=6616304978,cycle/call=359;
[  335.798869] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=18385330,nb_cycle=2006059222,cycle/call=109;
[  335.800289] _io_ring_call_stat_print(dma_tx_status): 
nb_call=18385330,nb_cycle=10568171772,cycle/call=574;
[  335.801702] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=18385330,nb_cycle=5578989814,cycle/call=303;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 8192 -d 64 -p 1 -- /tmp/xz1
[  935.314721] _io_ring_call_stat_print(read_iter): 
nb_call=16560375,nb_cycle=10774634416,cycle/call=650;
[  935.316063] _io_ring_call_stat_print(dma_map_page): 
nb_call=16560375,nb_cycle=2548383934,cycle/call=153;
[  935.317423] _io_ring_call_stat_print(dma_map_prep): 
nb_call=16560375,nb_cycle=5842722324,cycle/call=352;
[  935.318786] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=16560375,nb_cycle=1802839382,cycle/call=108;
[  935.320174] _io_ring_call_stat_print(dma_tx_status): 
nb_call=16560375,nb_cycle=10670571864,cycle/call=644;
[  935.321607] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=16560375,nb_cycle=6226614110,cycle/call=375;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 8192 -d 64 -p 1 -- /tmp/xz1
[ 1051.589712] _io_ring_call_stat_print(read_iter): 
nb_call=13569679,nb_cycle=13826817960,cycle/call=1018;
[ 1051.591105] _io_ring_call_stat_print(dma_map_page): 
nb_call=13569679,nb_cycle=2828194164,cycle/call=208;
[ 1051.592483] _io_ring_call_stat_print(dma_map_prep): 
nb_call=13569679,nb_cycle=6270020674,cycle/call=462;
[ 1051.593857] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=13569679,nb_cycle=1482618160,cycle/call=109;
[ 1051.595262] _io_ring_call_stat_print(dma_tx_status): 
nb_call=13569679,nb_cycle=9804848154,cycle/call=722;
[ 1051.596671] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=13569679,nb_cycle=6125278794,cycle/call=451;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 32768 -d 64 -p 1 -- 
/tmp/xz1
[ 1167.621755] _io_ring_call_stat_print(read_iter): 
nb_call=9356189,nb_cycle=17348247116,cycle/call=1854;
[ 1167.623112] _io_ring_call_stat_print(dma_map_page): 
nb_call=9356189,nb_cycle=3255963092,cycle/call=348;
[ 1167.624480] _io_ring_call_stat_print(dma_map_prep): 
nb_call=9356189,nb_cycle=7065992002,cycle/call=755;
[ 1167.625861] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=9356189,nb_cycle=1023755914,cycle/call=109;
[ 1167.627276] _io_ring_call_stat_print(dma_tx_status): 
nb_call=9356189,nb_cycle=9096623304,cycle/call=972;
[ 1167.628657] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=9356189,nb_cycle=6554425776,cycle/call=700;

and even more stats enabled:
----------------------------------------

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 1024 -d 64 -p 1 -- /tmp/xz1
[  413.308768] _io_ring_call_stat_print(read_iter): 
nb_call=17436862,nb_cycle=8339876898,cycle/call=478;
[  413.310115] _io_ring_call_stat_print(dma_map_page): 
nb_call=17436862,nb_cycle=2397826664,cycle/call=137;
[  413.311477] _io_ring_call_stat_print(dma_map_prep): 
nb_call=17436862,nb_cycle=5871816456,cycle/call=336;
[  413.312827] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=17436862,nb_cycle=1930111314,cycle/call=110;
[  413.314212] _io_ring_call_stat_print(dma_tx_status): 
nb_call=17436862,nb_cycle=9608856944,cycle/call=551;
[  413.315580] _io_ring_call_stat_print(dma_alloc_copy_vec): 
nb_call=17436862,nb_cycle=3873159708,cycle/call=222;
[  413.317007] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=17436862,nb_cycle=4812252522,cycle/call=275;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 4096 -d 64 -p 1 -- /tmp/xz1
[  491.803957] _io_ring_call_stat_print(read_iter): 
nb_call=17431464,nb_cycle=7976750478,cycle/call=457;
[  491.805309] _io_ring_call_stat_print(dma_map_page): 
nb_call=17431464,nb_cycle=2506301976,cycle/call=143;
[  491.806670] _io_ring_call_stat_print(dma_map_prep): 
nb_call=17431464,nb_cycle=6338791238,cycle/call=363;
[  491.808039] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=17431464,nb_cycle=1944660584,cycle/call=111;
[  491.809436] _io_ring_call_stat_print(dma_tx_status): 
nb_call=17431464,nb_cycle=9289975568,cycle/call=532;
[  491.810802] _io_ring_call_stat_print(dma_alloc_copy_vec): 
nb_call=17431464,nb_cycle=3738193802,cycle/call=214;
[  491.812247] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=17431464,nb_cycle=4546959358,cycle/call=260;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 8192 -d 64 -p 1 -- /tmp/xz1
[  596.820790] _io_ring_call_stat_print(read_iter): 
nb_call=15143794,nb_cycle=10155218664,cycle/call=670;
[  596.822172] _io_ring_call_stat_print(dma_map_page): 
nb_call=15143794,nb_cycle=2554489340,cycle/call=168;
[  596.823568] _io_ring_call_stat_print(dma_map_prep): 
nb_call=15143794,nb_cycle=5858304540,cycle/call=386;
[  596.824943] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=15143794,nb_cycle=1679767784,cycle/call=110;
[  596.826358] _io_ring_call_stat_print(dma_tx_status): 
nb_call=15143794,nb_cycle=10300601004,cycle/call=680;
[  596.827758] _io_ring_call_stat_print(dma_alloc_copy_vec): 
nb_call=15143794,nb_cycle=3702212752,cycle/call=244;
[  596.829219] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=15143794,nb_cycle=6186738794,cycle/call=408;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 16384 -d 64 -p 1 -- 
/tmp/xz1
[  673.975774] _io_ring_call_stat_print(read_iter): 
nb_call=12651137,nb_cycle=13348866092,cycle/call=1055;
[  673.977163] _io_ring_call_stat_print(dma_map_page): 
nb_call=12651137,nb_cycle=2657725706,cycle/call=210;
[  673.978553] _io_ring_call_stat_print(dma_map_prep): 
nb_call=12651137,nb_cycle=6720093690,cycle/call=531;
[  673.979918] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=12651137,nb_cycle=1403316410,cycle/call=110;
[  673.981316] _io_ring_call_stat_print(dma_tx_status): 
nb_call=12651137,nb_cycle=9043971908,cycle/call=714;
[  673.982718] _io_ring_call_stat_print(dma_alloc_copy_vec): 
nb_call=12651137,nb_cycle=3138149536,cycle/call=248;
[  673.984144] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=12651137,nb_cycle=5639966438,cycle/call=445;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 32768 -d 64 -p 1 -- 
/tmp/xz1
[  763.673818] _io_ring_call_stat_print(read_iter): 
nb_call=8953781,nb_cycle=16585739778,cycle/call=1852;
[  763.675148] _io_ring_call_stat_print(dma_map_page): 
nb_call=8953781,nb_cycle=2772644866,cycle/call=309;
[  763.676504] _io_ring_call_stat_print(dma_map_prep): 
nb_call=8953781,nb_cycle=7655287758,cycle/call=854;
[  763.677845] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=8953781,nb_cycle=985388208,cycle/call=110;
[  763.679198] _io_ring_call_stat_print(dma_tx_status): 
nb_call=8953781,nb_cycle=9035643372,cycle/call=1009;
[  763.680572] _io_ring_call_stat_print(dma_alloc_copy_vec): 
nb_call=8953781,nb_cycle=2548060728,cycle/call=284;
[  763.681994] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=8953781,nb_cycle=6571959652,cycle/call=733;

taskset -c 1 /bin/bash -x /mnt/share0/run_bg_task.sh 30 
/mnt/share0/buildroot-prev1/build/images/io_uring -b 131072 -d 64 -p 1 -- 
/tmp/xz1
[  851.217379] _io_ring_call_stat_print(read_iter): 
nb_call=3744307,nb_cycle=20966938344,cycle/call=5599;
[  851.218765] _io_ring_call_stat_print(dma_map_page): 
nb_call=3744307,nb_cycle=3872112822,cycle/call=1034;
[  851.220061] _io_ring_call_stat_print(dma_map_prep): 
nb_call=3744307,nb_cycle=9778748434,cycle/call=2611;
[  851.221416] _io_ring_call_stat_print(dma_txd_submit): 
nb_call=3744307,nb_cycle=417579118,cycle/call=111;
[  851.222755] _io_ring_call_stat_print(dma_tx_status): 
nb_call=11076628,nb_cycle=9711661782,cycle/call=876;
[  851.224114] _io_ring_call_stat_print(dma_alloc_copy_vec): 
nb_call=3744307,nb_cycle=1430044398,cycle/call=381;
[  851.225592] _io_ring_call_stat_print(dma_cb_free_copy_vec): 
nb_call=3744307,nb_cycle=7895268808,cycle/call=2108;

Reply via email to