Author: mav
Date: Sat Jul 12 02:29:33 2014
New Revision: 268553
URL: http://svnweb.freebsd.org/changeset/base/268553

Log:
  MFC r268204:
  Use separate memory type M_CTLIO for I/Os.
  
  CTL allocate large amount of RAM.  This change give some more stats.

Modified:
  stable/10/sys/cam/ctl/ctl.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cam/ctl/ctl.c
==============================================================================
--- stable/10/sys/cam/ctl/ctl.c Sat Jul 12 02:28:11 2014        (r268552)
+++ stable/10/sys/cam/ctl/ctl.c Sat Jul 12 02:29:33 2014        (r268553)
@@ -460,6 +460,7 @@ static struct cdevsw ctl_cdevsw = {
 
 
 MALLOC_DEFINE(M_CTL, "ctlmem", "Memory used for CTL");
+MALLOC_DEFINE(M_CTLIO, "ctlio", "Memory used for CTL requests");
 
 static int ctl_module_event_handler(module_t, int /*modeventtype_t*/, void *);
 
@@ -3387,7 +3388,7 @@ ctl_pool_create(struct ctl_softc *ctl_so
         * tracking.
         */
        for (i = 0; i < total_ctl_io; i++) {
-               cur_io = (union ctl_io *)malloc(sizeof(*cur_io), M_CTL,
+               cur_io = (union ctl_io *)malloc(sizeof(*cur_io), M_CTLIO,
                                                M_NOWAIT);
                if (cur_io == NULL) {
                        retval = ENOMEM;
@@ -3406,7 +3407,7 @@ ctl_pool_create(struct ctl_softc *ctl_so
                                                              links);
                        STAILQ_REMOVE(&pool->free_queue, &cur_io->io_hdr,
                                      ctl_io_hdr, links);
-                       free(cur_io, M_CTL);
+                       free(cur_io, M_CTLIO);
                }
 
                free(pool, M_CTL);
@@ -3468,7 +3469,7 @@ ctl_pool_release(struct ctl_io_pool *poo
        while ((io = (union ctl_io *)STAILQ_FIRST(&pool->free_queue)) != NULL) {
                STAILQ_REMOVE(&pool->free_queue, &io->io_hdr, ctl_io_hdr,
                              links);
-               free(io, M_CTL);
+               free(io, M_CTLIO);
        }
 
        STAILQ_REMOVE(&ctl_softc->io_pools, pool, ctl_io_pool, links);
@@ -3572,7 +3573,7 @@ ctl_alloc_io(void *pool_ref)
         * The emergency pool (if it exists) didn't have one, so try an
         * atomic (i.e. nonblocking) malloc and see if we get lucky.
         */
-       io = (union ctl_io *)malloc(sizeof(*io), M_CTL, M_NOWAIT);
+       io = (union ctl_io *)malloc(sizeof(*io), M_CTLIO, M_NOWAIT);
        if (io != NULL) {
                /*
                 * If the emergency pool exists but is empty, add this
@@ -3664,7 +3665,7 @@ ctl_free_io(union ctl_io *io)
                 * Otherwise, just free it.  We probably malloced it and
                 * the emergency pool wasn't available.
                 */
-               free(io, M_CTL);
+               free(io, M_CTLIO);
        }
 
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to