Avi Kivity
Avi Kivity
Note that later() is super evil, hiding behind an innocent name. reactor::force_poll() forces the reactor to poll immediately, bypassing task_quota. Perhaps we should remove that line and just schedule a...
I don't understand why #986 is a problem - yes, you're doing some work, but you're idle anyway.
Here's a more extreme example, where read_iops=10: ``` procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa...
``` [global] runtime=30s time_based=1 ramp_time=5 filename=/dev/nvme1n1 direct=1 group_reporting ioengine=io_uring size=0 random_generator=tausworthe64 randrepeat=0 thread [job(r_idx=0,w_idx=4,write_bw=459345240,r_iops=0)] stonewall new_group readwrite=write blocksize=131072 iodepth=64 rate=459345240 [job(r_idx=0,w_idx=4,write_bw=459345240,r_iops=0).1] readwrite=randread blocksize=512 iodepth=1000 rate_iops=10 rate_process=poisson ```
I have ``` Jobs: 8 (f=2), 0B/s-0B/s: [_(2698),W(1),r(7),P(676)][13.3%][r=24.3MiB/s,w=357MiB/s][r=49.8k,w=2853 IOPS][eta 23h:54m:01s] ``` Maybe I trimmed my test job too much (I also have a full disk write there in parallel)
(apologies for having sub 10M IOPS there)
I also have several thousand jobs in that file, maybe eta is estimating the pending jobs too? in any case I'll get a good reproducer one that machine is free...
Here's an example (caution: destructive). It runs for 1 minute. ETA starts at 1 minute then jumps to 4m32s. Then the world ends. ``` [global] runtime=30s time_based=1 startdelay=1s filename=/dev/nvme0n1 direct=1...
Output with me patiently pressing 'enter' every 5 seconds: ``` Starting 16 processes Jobs: 8 (f=1), 0B/s-0B/s: [W(1),r(7),P(8)][0.0%][w=88.1MiB/s][w=704 IOPS][eta 49710d:06h:28m:14s] Jobs: 8 (f=8), 0B/s-0B/s: [W(1),r(7),P(8)][10.1%][r=204MiB/s,w=32.3MiB/s][r=418k,w=258 IOPS][eta 01m:02s] Jobs: 8 (f=8),...
I guess I shouldn't ask what the ETA for the fix is? :)