Lines Matching +full:burst +full:- +full:write
9 * or https://opensource.org/licenses/CDDL-1.0.
32 * burst: Number to allow in an interval before rate limiting
36 zfs_ratelimit_init(zfs_ratelimit_t *rl, unsigned int *burst, in zfs_ratelimit_init() argument
39 rl->count = 0; in zfs_ratelimit_init()
40 rl->start = 0; in zfs_ratelimit_init()
41 rl->interval = interval; in zfs_ratelimit_init()
42 rl->burst = burst; in zfs_ratelimit_init()
43 mutex_init(&rl->lock, NULL, MUTEX_DEFAULT, NULL); in zfs_ratelimit_init()
54 mutex_destroy(&rl->lock); in zfs_ratelimit_fini()
58 * Re-implementation of the kernel's __ratelimit() function
60 * We had to write our own rate limiter because the kernel's __ratelimit()
82 mutex_enter(&rl->lock); in zfs_ratelimit()
85 elapsed = now - rl->start; in zfs_ratelimit()
87 rl->count++; in zfs_ratelimit()
88 if (NSEC2SEC(elapsed) >= rl->interval) { in zfs_ratelimit()
89 rl->start = now; in zfs_ratelimit()
90 rl->count = 0; in zfs_ratelimit()
92 if (rl->count >= *rl->burst) { in zfs_ratelimit()
96 mutex_exit(&rl->lock); in zfs_ratelimit()