Print this page
5513 KM_NORMALPRI should be documented in kmem_alloc(9f) and kmem_cache_create(9f) man pages
14465 Present KM_NOSLEEP_LAZY as documented interface
Change-Id: I002ec28ddf390650f1fcba1ca94f6abfdb241439

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/dtrace/dtrace.c
          +++ new/usr/src/uts/common/dtrace/dtrace.c
↓ open down ↓ 11595 lines elided ↑ open up ↑
11596 11596                   * is only possible that this is a DR event.  In this case,
11597 11597                   * the buffer size must match our specified size.
11598 11598                   */
11599 11599                  if (buf->dtb_tomax != NULL) {
11600 11600                          ASSERT(buf->dtb_size == size);
11601 11601                          continue;
11602 11602                  }
11603 11603  
11604 11604                  ASSERT(buf->dtb_xamot == NULL);
11605 11605  
11606      -                if ((buf->dtb_tomax = kmem_zalloc(size,
11607      -                    KM_NOSLEEP | KM_NORMALPRI)) == NULL)
     11606 +                if ((buf->dtb_tomax = kmem_zalloc(size, KM_NOSLEEP_LAZY)) ==
     11607 +                    NULL)
11608 11608                          goto err;
11609 11609  
11610 11610                  buf->dtb_size = size;
11611 11611                  buf->dtb_flags = flags;
11612 11612                  buf->dtb_offset = 0;
11613 11613                  buf->dtb_drops = 0;
11614 11614  
11615 11615                  if (flags & DTRACEBUF_NOSWITCH)
11616 11616                          continue;
11617 11617  
11618      -                if ((buf->dtb_xamot = kmem_zalloc(size,
11619      -                    KM_NOSLEEP | KM_NORMALPRI)) == NULL)
     11618 +                if ((buf->dtb_xamot = kmem_zalloc(size, KM_NOSLEEP_LAZY)) ==
     11619 +                    NULL)
11620 11620                          goto err;
11621 11621          } while ((cp = cp->cpu_next) != cpu_list);
11622 11622  
11623 11623          return (0);
11624 11624  
11625 11625  err:
11626 11626          cp = cpu_list;
11627 11627  
11628 11628          do {
11629 11629                  if (cpu != DTRACE_CPUALL && cpu != cp->cpu_id)
↓ open down ↓ 1927 lines elided ↑ open up ↑
13557 13557          bzero(dstate, sizeof (dtrace_dstate_t));
13558 13558  
13559 13559          if ((dstate->dtds_chunksize = chunksize) == 0)
13560 13560                  dstate->dtds_chunksize = DTRACE_DYNVAR_CHUNKSIZE;
13561 13561  
13562 13562          VERIFY(dstate->dtds_chunksize < LONG_MAX);
13563 13563  
13564 13564          if (size < (min = dstate->dtds_chunksize + sizeof (dtrace_dynhash_t)))
13565 13565                  size = min;
13566 13566  
13567      -        if ((base = kmem_zalloc(size, KM_NOSLEEP | KM_NORMALPRI)) == NULL)
     13567 +        if ((base = kmem_zalloc(size, KM_NOSLEEP_LAZY)) == NULL)
13568 13568                  return (ENOMEM);
13569 13569  
13570 13570          dstate->dtds_size = size;
13571 13571          dstate->dtds_base = base;
13572 13572          dstate->dtds_percpu = kmem_cache_alloc(dtrace_state_cache, KM_SLEEP);
13573 13573          bzero(dstate->dtds_percpu, NCPU * sizeof (dtrace_dstate_percpu_t));
13574 13574  
13575 13575          hashsize = size / (dstate->dtds_chunksize + sizeof (dtrace_dynhash_t));
13576 13576  
13577 13577          if (hashsize != 1 && (hashsize & 1))
↓ open down ↓ 506 lines elided ↑ open up ↑
14084 14084           */
14085 14085          nspec = opt[DTRACEOPT_NSPEC];
14086 14086          ASSERT(nspec != DTRACEOPT_UNSET);
14087 14087  
14088 14088          if (nspec > INT_MAX) {
14089 14089                  rval = ENOMEM;
14090 14090                  goto out;
14091 14091          }
14092 14092  
14093 14093          spec = kmem_zalloc(nspec * sizeof (dtrace_speculation_t),
14094      -            KM_NOSLEEP | KM_NORMALPRI);
     14094 +            KM_NOSLEEP_LAZY);
14095 14095  
14096 14096          if (spec == NULL) {
14097 14097                  rval = ENOMEM;
14098 14098                  goto out;
14099 14099          }
14100 14100  
14101 14101          state->dts_speculations = spec;
14102 14102          state->dts_nspeculations = (int)nspec;
14103 14103  
14104 14104          for (i = 0; i < nspec; i++) {
14105      -                if ((buf = kmem_zalloc(bufsize,
14106      -                    KM_NOSLEEP | KM_NORMALPRI)) == NULL) {
     14105 +                if ((buf = kmem_zalloc(bufsize, KM_NOSLEEP_LAZY)) == NULL) {
14107 14106                          rval = ENOMEM;
14108 14107                          goto err;
14109 14108                  }
14110 14109  
14111 14110                  spec[i].dtsp_buffer = buf;
14112 14111          }
14113 14112  
14114 14113          if (opt[DTRACEOPT_GRABANON] != DTRACEOPT_UNSET) {
14115 14114                  if (dtrace_anon.dta_state == NULL) {
14116 14115                          rval = ENOENT;
↓ open down ↓ 3197 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX