Skip to content

Commit

Permalink
ntb_perf: Wait for link before running test
Browse files Browse the repository at this point in the history
Instead of returning immediately with an error when the link is
down, wait for the link to come up (or the user sends a SIGINT).

This is to make scripting ntb_perf easier.

Signed-off-by: Logan Gunthorpe <[email protected]>
Acked-by: Dave Jiang <[email protected]>
Signed-off-by: Jon Mason <[email protected]>
  • Loading branch information
lsgunth authored and jonmason committed Aug 5, 2016
1 parent 58fd0f3 commit 26dc638
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/ntb/test/ntb_perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ struct perf_ctx {
bool link_is_up;
struct work_struct link_cleanup;
struct delayed_work link_work;
wait_queue_head_t link_wq;
struct dentry *debugfs_node_dir;
struct dentry *debugfs_run;
struct dentry *debugfs_threads;
Expand Down Expand Up @@ -533,6 +534,7 @@ static void perf_link_work(struct work_struct *work)
goto out1;

perf->link_is_up = true;
wake_up(&perf->link_wq);

return;

Expand Down Expand Up @@ -653,7 +655,7 @@ static ssize_t debugfs_run_write(struct file *filp, const char __user *ubuf,
int node, i;
DECLARE_WAIT_QUEUE_HEAD(wq);

if (!perf->link_is_up)
if (wait_event_interruptible(perf->link_wq, perf->link_is_up))
return -ENOLINK;

if (perf->perf_threads == 0)
Expand Down Expand Up @@ -783,6 +785,7 @@ static int perf_probe(struct ntb_client *client, struct ntb_dev *ntb)
mutex_init(&perf->run_mutex);
spin_lock_init(&perf->db_lock);
perf_setup_mw(ntb, perf);
init_waitqueue_head(&perf->link_wq);
INIT_DELAYED_WORK(&perf->link_work, perf_link_work);
INIT_WORK(&perf->link_cleanup, perf_link_cleanup);

Expand Down

0 comments on commit 26dc638

Please sign in to comment.