module_param(oss_num_threads, int, 0444);
MODULE_PARM_DESC(oss_num_threads, "number of OSS service threads to start");
+static unsigned int oss_cpu_bind = 1;
+module_param(oss_cpu_bind, uint, 0444);
+MODULE_PARM_DESC(oss_cpu_bind,
+ "bind OSS service threads to particular CPU partitions");
+
static int oss_num_create_threads;
module_param(oss_num_create_threads, int, 0444);
MODULE_PARM_DESC(oss_num_create_threads, "number of OSS create threads to start");
+static unsigned int oss_create_cpu_bind = 1;
+module_param(oss_create_cpu_bind, uint, 0444);
+MODULE_PARM_DESC(oss_create_cpu_bind,
+ "bind OSS create threads to particular CPU partitions");
+
static char *oss_cpts;
module_param(oss_cpts, charp, 0444);
MODULE_PARM_DESC(oss_cpts, "CPU partitions OSS threads should run on");
.tc_nthrs_base = OSS_NTHRS_BASE,
.tc_nthrs_max = oss_max_threads,
.tc_nthrs_user = oss_num_threads,
- .tc_cpu_affinity = 1,
+ .tc_cpu_bind = oss_cpu_bind,
.tc_ctx_tags = LCT_DT_THREAD,
},
.psc_cpt = {
.cc_pattern = oss_cpts,
+ .cc_affinity = true,
},
.psc_ops = {
.so_req_handler = tgt_request_handle,
};
ost->ost_service = ptlrpc_register_service(&svc_conf,
&obd->obd_kset,
- obd->obd_proc_entry);
+ obd->obd_debugfs_entry);
if (IS_ERR(ost->ost_service)) {
rc = PTR_ERR(ost->ost_service);
CERROR("failed to start service: %d\n", rc);
.tc_nthrs_base = OSS_CR_NTHRS_BASE,
.tc_nthrs_max = OSS_CR_NTHRS_MAX,
.tc_nthrs_user = oss_num_create_threads,
- .tc_cpu_affinity = 1,
+ .tc_cpu_bind = oss_create_cpu_bind,
.tc_ctx_tags = LCT_DT_THREAD,
},
.psc_cpt = {
.cc_pattern = oss_cpts,
+ .cc_affinity = true,
},
.psc_ops = {
.so_req_handler = tgt_request_handle,
};
ost->ost_create_service = ptlrpc_register_service(&svc_conf,
&obd->obd_kset,
- obd->obd_proc_entry);
+ obd->obd_debugfs_entry);
if (IS_ERR(ost->ost_create_service)) {
rc = PTR_ERR(ost->ost_create_service);
CERROR("failed to start OST create service: %d\n", rc);
rc = cfs_cpt_set_node(ost_io_cptable, cpt++, i);
if (!rc) {
- CWARN("OSS Failed to set node %d for"
- "IO CPT table\n", i);
+ CWARN("OSS Failed to set node %d for IO CPT table\n",
+ i);
cfs_cpt_table_free(ost_io_cptable);
ost_io_cptable = NULL;
break;
.tc_nthrs_base = OSS_NTHRS_BASE,
.tc_nthrs_max = oss_max_threads,
.tc_nthrs_user = oss_num_threads,
- .tc_cpu_affinity = 1,
+ .tc_cpu_bind = oss_cpu_bind,
.tc_ctx_tags = LCT_DT_THREAD,
},
.psc_cpt = {
.cc_cptable = ost_io_cptable,
.cc_pattern = ost_io_cptable == NULL ?
oss_io_cpts : NULL,
+ .cc_affinity = true,
},
.psc_ops = {
.so_thr_init = tgt_io_thread_init,
};
ost->ost_io_service = ptlrpc_register_service(&svc_conf,
&obd->obd_kset,
- obd->obd_proc_entry);
+ obd->obd_debugfs_entry);
if (IS_ERR(ost->ost_io_service)) {
rc = PTR_ERR(ost->ost_io_service);
CERROR("failed to start OST I/O service: %d\n", rc);
.tc_nthrs_base = OSS_CR_NTHRS_BASE,
.tc_nthrs_max = OSS_CR_NTHRS_MAX,
.tc_nthrs_user = oss_num_create_threads,
- .tc_cpu_affinity = 1,
+ .tc_cpu_bind = oss_create_cpu_bind,
.tc_ctx_tags = LCT_DT_THREAD,
},
.psc_cpt = {
- .cc_pattern = oss_cpts,
+ .cc_pattern = oss_cpts,
+ .cc_affinity = true,
},
.psc_ops = {
.so_req_handler = tgt_request_handle,
};
ost->ost_seq_service = ptlrpc_register_service(&svc_conf,
&obd->obd_kset,
- obd->obd_proc_entry);
+ obd->obd_debugfs_entry);
if (IS_ERR(ost->ost_seq_service)) {
rc = PTR_ERR(ost->ost_seq_service);
CERROR("failed to start OST seq service: %d\n", rc);
.tc_nthrs_base = OSS_CR_NTHRS_BASE,
.tc_nthrs_max = OSS_CR_NTHRS_MAX,
.tc_nthrs_user = oss_num_create_threads,
- .tc_cpu_affinity = 1,
+ .tc_cpu_bind = oss_create_cpu_bind,
.tc_ctx_tags = LCT_MD_THREAD |
LCT_DT_THREAD,
},
.psc_cpt = {
.cc_pattern = oss_cpts,
+ .cc_affinity = true,
},
.psc_ops = {
.so_req_handler = tgt_request_handle,
};
ost->ost_out_service = ptlrpc_register_service(&svc_conf,
&obd->obd_kset,
- obd->obd_proc_entry);
+ obd->obd_debugfs_entry);
if (IS_ERR(ost->ost_out_service)) {
rc = PTR_ERR(ost->ost_out_service);
CERROR("failed to start out service: %d\n", rc);
}
/* use obd ops to offer management infrastructure */
-static struct obd_ops ost_obd_ops = {
+static const struct obd_ops ost_obd_ops = {
.o_owner = THIS_MODULE,
.o_setup = ost_setup,
.o_cleanup = ost_cleanup,
ENTRY;
- rc = class_register_type(&ost_obd_ops, NULL, true, NULL,
+ rc = class_register_type(&ost_obd_ops, NULL, false, NULL,
LUSTRE_OSS_NAME, NULL);
RETURN(rc);