};
static LIPE_LIST_HEAD(lamigo_job_list);
-static LIPE_LIST_HEAD(lamigo_failed_job_list); /* failed jobs to repeat */
+static LIPE_LIST_HEAD(lamigo_failed_job_list); /* failed/other jobs to run */
struct lamigo_head {
struct fid_hash_head lh_hash;
struct lipe_list_head lh_list; /* ordered list by record index */
static LIPE_LIST_HEAD(lamigo_agent_list);
static int lamigo_agent_count;
static int lamigo_max_jobs; /* max jobs for all agents */
-static int lamigo_jobs_running; /* jobs running at the moment */
+static int lamigo_jobs_running; /* jobs in lamigo_job_list */
+static int lamigo_jobs_delayed; /* jobs in lamigo_failed_job_list */
static char fsname[MAX_OBD_NAME + 1];
static void *chglog_hdlr;
if (rc < 0) {
LX_ERROR("cannot spawn a new job: %s\n", strerror(-rc));
lipe_list_add_tail(&rj->rj_list, &lamigo_failed_job_list);
+ lamigo_jobs_delayed++;
return 1;
}
/*
srj->rj_pool = fast_pools->pl_pool;
lipe_list_add_tail(&srj->rj_list, &lamigo_failed_job_list);
+ lamigo_jobs_delayed++;
}
static int lamigo_update_one(struct fid_rec *f)
rj->rj_callback = lamigo_alr_mirror_cb;
}
-
return lamigo_submit_job(rj);
}
rj = lipe_list_entry(lamigo_failed_job_list.next,
struct resync_job, rj_list);
lipe_list_del(&rj->rj_list);
+ lamigo_jobs_delayed--;
rc = lamigo_submit_job(rj);
LX_DEBUG("tried to resubmit failed job %p: rc=%d\n", rj, rc);
if (rc != 0)
rj->rj_pid = 0;
rj->rj_agent = NULL;
lipe_list_add_tail(&rj->rj_list, &lamigo_failed_job_list);
+ lamigo_jobs_delayed++;
rj = NULL;
} else if (retval == 127) {
/* likely invalid setup on the agent (missing lfs?) */
return;
progress_last_processed = stats.s_processed;
- LX_INFO("%lu processed, %lu replicated, %lu busy, %lu in queue, %lu hot skipped, %lu ro2hot, %lu rw2hot, %lu rw2cold\n",
+ LX_INFO("%lu processed, %lu replicated, %lu busy, %lu running, "
+ "%lu delayed, %lu awaiting, %lu hot skipped, %lu ro2hot, "
+ "%lu rw2hot, %lu rw2cold\n",
stats.s_processed,
stats.s_replicated,
stats.s_busy,
+ lamigo_jobs_running,
+ lamigo_jobs_delayed,
head.lh_cached_count,
stats.s_skip_hot,
stats.s_replicate_ro2hot,
if (rc == 1) {
/* probably a dedicated list would be better */
lipe_list_add_tail(&rj->rj_list, &lamigo_failed_job_list);
+ lamigo_jobs_delayed++;
}
}