svn commit: r265654 - in stable/9/sys: cam/ctl conf modules/ctl
Alexander Motin
mav at FreeBSD.org
Thu May 8 08:21:54 UTC 2014
Author: mav
Date: Thu May 8 08:21:52 2014
New Revision: 265654
URL: http://svnweb.freebsd.org/changeset/base/265654
Log:
MFC r263811 (by trasz):
Remove ctl_mem_pool.{c,h}.
Deleted:
stable/9/sys/cam/ctl/ctl_mem_pool.c
stable/9/sys/cam/ctl/ctl_mem_pool.h
Modified:
stable/9/sys/cam/ctl/README.ctl.txt
stable/9/sys/cam/ctl/ctl_frontend_cam_sim.c
stable/9/sys/cam/ctl/ctl_frontend_internal.c
stable/9/sys/conf/files
stable/9/sys/modules/ctl/Makefile
Directory Properties:
stable/9/ (props changed)
stable/9/sys/ (props changed)
stable/9/sys/conf/ (props changed)
stable/9/sys/modules/ (props changed)
Modified: stable/9/sys/cam/ctl/README.ctl.txt
==============================================================================
--- stable/9/sys/cam/ctl/README.ctl.txt Thu May 8 08:20:23 2014 (r265653)
+++ stable/9/sys/cam/ctl/README.ctl.txt Thu May 8 08:21:52 2014 (r265654)
@@ -394,14 +394,6 @@ ctl_ioctl.h:
This defines all ioctls available through the CTL character device, and
the data structures needed for those ioctls.
-ctl_mem_pool.c
-ctl_mem_pool.h:
---------------
-
-Generic memory pool implementation. This is currently only used by the
-internal frontend. The internal frontend can probably be rewritten to use
-UMA zones and this can be removed.
-
ctl_private.h:
-------------
Modified: stable/9/sys/cam/ctl/ctl_frontend_cam_sim.c
==============================================================================
--- stable/9/sys/cam/ctl/ctl_frontend_cam_sim.c Thu May 8 08:20:23 2014 (r265653)
+++ stable/9/sys/cam/ctl/ctl_frontend_cam_sim.c Thu May 8 08:21:52 2014 (r265654)
@@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
#include <cam/ctl/ctl.h>
#include <cam/ctl/ctl_frontend.h>
#include <cam/ctl/ctl_frontend_internal.h>
-#include <cam/ctl/ctl_mem_pool.h>
#include <cam/ctl/ctl_debug.h>
#define io_ptr spriv_ptr1
Modified: stable/9/sys/cam/ctl/ctl_frontend_internal.c
==============================================================================
--- stable/9/sys/cam/ctl/ctl_frontend_internal.c Thu May 8 08:20:23 2014 (r265653)
+++ stable/9/sys/cam/ctl/ctl_frontend_internal.c Thu May 8 08:21:52 2014 (r265654)
@@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/sysctl.h>
+#include <vm/uma.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_da.h>
#include <cam/ctl/ctl_io.h>
@@ -73,7 +74,6 @@ __FBSDID("$FreeBSD$");
#include <cam/ctl/ctl_util.h>
#include <cam/ctl/ctl_ha.h>
#include <cam/ctl/ctl_private.h>
-#include <cam/ctl/ctl_mem_pool.h>
#include <cam/ctl/ctl_debug.h>
#include <cam/ctl/ctl_scsi_all.h>
#include <cam/ctl/ctl_error.h>
@@ -118,7 +118,6 @@ struct cfi_metatask {
cfi_tasktype tasktype;
cfi_mt_status status;
union cfi_taskinfo taskinfo;
- struct ctl_mem_element *element;
void *cfi_context;
STAILQ_ENTRY(cfi_metatask) links;
};
@@ -153,7 +152,6 @@ struct cfi_lun {
int blocksize_powerof2;
uint32_t cur_tag_num;
cfi_lun_state state;
- struct ctl_mem_element *element;
struct cfi_softc *softc;
STAILQ_HEAD(, cfi_lun_io) io_list;
STAILQ_ENTRY(cfi_lun) links;
@@ -181,12 +179,13 @@ struct cfi_softc {
cfi_flags flags;
STAILQ_HEAD(, cfi_lun) lun_list;
STAILQ_HEAD(, cfi_metatask) metatask_list;
- struct ctl_mem_pool lun_pool;
- struct ctl_mem_pool metatask_pool;
};
MALLOC_DEFINE(M_CTL_CFI, "ctlcfi", "CTL CFI");
+static uma_zone_t cfi_lun_zone;
+static uma_zone_t cfi_metatask_zone;
+
static struct cfi_softc fetd_internal_softc;
extern int ctl_disable;
@@ -280,48 +279,15 @@ cfi_init(void)
if (ctl_frontend_register(fe, (softc->flags & CTL_FLAG_MASTER_SHELF)) != 0)
{
printf("%s: internal frontend registration failed\n", __func__);
- retval = 1;
- goto bailout;
+ return (0);
}
- if (ctl_init_mem_pool(&softc->lun_pool,
- sizeof(struct cfi_lun),
- CTL_MEM_POOL_PERM_GROW, /*grow_inc*/ 3,
- /* initial_pool_size */ CTL_MAX_LUNS) != 0) {
- printf("%s: can't initialize LUN memory pool\n", __func__);
- retval = 1;
- goto bailout_error;
- }
-
- if (ctl_init_mem_pool(&softc->metatask_pool,
- sizeof(struct cfi_metatask),
- CTL_MEM_POOL_PERM_GROW, /*grow_inc*/ 3,
- /*initial_pool_size*/ 10) != 0) {
- printf("%s: can't initialize metatask memory pool\n", __func__);
- retval = 2;
- goto bailout_error;
- }
-bailout:
+ cfi_lun_zone = uma_zcreate("cfi_lun", sizeof(struct cfi_lun),
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+ cfi_metatask_zone = uma_zcreate("cfi_metatask", sizeof(struct cfi_metatask),
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
return (0);
-
-bailout_error:
-
- switch (retval) {
- case 3:
- ctl_shrink_mem_pool(&softc->metatask_pool);
- /* FALLTHROUGH */
- case 2:
- ctl_shrink_mem_pool(&softc->lun_pool);
- /* FALLTHROUGH */
- case 1:
- ctl_frontend_deregister(fe);
- break;
- default:
- break;
- }
-
- return (ENOMEM);
}
void
@@ -337,11 +303,8 @@ cfi_shutdown(void)
if (ctl_frontend_deregister(&softc->fe) != 0)
printf("%s: ctl_frontend_deregister() failed\n", __func__);
- if (ctl_shrink_mem_pool(&softc->lun_pool) != 0)
- printf("%s: error shrinking LUN pool\n", __func__);
-
- if (ctl_shrink_mem_pool(&softc->metatask_pool) != 0)
- printf("%s: error shrinking LUN pool\n", __func__);
+ uma_zdestroy(cfi_lun_zone);
+ uma_zdestroy(cfi_metatask_zone);
}
static int
@@ -403,7 +366,6 @@ cfi_targ_disable(void *arg, struct ctl_i
static int
cfi_lun_enable(void *arg, struct ctl_id target_id, int lun_id)
{
- struct ctl_mem_element *element;
struct cfi_softc *softc;
struct cfi_lun *lun;
int found;
@@ -428,16 +390,12 @@ cfi_lun_enable(void *arg, struct ctl_id
if (found != 0)
return (0);
- element = ctl_alloc_mem_element(&softc->lun_pool, /*can_wait*/ 0);
-
- if (element == NULL) {
+ lun = uma_zalloc(cfi_lun_zone, M_NOWAIT | M_ZERO);
+ if (lun == NULL) {
printf("%s: unable to allocate LUN structure\n", __func__);
return (1);
}
- lun = (struct cfi_lun *)element->bytes;
-
- lun->element = element;
lun->target_id = target_id;
lun->lun_id = lun_id;
lun->cur_tag_num = 0;
@@ -490,7 +448,7 @@ cfi_lun_disable(void *arg, struct ctl_id
return (1);
}
- ctl_free_mem_element(lun->element);
+ uma_zfree(cfi_lun_zone, lun);
return (0);
}
@@ -1687,106 +1645,20 @@ cfi_action(struct cfi_metatask *metatask
}
}
-#ifdef oldapi
-void
-cfi_shutdown_shelf(cfi_cb_t callback, void *callback_arg)
-{
- struct ctl_mem_element *element;
- struct cfi_softc *softc;
- struct cfi_metatask *metatask;
-
- softc = &fetd_internal_softc;
-
- element = ctl_alloc_mem_element(&softc->metatask_pool, /*can_wait*/ 0);
- if (element == NULL) {
- callback(callback_arg,
- /*status*/ CFI_MT_ERROR,
- /*sluns_found*/ 0,
- /*sluns_complete*/ 0,
- /*sluns_failed*/ 0);
- return;
- }
-
- metatask = (struct cfi_metatask *)element->bytes;
-
- memset(metatask, 0, sizeof(*metatask));
- metatask->tasktype = CFI_TASK_SHUTDOWN;
- metatask->status = CFI_MT_NONE;
- metatask->taskinfo.startstop.callback = callback;
- metatask->taskinfo.startstop.callback_arg = callback_arg;
- metatask->element = element;
-
- cfi_action(softc, metatask);
-
- /*
- * - send a report luns to lun 0, get LUN list.
- * - send an inquiry to each lun
- * - send a stop/offline to each direct access LUN
- * - if we get a reservation conflict, reset the LUN and then
- * retry sending the stop/offline
- * - return status back to the caller
- */
-}
-
-void
-cfi_start_shelf(cfi_cb_t callback, void *callback_arg)
-{
- struct ctl_mem_element *element;
- struct cfi_softc *softc;
- struct cfi_metatask *metatask;
-
- softc = &fetd_internal_softc;
-
- element = ctl_alloc_mem_element(&softc->metatask_pool, /*can_wait*/ 0);
- if (element == NULL) {
- callback(callback_arg,
- /*status*/ CFI_MT_ERROR,
- /*sluns_found*/ 0,
- /*sluns_complete*/ 0,
- /*sluns_failed*/ 0);
- return;
- }
-
- metatask = (struct cfi_metatask *)element->bytes;
-
- memset(metatask, 0, sizeof(*metatask));
- metatask->tasktype = CFI_TASK_STARTUP;
- metatask->status = CFI_MT_NONE;
- metatask->taskinfo.startstop.callback = callback;
- metatask->taskinfo.startstop.callback_arg = callback_arg;
- metatask->element = element;
-
- cfi_action(softc, metatask);
-
- /*
- * - send a report luns to lun 0, get LUN list.
- * - send an inquiry to each lun
- * - send a stop/offline to each direct access LUN
- * - if we get a reservation conflict, reset the LUN and then
- * retry sending the stop/offline
- * - return status back to the caller
- */
-}
-
-#endif
-
struct cfi_metatask *
cfi_alloc_metatask(int can_wait)
{
- struct ctl_mem_element *element;
struct cfi_metatask *metatask;
struct cfi_softc *softc;
softc = &fetd_internal_softc;
- element = ctl_alloc_mem_element(&softc->metatask_pool, can_wait);
- if (element == NULL)
+ metatask = uma_zalloc(cfi_metatask_zone,
+ (can_wait ? M_WAITOK : M_NOWAIT) | M_ZERO);
+ if (metatask == NULL)
return (NULL);
- metatask = (struct cfi_metatask *)element->bytes;
- memset(metatask, 0, sizeof(*metatask));
metatask->status = CFI_MT_NONE;
- metatask->element = element;
return (metatask);
}
@@ -1794,7 +1666,8 @@ cfi_alloc_metatask(int can_wait)
void
cfi_free_metatask(struct cfi_metatask *metatask)
{
- ctl_free_mem_element(metatask->element);
+
+ uma_zfree(cfi_metatask_zone, metatask);
}
/*
Modified: stable/9/sys/conf/files
==============================================================================
--- stable/9/sys/conf/files Thu May 8 08:20:23 2014 (r265653)
+++ stable/9/sys/conf/files Thu May 8 08:21:52 2014 (r265654)
@@ -124,7 +124,6 @@ cam/ctl/ctl_cmd_table.c optional ctl
cam/ctl/ctl_frontend.c optional ctl
cam/ctl/ctl_frontend_cam_sim.c optional ctl
cam/ctl/ctl_frontend_internal.c optional ctl
-cam/ctl/ctl_mem_pool.c optional ctl
cam/ctl/ctl_scsi_all.c optional ctl
cam/ctl/ctl_error.c optional ctl
cam/ctl/ctl_util.c optional ctl
Modified: stable/9/sys/modules/ctl/Makefile
==============================================================================
--- stable/9/sys/modules/ctl/Makefile Thu May 8 08:20:23 2014 (r265653)
+++ stable/9/sys/modules/ctl/Makefile Thu May 8 08:21:52 2014 (r265654)
@@ -12,7 +12,6 @@ SRCS+= ctl_cmd_table.c
SRCS+= ctl_frontend.c
SRCS+= ctl_frontend_cam_sim.c
SRCS+= ctl_frontend_internal.c
-SRCS+= ctl_mem_pool.c
SRCS+= ctl_scsi_all.c
SRCS+= ctl_error.c
SRCS+= ctl_util.c
More information about the svn-src-stable-9
mailing list