== sanity test 398b: DIO and buffer IO race ============== 14:19:57 (1772306397) /usr/bin/fio 12+0 records in 12+0 records out 12582912 bytes (13 MB, 12 MiB) copied, 0.0887776 s, 142 MB/s mix direct rw 12M to OST0 by fio with 4 jobs... mix buffer rw 12M to OST0 by fio with 4 jobs... rand-rw: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=16 ... fio-3.19 Starting 4 processes rand-rw: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=16 ... fio-3.19 Starting 4 processes rand-rw: (groupid=0, jobs=1): err= 0: pid=147379: Sat Feb 28 14:20:05 2026 read: IOPS=201, BW=807KiB/s (826kB/s)(1480KiB/1834msec) clat (usec): min=5, max=36792, avg=2713.24, stdev=3149.49 lat (usec): min=5, max=36792, avg=2713.62, stdev=3149.50 clat percentiles (usec): | 1.00th=[ 7], 5.00th=[ 11], 10.00th=[ 13], 20.00th=[ 17], | 30.00th=[ 25], 40.00th=[ 1745], 50.00th=[ 2638], 60.00th=[ 3228], | 70.00th=[ 3818], 80.00th=[ 4359], 90.00th=[ 5342], 95.00th=[ 6325], | 99.00th=[11731], 99.50th=[22676], 99.90th=[36963], 99.95th=[36963], | 99.99th=[36963] bw ( KiB/s): min= 589, max= 928, per=24.51%, avg=756.33, stdev=169.54, samples=3 iops : min= 147, max= 232, avg=189.00, stdev=42.51, samples=3 write: IOPS=217, BW=868KiB/s (889kB/s)(1592KiB/1834msec); 0 zone resets clat (usec): min=118, max=17815, avg=2064.68, stdev=2314.70 lat (usec): min=119, max=17816, avg=2065.14, stdev=2314.71 clat percentiles (usec): | 1.00th=[ 143], 5.00th=[ 178], 10.00th=[ 208], 20.00th=[ 265], | 30.00th=[ 314], 40.00th=[ 545], 50.00th=[ 1418], 60.00th=[ 1827], | 70.00th=[ 2606], 80.00th=[ 3556], 90.00th=[ 5145], 95.00th=[ 6718], | 99.00th=[10290], 99.50th=[11600], 99.90th=[17695], 99.95th=[17695], | 99.99th=[17695] bw ( KiB/s): min= 616, max= 1016, per=25.46%, avg=826.67, stdev=200.85, samples=3 iops : min= 154, max= 254, avg=206.67, stdev=50.21, samples=3 lat (usec) : 10=1.95%, 20=10.68%, 50=2.34%, 100=0.39%, 250=8.98% lat (usec) : 500=11.72%, 750=1.17%, 1000=0.65% lat (msec) : 2=14.58%, 4=26.82%, 10=19.14%, 20=1.30%, 50=0.26% cpu : usr=0.11%, sys=16.69%, ctx=943, majf=0, minf=14 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=370,398,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 rand-rw: (groupid=0, jobs=1): err= 0: pid=147380: Sat Feb 28 14:20:05 2026 read: IOPS=185, BW=740KiB/s (758kB/s)(1436KiB/1940msec) clat (usec): min=4, max=34238, avg=2893.39, stdev=3318.40 lat (usec): min=4, max=34239, avg=2893.79, stdev=3318.41 clat percentiles (usec): | 1.00th=[ 7], 5.00th=[ 11], 10.00th=[ 14], 20.00th=[ 18], | 30.00th=[ 24], 40.00th=[ 2008], 50.00th=[ 2671], 60.00th=[ 3425], | 70.00th=[ 3982], 80.00th=[ 4686], 90.00th=[ 5604], 95.00th=[ 6783], | 99.00th=[15401], 99.50th=[22676], 99.90th=[34341], 99.95th=[34341], | 99.99th=[34341] bw ( KiB/s): min= 582, max= 840, per=24.09%, avg=743.33, stdev=140.63, samples=3 iops : min= 145, max= 210, avg=185.67, stdev=35.44, samples=3 write: IOPS=210, BW=843KiB/s (864kB/s)(1636KiB/1940msec); 0 zone resets clat (usec): min=117, max=27697, avg=2185.50, stdev=2567.63 lat (usec): min=117, max=27698, avg=2186.08, stdev=2567.66 clat percentiles (usec): | 1.00th=[ 145], 5.00th=[ 167], 10.00th=[ 215], 20.00th=[ 285], | 30.00th=[ 383], 40.00th=[ 1123], 50.00th=[ 1467], 60.00th=[ 1860], | 70.00th=[ 2606], 80.00th=[ 3752], 90.00th=[ 5014], 95.00th=[ 6325], | 99.00th=[10552], 99.50th=[11600], 99.90th=[27657], 99.95th=[27657], | 99.99th=[27657] bw ( KiB/s): min= 609, max= 1000, per=24.89%, avg=808.33, stdev=195.61, samples=3 iops : min= 152, max= 250, avg=202.00, stdev=49.03, samples=3 lat (usec) : 10=1.69%, 20=10.55%, 50=2.99%, 100=0.26%, 250=8.33% lat (usec) : 500=9.24%, 750=0.91%, 1000=1.69% lat (msec) : 2=16.02%, 4=24.48%, 10=22.01%, 20=1.43%, 50=0.39% cpu : usr=0.26%, sys=15.63%, ctx=1069, majf=0, minf=14 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=359,409,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 rand-rw: (groupid=0, jobs=1): err= 0: pid=147381: Sat Feb 28 14:20:05 2026 read: IOPS=208, BW=834KiB/s (854kB/s)(1564KiB/1876msec) clat (usec): min=5, max=26766, avg=2938.55, stdev=2762.51 lat (usec): min=6, max=26767, avg=2938.93, stdev=2762.51 clat percentiles (usec): | 1.00th=[ 7], 5.00th=[ 12], 10.00th=[ 14], 20.00th=[ 19], | 30.00th=[ 1385], 40.00th=[ 2245], 50.00th=[ 2900], 60.00th=[ 3425], | 70.00th=[ 4015], 80.00th=[ 4621], 90.00th=[ 5669], 95.00th=[ 6718], | 99.00th=[13435], 99.50th=[14091], 99.90th=[26870], 99.95th=[26870], | 99.99th=[26870] bw ( KiB/s): min= 589, max= 952, per=25.72%, avg=793.67, stdev=185.88, samples=3 iops : min= 147, max= 238, avg=198.33, stdev=46.61, samples=3 write: IOPS=200, BW=804KiB/s (823kB/s)(1508KiB/1876msec); 0 zone resets clat (usec): min=125, max=14002, avg=1911.14, stdev=2015.24 lat (usec): min=125, max=14002, avg=1911.60, stdev=2015.25 clat percentiles (usec): | 1.00th=[ 139], 5.00th=[ 200], 10.00th=[ 233], 20.00th=[ 302], | 30.00th=[ 383], 40.00th=[ 881], 50.00th=[ 1418], 60.00th=[ 1713], | 70.00th=[ 2212], 80.00th=[ 3392], 90.00th=[ 4359], 95.00th=[ 5800], | 99.00th=[ 9110], 99.50th=[13173], 99.90th=[13960], 99.95th=[13960], | 99.99th=[13960] bw ( KiB/s): min= 671, max= 912, per=24.30%, avg=789.00, stdev=120.58, samples=3 iops : min= 167, max= 228, avg=197.00, stdev=30.51, samples=3 lat (usec) : 10=1.17%, 20=11.07%, 50=1.04%, 100=0.13%, 250=6.12% lat (usec) : 500=12.24%, 750=1.95%, 1000=0.26% lat (msec) : 2=17.19%, 4=26.56%, 10=21.09%, 20=1.04%, 50=0.13% cpu : usr=0.43%, sys=16.37%, ctx=1086, majf=0, minf=14 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=391,377,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 rand-rw: (groupid=0, jobs=1): err= 0: pid=147382: Sat Feb 28 14:20:05 2026 read: IOPS=218, BW=876KiB/s (897kB/s)(1508KiB/1722msec) clat (usec): min=4, max=14374, avg=2507.97, stdev=2335.19 lat (usec): min=4, max=14375, avg=2508.35, stdev=2335.18 clat percentiles (usec): | 1.00th=[ 6], 5.00th=[ 12], 10.00th=[ 14], 20.00th=[ 17], | 30.00th=[ 24], 40.00th=[ 1811], 50.00th=[ 2474], 60.00th=[ 3032], | 70.00th=[ 3654], 80.00th=[ 4113], 90.00th=[ 5276], 95.00th=[ 6259], | 99.00th=[10421], 99.50th=[12780], 99.90th=[14353], 99.95th=[14353], | 99.99th=[14353] bw ( KiB/s): min= 674, max= 1016, per=27.50%, avg=848.67, stdev=171.12, samples=3 iops : min= 168, max= 254, avg=212.00, stdev=43.03, samples=3 write: IOPS=227, BW=908KiB/s (930kB/s)(1564KiB/1722msec); 0 zone resets clat (usec): min=113, max=13802, avg=1975.53, stdev=2129.77 lat (usec): min=113, max=13803, avg=1975.99, stdev=2129.77 clat percentiles (usec): | 1.00th=[ 139], 5.00th=[ 176], 10.00th=[ 202], 20.00th=[ 281], | 30.00th=[ 359], 40.00th=[ 963], 50.00th=[ 1352], 60.00th=[ 1762], | 70.00th=[ 2278], 80.00th=[ 3425], 90.00th=[ 5211], 95.00th=[ 6587], | 99.00th=[ 8291], 99.50th=[12518], 99.90th=[13829], 99.95th=[13829], | 99.99th=[13829] bw ( KiB/s): min= 743, max= 1008, per=27.58%, avg=895.67, stdev=137.03, samples=3 iops : min= 185, max= 252, avg=223.67, stdev=34.67, samples=3 lat (usec) : 10=1.43%, 20=11.59%, 50=2.60%, 100=0.13%, 250=8.07% lat (usec) : 500=10.94%, 750=1.56%, 1000=0.78% lat (msec) : 2=17.06%, 4=27.08%, 10=17.97%, 20=0.78% cpu : usr=0.17%, sys=16.56%, ctx=975, majf=0, minf=13 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=377,391,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 Run status group 0 (all jobs): READ: bw=3087KiB/s (3161kB/s), 740KiB/s-876KiB/s (758kB/s-897kB/s), io=5988KiB (6132kB), run=1722-1940msec WRITE: bw=3247KiB/s (3325kB/s), 804KiB/s-908KiB/s (823kB/s-930kB/s), io=6300KiB (6451kB), run=1722-1940msec rand-rw: (groupid=0, jobs=1): err= 0: pid=147374: Sat Feb 28 14:20:05 2026 read: IOPS=135, BW=541KiB/s (554kB/s)(1480KiB/2734msec) clat (usec): min=781, max=34174, avg=2610.99, stdev=2721.66 lat (usec): min=782, max=34175, avg=2611.53, stdev=2721.83 clat percentiles (usec): | 1.00th=[ 889], 5.00th=[ 979], 10.00th=[ 1057], 20.00th=[ 1156], | 30.00th=[ 1254], 40.00th=[ 1401], 50.00th=[ 1598], 60.00th=[ 1860], | 70.00th=[ 2769], 80.00th=[ 3589], 90.00th=[ 5473], 95.00th=[ 7046], | 99.00th=[ 9765], 99.50th=[19530], 99.90th=[34341], 99.95th=[34341], | 99.99th=[34341] bw ( KiB/s): min= 358, max= 928, per=24.21%, avg=526.00, stdev=228.99, samples=5 iops : min= 89, max= 232, avg=131.40, stdev=57.34, samples=5 write: IOPS=145, BW=582KiB/s (596kB/s)(1592KiB/2734msec); 0 zone resets clat (usec): min=1598, max=28375, avg=4406.52, stdev=2654.90 lat (usec): min=1598, max=28376, avg=4407.37, stdev=2654.76 clat percentiles (usec): | 1.00th=[ 1860], 5.00th=[ 2180], 10.00th=[ 2409], 20.00th=[ 2704], | 30.00th=[ 2900], 40.00th=[ 3130], 50.00th=[ 3425], 60.00th=[ 4015], | 70.00th=[ 4752], 80.00th=[ 5866], 90.00th=[ 7373], 95.00th=[ 8717], | 99.00th=[15008], 99.50th=[19268], 99.90th=[28443], 99.95th=[28443], | 99.99th=[28443] bw ( KiB/s): min= 385, max= 992, per=25.00%, avg=571.40, stdev=246.17, samples=5 iops : min= 96, max= 248, avg=142.80, stdev=61.59, samples=5 lat (usec) : 1000=2.99% lat (msec) : 2=28.13%, 4=39.97%, 10=26.95%, 20=1.69%, 50=0.26% cpu : usr=0.33%, sys=4.90%, ctx=875, majf=0, minf=13 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=370,398,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 rand-rw: (groupid=0, jobs=1): err= 0: pid=147375: Sat Feb 28 14:20:05 2026 read: IOPS=130, BW=521KiB/s (534kB/s)(1436KiB/2755msec) clat (usec): min=833, max=24960, avg=2498.95, stdev=2540.02 lat (usec): min=833, max=24961, avg=2499.38, stdev=2540.05 clat percentiles (usec): | 1.00th=[ 898], 5.00th=[ 988], 10.00th=[ 1057], 20.00th=[ 1156], | 30.00th=[ 1270], 40.00th=[ 1369], 50.00th=[ 1516], 60.00th=[ 1745], | 70.00th=[ 2212], 80.00th=[ 3458], 90.00th=[ 5342], 95.00th=[ 7242], | 99.00th=[10159], 99.50th=[19530], 99.90th=[25035], 99.95th=[25035], | 99.99th=[25035] bw ( KiB/s): min= 328, max= 920, per=23.53%, avg=511.20, stdev=239.07, samples=5 iops : min= 82, max= 230, avg=127.80, stdev=59.77, samples=5 write: IOPS=148, BW=594KiB/s (608kB/s)(1636KiB/2755msec); 0 zone resets clat (usec): min=1665, max=19322, avg=4517.55, stdev=2471.25 lat (usec): min=1666, max=19323, avg=4518.07, stdev=2471.25 clat percentiles (usec): | 1.00th=[ 1893], 5.00th=[ 2147], 10.00th=[ 2376], 20.00th=[ 2638], | 30.00th=[ 2900], 40.00th=[ 3163], 50.00th=[ 3589], 60.00th=[ 4424], | 70.00th=[ 5145], 80.00th=[ 6259], 90.00th=[ 7767], 95.00th=[ 9503], | 99.00th=[12780], 99.50th=[13698], 99.90th=[19268], 99.95th=[19268], | 99.99th=[19268] bw ( KiB/s): min= 404, max= 992, per=24.95%, avg=570.40, stdev=238.92, samples=5 iops : min= 101, max= 248, avg=142.60, stdev=59.73, samples=5 lat (usec) : 1000=2.60% lat (msec) : 2=30.08%, 4=36.33%, 10=28.39%, 20=2.47%, 50=0.13% cpu : usr=0.22%, sys=5.01%, ctx=884, majf=0, minf=14 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=359,409,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 rand-rw: (groupid=0, jobs=1): err= 0: pid=147376: Sat Feb 28 14:20:05 2026 read: IOPS=143, BW=575KiB/s (589kB/s)(1564KiB/2720msec) clat (usec): min=808, max=11367, avg=2333.23, stdev=1869.25 lat (usec): min=809, max=11368, avg=2333.65, stdev=1869.25 clat percentiles (usec): | 1.00th=[ 881], 5.00th=[ 971], 10.00th=[ 1029], 20.00th=[ 1156], | 30.00th=[ 1254], 40.00th=[ 1385], 50.00th=[ 1549], 60.00th=[ 1713], | 70.00th=[ 2212], 80.00th=[ 3326], 90.00th=[ 5014], 95.00th=[ 6325], | 99.00th=[ 9896], 99.50th=[10683], 99.90th=[11338], 99.95th=[11338], | 99.99th=[11338] bw ( KiB/s): min= 338, max= 1040, per=26.30%, avg=571.60, stdev=271.31, samples=5 iops : min= 84, max= 260, avg=142.80, stdev=67.94, samples=5 write: IOPS=138, BW=554KiB/s (568kB/s)(1508KiB/2720msec); 0 zone resets clat (usec): min=1545, max=29695, avg=4765.24, stdev=3051.99 lat (usec): min=1546, max=29696, avg=4765.75, stdev=3052.01 clat percentiles (usec): | 1.00th=[ 1795], 5.00th=[ 2147], 10.00th=[ 2409], 20.00th=[ 2671], | 30.00th=[ 2900], 40.00th=[ 3261], 50.00th=[ 3785], 60.00th=[ 4555], | 70.00th=[ 5342], 80.00th=[ 6194], 90.00th=[ 8029], 95.00th=[10159], | 99.00th=[16450], 99.50th=[22676], 99.90th=[29754], 99.95th=[29754], | 99.99th=[29754] bw ( KiB/s): min= 408, max= 936, per=23.47%, avg=536.60, stdev=224.93, samples=5 iops : min= 102, max= 234, avg=134.00, stdev=56.34, samples=5 lat (usec) : 1000=3.91% lat (msec) : 2=31.64%, 4=33.59%, 10=27.99%, 20=2.60%, 50=0.26% cpu : usr=0.18%, sys=5.00%, ctx=866, majf=0, minf=13 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=391,377,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 rand-rw: (groupid=0, jobs=1): err= 0: pid=147377: Sat Feb 28 14:20:05 2026 read: IOPS=138, BW=553KiB/s (566kB/s)(1508KiB/2726msec) clat (usec): min=846, max=31616, avg=2530.80, stdev=2528.21 lat (usec): min=846, max=31616, avg=2531.26, stdev=2528.21 clat percentiles (usec): | 1.00th=[ 898], 5.00th=[ 979], 10.00th=[ 1037], 20.00th=[ 1172], | 30.00th=[ 1270], 40.00th=[ 1385], 50.00th=[ 1565], 60.00th=[ 1844], | 70.00th=[ 2474], 80.00th=[ 3523], 90.00th=[ 5407], 95.00th=[ 7046], | 99.00th=[10290], 99.50th=[14484], 99.90th=[31589], 99.95th=[31589], | 99.99th=[31589] bw ( KiB/s): min= 372, max= 944, per=24.56%, avg=533.60, stdev=232.10, samples=5 iops : min= 93, max= 236, avg=133.40, stdev=58.02, samples=5 write: IOPS=143, BW=574KiB/s (588kB/s)(1564KiB/2726msec); 0 zone resets clat (usec): min=1618, max=38709, avg=4495.34, stdev=3156.29 lat (usec): min=1619, max=38710, avg=4495.95, stdev=3156.25 clat percentiles (usec): | 1.00th=[ 1778], 5.00th=[ 2114], 10.00th=[ 2343], 20.00th=[ 2638], | 30.00th=[ 2802], 40.00th=[ 3097], 50.00th=[ 3392], 60.00th=[ 4047], | 70.00th=[ 5014], 80.00th=[ 5800], 90.00th=[ 7767], 95.00th=[ 9765], | 99.00th=[14484], 99.50th=[23725], 99.90th=[38536], 99.95th=[38536], | 99.99th=[38536] bw ( KiB/s): min= 392, max= 1000, per=24.57%, avg=561.60, stdev=251.42, samples=5 iops : min= 98, max= 250, avg=140.40, stdev=62.86, samples=5 lat (usec) : 1000=3.52% lat (msec) : 2=30.60%, 4=37.76%, 10=25.26%, 20=2.47%, 50=0.39% cpu : usr=0.18%, sys=4.99%, ctx=859, majf=0, minf=13 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=377,391,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=16 Run status group 0 (all jobs): READ: bw=2174KiB/s (2226kB/s), 521KiB/s-575KiB/s (534kB/s-589kB/s), io=5988KiB (6132kB), run=2720-2755msec WRITE: bw=2287KiB/s (2342kB/s), 554KiB/s-594KiB/s (568kB/s-608kB/s), io=6300KiB (6451kB), run=2720-2755msec