Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/os/kmem.c
          +++ new/usr/src/uts/common/os/kmem.c
↓ open down ↓ 1618 lines elided ↑ open up ↑
1619 1619          }
1620 1620          kmem_cache_free(kmem_slab_cache, sp);
1621 1621  
1622 1622  slab_alloc_failure:
1623 1623  
1624 1624          vmem_free(vmp, slab, slabsize);
1625 1625  
1626 1626  vmem_alloc_failure:
1627 1627  
1628 1628          kmem_log_event(kmem_failure_log, cp, NULL, NULL);
1629      -        atomic_add_64(&cp->cache_alloc_fail, 1);
     1629 +        atomic_inc_64(&cp->cache_alloc_fail);
1630 1630  
1631 1631          return (NULL);
1632 1632  }
1633 1633  
1634 1634  /*
1635 1635   * Destroy a slab.
1636 1636   */
1637 1637  static void
1638 1638  kmem_slab_destroy(kmem_cache_t *cp, kmem_slab_t *sp)
1639 1639  {
↓ open down ↓ 348 lines elided ↑ open up ↑
1988 1988              (kmflag & (KM_NOSLEEP | KM_PANIC)) == KM_NOSLEEP) {
1989 1989                  kmem_log_event(kmem_failure_log, cp, NULL, NULL);
1990 1990                  if (!construct && cp->cache_destructor != NULL)
1991 1991                          cp->cache_destructor(buf, cp->cache_private);
1992 1992          } else {
1993 1993                  mtbf = 0;
1994 1994          }
1995 1995  
1996 1996          if (mtbf || (construct && cp->cache_constructor != NULL &&
1997 1997              cp->cache_constructor(buf, cp->cache_private, kmflag) != 0)) {
1998      -                atomic_add_64(&cp->cache_alloc_fail, 1);
     1998 +                atomic_inc_64(&cp->cache_alloc_fail);
1999 1999                  btp->bt_bxstat = (intptr_t)bcp ^ KMEM_BUFTAG_FREE;
2000 2000                  if (cp->cache_flags & KMF_DEADBEEF)
2001 2001                          copy_pattern(KMEM_FREE_PATTERN, buf, cp->cache_verify);
2002 2002                  kmem_slab_free(cp, buf);
2003 2003                  return (1);
2004 2004          }
2005 2005  
2006 2006          if (cp->cache_flags & KMF_AUDIT) {
2007 2007                  KMEM_AUDIT(kmem_transaction_log, cp, bcp);
2008 2008          }
↓ open down ↓ 587 lines elided ↑ open up ↑
2596 2596                           * return code of 1). Try again.
2597 2597                           */
2598 2598                          ASSERT(rc == -1);
2599 2599                          return (kmem_cache_alloc(cp, kmflag));
2600 2600                  }
2601 2601                  return (buf);
2602 2602          }
2603 2603  
2604 2604          if (cp->cache_constructor != NULL &&
2605 2605              cp->cache_constructor(buf, cp->cache_private, kmflag) != 0) {
2606      -                atomic_add_64(&cp->cache_alloc_fail, 1);
     2606 +                atomic_inc_64(&cp->cache_alloc_fail);
2607 2607                  kmem_slab_free(cp, buf);
2608 2608                  return (NULL);
2609 2609          }
2610 2610  
2611 2611          return (buf);
2612 2612  }
2613 2613  
2614 2614  /*
2615 2615   * The freed argument tells whether or not kmem_cache_free_debug() has already
2616 2616   * been called so that we can avoid the duplicate free error. For example, a
↓ open down ↓ 2253 lines elided ↑ open up ↑
4870 4870                   */
4871 4871                  if (kmem_cache_alloc_debug(cp, callback->kmm_to_buf,
4872 4872                      KM_NOSLEEP, 1, caller()) != 0) {
4873 4873                          KMEM_STAT_ADD(kmem_move_stats.kms_alloc_fail);
4874 4874                          kmem_move_end(cp, callback);
4875 4875                          return;
4876 4876                  }
4877 4877          } else if (cp->cache_constructor != NULL &&
4878 4878              cp->cache_constructor(callback->kmm_to_buf, cp->cache_private,
4879 4879              KM_NOSLEEP) != 0) {
4880      -                atomic_add_64(&cp->cache_alloc_fail, 1);
     4880 +                atomic_inc_64(&cp->cache_alloc_fail);
4881 4881                  KMEM_STAT_ADD(kmem_move_stats.kms_constructor_fail);
4882 4882                  kmem_slab_free(cp, callback->kmm_to_buf);
4883 4883                  kmem_move_end(cp, callback);
4884 4884                  return;
4885 4885          }
4886 4886  
4887 4887          KMEM_STAT_ADD(kmem_move_stats.kms_callbacks);
4888 4888          KMEM_STAT_COND_ADD((callback->kmm_flags & KMM_NOTIFY),
4889 4889              kmem_move_stats.kms_notify_callbacks);
4890 4890          cp->cache_defrag->kmd_callbacks++;
↓ open down ↓ 697 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX