Commit 530f683d authored by Mike Snitzer's avatar Mike Snitzer
Browse files

dm bufio: move dm_bufio_client members to avoid spanning cachelines



Movement also consolidates holes in dm_bufio_client struct. But the
overall size of the struct isn't changed.

Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
parent 79118806
Loading
Loading
Loading
Loading
+13 −11
Original line number Diff line number Diff line
@@ -936,13 +936,16 @@ static void cache_remove_range(struct dm_buffer_cache *bc,
 *	context.
 */
struct dm_bufio_client {
	struct mutex lock;
	spinlock_t spinlock;
	bool no_sleep;

	struct block_device *bdev;
	unsigned int block_size;
	s8 sectors_per_block_bits;

	bool no_sleep;
	struct mutex lock;
	spinlock_t spinlock;

	int async_write_error;

	void (*alloc_callback)(struct dm_buffer *buf);
	void (*write_callback)(struct dm_buffer *buf);
	struct kmem_cache *slab_buffer;
@@ -954,23 +957,22 @@ struct dm_bufio_client {

	unsigned int minimum_buffers;

	struct dm_buffer_cache cache;
	wait_queue_head_t free_buffer_wait;

	sector_t start;

	int async_write_error;

	struct list_head client_list;

	struct shrinker shrinker;
	struct work_struct shrink_work;
	atomic_long_t need_shrink;

	wait_queue_head_t free_buffer_wait;

	struct list_head client_list;

	/*
	 * Used by global_cleanup to sort the clients list.
	 */
	unsigned long oldest_buffer;

	struct dm_buffer_cache cache;
};

static DEFINE_STATIC_KEY_FALSE(no_sleep_enabled);