sbitmap.c (678418c6128f112fc5584beb5cdd21fbc225badf) | sbitmap.c (b5fcf7871acb7f9a3a8ed341a68bd86aba3e254a) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2016 Facebook 4 * Copyright (C) 2013-2014 Jens Axboe 5 */ 6 7#include <linux/sched.h> 8#include <linux/random.h> --- 443 unchanged lines hidden (view full) --- 452 if (sbq->wake_batch != wake_batch) 453 WRITE_ONCE(sbq->wake_batch, wake_batch); 454} 455 456void sbitmap_queue_recalculate_wake_batch(struct sbitmap_queue *sbq, 457 unsigned int users) 458{ 459 unsigned int wake_batch; | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2016 Facebook 4 * Copyright (C) 2013-2014 Jens Axboe 5 */ 6 7#include <linux/sched.h> 8#include <linux/random.h> --- 443 unchanged lines hidden (view full) --- 452 if (sbq->wake_batch != wake_batch) 453 WRITE_ONCE(sbq->wake_batch, wake_batch); 454} 455 456void sbitmap_queue_recalculate_wake_batch(struct sbitmap_queue *sbq, 457 unsigned int users) 458{ 459 unsigned int wake_batch; |
460 unsigned int min_batch; | |
461 unsigned int depth = (sbq->sb.depth + users - 1) / users; 462 | 460 unsigned int depth = (sbq->sb.depth + users - 1) / users; 461 |
463 min_batch = sbq->sb.depth >= (4 * SBQ_WAIT_QUEUES) ? 4 : 1; 464 | |
465 wake_batch = clamp_val(depth / SBQ_WAIT_QUEUES, | 462 wake_batch = clamp_val(depth / SBQ_WAIT_QUEUES, |
466 min_batch, SBQ_WAKE_BATCH); | 463 1, SBQ_WAKE_BATCH); |
467 468 WRITE_ONCE(sbq->wake_batch, wake_batch); 469} 470EXPORT_SYMBOL_GPL(sbitmap_queue_recalculate_wake_batch); 471 472void sbitmap_queue_resize(struct sbitmap_queue *sbq, unsigned int depth) 473{ 474 sbitmap_queue_update_wake_batch(sbq, depth); --- 299 unchanged lines hidden --- | 464 465 WRITE_ONCE(sbq->wake_batch, wake_batch); 466} 467EXPORT_SYMBOL_GPL(sbitmap_queue_recalculate_wake_batch); 468 469void sbitmap_queue_resize(struct sbitmap_queue *sbq, unsigned int depth) 470{ 471 sbitmap_queue_update_wake_batch(sbq, depth); --- 299 unchanged lines hidden --- |