Commit bd2fae2f authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

thread: Change remaining direct accesses to io_channel outside lib/thread to helper functions



This is the same effort as spdk_poller.

The following patches will move the definition of struct spdk_thread and
enum spdk_thread_state from include/spdk_internal/thread.h to
lib/thread/thread.c.

Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I7f7bdfdd7a7b1b834d16d79638a4fd2d63e9daf6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7800


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
parent 5fdb2b76
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -108,6 +108,8 @@ const char *spdk_poller_get_state_str(struct spdk_poller *poller);
uint64_t spdk_poller_get_period_ticks(struct spdk_poller *poller);
void spdk_poller_get_stats(struct spdk_poller *poller, struct spdk_poller_stats *stats);

int spdk_io_channel_get_ref_count(struct spdk_io_channel *ch);

const char *spdk_io_device_get_name(struct io_device *dev);

struct spdk_poller *spdk_thread_get_first_active_poller(struct spdk_thread *thread);
@@ -117,4 +119,7 @@ struct spdk_poller *spdk_thread_get_next_timed_poller(struct spdk_poller *prev);
struct spdk_poller *spdk_thread_get_first_paused_poller(struct spdk_thread *thread);
struct spdk_poller *spdk_thread_get_next_paused_poller(struct spdk_poller *prev);

struct spdk_io_channel *spdk_thread_get_first_io_channel(struct spdk_thread *thread);
struct spdk_io_channel *spdk_thread_get_next_io_channel(struct spdk_io_channel *prev);

#endif /* SPDK_THREAD_INTERNAL_H_ */
+3 −2
Original line number Diff line number Diff line
@@ -322,7 +322,7 @@ rpc_get_io_channel(struct spdk_io_channel *ch, struct spdk_json_write_ctx *w)
{
	spdk_json_write_object_begin(w);
	spdk_json_write_named_string(w, "name", spdk_io_device_get_name(ch->dev));
	spdk_json_write_named_uint32(w, "ref", ch->ref);
	spdk_json_write_named_uint32(w, "ref", spdk_io_channel_get_ref_count(ch));
	spdk_json_write_object_end(w);
}

@@ -337,7 +337,8 @@ _rpc_thread_get_io_channels(void *arg)
	spdk_json_write_named_string(ctx->w, "name", spdk_thread_get_name(thread));

	spdk_json_write_named_array_begin(ctx->w, "io_channels");
	TAILQ_FOREACH(ch, &thread->io_channels, tailq) {
	for (ch = spdk_thread_get_first_io_channel(thread); ch != NULL;
	     ch = spdk_thread_get_next_io_channel(ch)) {
		rpc_get_io_channel(ch, ctx->w);
	}
	spdk_json_write_array_end(ctx->w);
+3 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@
	spdk_poller_get_state_str;
	spdk_poller_get_period_ticks;
	spdk_poller_get_stats;
	spdk_io_channel_get_ref_count;
	spdk_io_device_get_name;
	spdk_thread_get_first_active_poller;
	spdk_thread_get_next_active_poller;
@@ -68,6 +69,8 @@
	spdk_thread_get_next_timed_poller;
	spdk_thread_get_first_paused_poller;
	spdk_thread_get_next_paused_poller;
	spdk_thread_get_first_io_channel;
	spdk_thread_get_next_io_channel;

	local: *;
};
+18 −0
Original line number Diff line number Diff line
@@ -1606,6 +1606,18 @@ spdk_thread_get_next_paused_poller(struct spdk_poller *prev)
	return TAILQ_NEXT(prev, tailq);
}

struct spdk_io_channel *
spdk_thread_get_first_io_channel(struct spdk_thread *thread)
{
	return TAILQ_FIRST(&thread->io_channels);
}

struct spdk_io_channel *
spdk_thread_get_next_io_channel(struct spdk_io_channel *prev)
{
	return TAILQ_NEXT(prev, tailq);
}

struct call_thread {
	struct spdk_thread *cur_thread;
	spdk_msg_fn fn;
@@ -2068,6 +2080,12 @@ spdk_io_channel_get_io_device(struct spdk_io_channel *ch)
	return ch->dev->io_device;
}

int
spdk_io_channel_get_ref_count(struct spdk_io_channel *ch)
{
	return ch->ref;
}

struct spdk_io_channel_iter {
	void *io_device;
	struct io_device *dev;