Address review comments
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
index b2fdf88..a266847 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
@@ -2160,13 +2160,13 @@
                 gpr_slice_from_static_string("Buffers full"));
   } else if (error == GRPC_ERROR_NONE && grpc_resource_quota_trace) {
     gpr_log(GPR_DEBUG,
-            "HTTP2: %s - skip benign reclaimation, there are still %" PRIdPTR
+            "HTTP2: %s - skip benign reclamation, there are still %" PRIdPTR
             " streams",
             t->peer_string, grpc_chttp2_stream_map_size(&t->stream_map));
   }
   t->benign_reclaimer_registered = false;
   if (error != GRPC_ERROR_CANCELLED) {
-    grpc_resource_user_finish_reclaimation(
+    grpc_resource_user_finish_reclamation(
         exec_ctx, grpc_endpoint_get_resource_user(t->ep));
   }
   GRPC_CHTTP2_UNREF_TRANSPORT(exec_ctx, t, "benign_reclaimer");
@@ -2192,7 +2192,7 @@
     }
   }
   if (error != GRPC_ERROR_CANCELLED) {
-    grpc_resource_user_finish_reclaimation(
+    grpc_resource_user_finish_reclamation(
         exec_ctx, grpc_endpoint_get_resource_user(t->ep));
   }
   GRPC_CHTTP2_UNREF_TRANSPORT(exec_ctx, t, "destructive_reclaimer");
diff --git a/src/core/lib/iomgr/resource_quota.c b/src/core/lib/iomgr/resource_quota.c
index 6be9bb4..5466973 100644
--- a/src/core/lib/iomgr/resource_quota.c
+++ b/src/core/lib/iomgr/resource_quota.c
@@ -44,27 +44,29 @@
 
 int grpc_resource_quota_trace = 0;
 
-typedef bool (*bpstate_func)(grpc_exec_ctx *exec_ctx,
-                             grpc_resource_quota *resource_quota);
-
-typedef struct {
-  grpc_resource_user *head;
-  grpc_resource_user *tail;
-} grpc_resource_user_list;
-
 struct grpc_resource_quota {
+  /* refcount */
   gpr_refcount refs;
 
+  /* Master combiner lock: all activity on a quota executes under this combiner
+   */
   grpc_combiner *combiner;
+  /* Size of the resource quota */
   int64_t size;
+  /* Amount of free memory in the resource quota */
   int64_t free_pool;
 
+  /* Has rq_step been scheduled to occur? */
   bool step_scheduled;
+  /* Are we currently reclaiming memory */
   bool reclaiming;
-  grpc_closure bpstep_closure;
-  grpc_closure bpreclaimation_done_closure;
+  /* Closure around rq_step */
+  grpc_closure rq_step_closure;
+  /* Closure around rq_reclamation_done */
+  grpc_closure rq_reclamation_done_closure;
 
-  grpc_resource_user *roots[GRPC_BULIST_COUNT];
+  /* Roots of all resource user lists */
+  grpc_resource_user *roots[GRPC_RULIST_COUNT];
 
   char *name;
 };
@@ -73,8 +75,8 @@
  * list management
  */
 
-static void bulist_add_tail(grpc_resource_user *resource_user,
-                            grpc_bulist list) {
+static void rulist_add_tail(grpc_resource_user *resource_user,
+                            grpc_rulist list) {
   grpc_resource_quota *resource_quota = resource_user->resource_quota;
   grpc_resource_user **root = &resource_quota->roots[list];
   if (*root == NULL) {
@@ -89,8 +91,8 @@
   }
 }
 
-static void bulist_add_head(grpc_resource_user *resource_user,
-                            grpc_bulist list) {
+static void rulist_add_head(grpc_resource_user *resource_user,
+                            grpc_rulist list) {
   grpc_resource_quota *resource_quota = resource_user->resource_quota;
   grpc_resource_user **root = &resource_quota->roots[list];
   if (*root == NULL) {
@@ -106,13 +108,13 @@
   }
 }
 
-static bool bulist_empty(grpc_resource_quota *resource_quota,
-                         grpc_bulist list) {
+static bool rulist_empty(grpc_resource_quota *resource_quota,
+                         grpc_rulist list) {
   return resource_quota->roots[list] == NULL;
 }
 
-static grpc_resource_user *bulist_pop(grpc_resource_quota *resource_quota,
-                                      grpc_bulist list) {
+static grpc_resource_user *rulist_pop(grpc_resource_quota *resource_quota,
+                                      grpc_rulist list) {
   grpc_resource_user **root = &resource_quota->roots[list];
   grpc_resource_user *resource_user = *root;
   if (resource_user == NULL) {
@@ -131,7 +133,7 @@
   return resource_user;
 }
 
-static void bulist_remove(grpc_resource_user *resource_user, grpc_bulist list) {
+static void rulist_remove(grpc_resource_user *resource_user, grpc_rulist list) {
   if (resource_user->links[list].next == NULL) return;
   grpc_resource_quota *resource_quota = resource_user->resource_quota;
   if (resource_quota->roots[list] == resource_user) {
@@ -150,41 +152,41 @@
  * buffer pool state machine
  */
 
-static bool bpalloc(grpc_exec_ctx *exec_ctx,
-                    grpc_resource_quota *resource_quota);
-static bool bpscavenge(grpc_exec_ctx *exec_ctx,
-                       grpc_resource_quota *resource_quota);
-static bool bpreclaim(grpc_exec_ctx *exec_ctx,
-                      grpc_resource_quota *resource_quota, bool destructive);
+static bool rq_alloc(grpc_exec_ctx *exec_ctx,
+                     grpc_resource_quota *resource_quota);
+static bool rq_scavenge(grpc_exec_ctx *exec_ctx,
+                        grpc_resource_quota *resource_quota);
+static bool rq_reclaim(grpc_exec_ctx *exec_ctx,
+                       grpc_resource_quota *resource_quota, bool destructive);
 
-static void bpstep(grpc_exec_ctx *exec_ctx, void *bp, grpc_error *error) {
+static void rq_step(grpc_exec_ctx *exec_ctx, void *bp, grpc_error *error) {
   grpc_resource_quota *resource_quota = bp;
   resource_quota->step_scheduled = false;
   do {
-    if (bpalloc(exec_ctx, resource_quota)) goto done;
-  } while (bpscavenge(exec_ctx, resource_quota));
-  bpreclaim(exec_ctx, resource_quota, false) ||
-      bpreclaim(exec_ctx, resource_quota, true);
+    if (rq_alloc(exec_ctx, resource_quota)) goto done;
+  } while (rq_scavenge(exec_ctx, resource_quota));
+  rq_reclaim(exec_ctx, resource_quota, false) ||
+      rq_reclaim(exec_ctx, resource_quota, true);
 done:
   grpc_resource_quota_internal_unref(exec_ctx, resource_quota);
 }
 
-static void bpstep_sched(grpc_exec_ctx *exec_ctx,
-                         grpc_resource_quota *resource_quota) {
+static void rq_step_sched(grpc_exec_ctx *exec_ctx,
+                          grpc_resource_quota *resource_quota) {
   if (resource_quota->step_scheduled) return;
   resource_quota->step_scheduled = true;
   grpc_resource_quota_internal_ref(resource_quota);
   grpc_combiner_execute_finally(exec_ctx, resource_quota->combiner,
-                                &resource_quota->bpstep_closure,
+                                &resource_quota->rq_step_closure,
                                 GRPC_ERROR_NONE, false);
 }
 
 /* returns true if all allocations are completed */
-static bool bpalloc(grpc_exec_ctx *exec_ctx,
-                    grpc_resource_quota *resource_quota) {
+static bool rq_alloc(grpc_exec_ctx *exec_ctx,
+                     grpc_resource_quota *resource_quota) {
   grpc_resource_user *resource_user;
   while ((resource_user =
-              bulist_pop(resource_quota, GRPC_BULIST_AWAITING_ALLOCATION))) {
+              rulist_pop(resource_quota, GRPC_RULIST_AWAITING_ALLOCATION))) {
     gpr_mu_lock(&resource_user->mu);
     if (resource_user->free_pool < 0 &&
         -resource_user->free_pool <= resource_quota->free_pool) {
@@ -193,7 +195,7 @@
       resource_quota->free_pool -= amt;
       if (grpc_resource_quota_trace) {
         gpr_log(GPR_DEBUG, "BP %s %s: grant alloc %" PRId64
-                           " bytes; bp_free_pool -> %" PRId64,
+                           " bytes; rq_free_pool -> %" PRId64,
                 resource_quota->name, resource_user->name, amt,
                 resource_quota->free_pool);
       }
@@ -206,7 +208,7 @@
       grpc_exec_ctx_enqueue_list(exec_ctx, &resource_user->on_allocated, NULL);
       gpr_mu_unlock(&resource_user->mu);
     } else {
-      bulist_add_head(resource_user, GRPC_BULIST_AWAITING_ALLOCATION);
+      rulist_add_head(resource_user, GRPC_RULIST_AWAITING_ALLOCATION);
       gpr_mu_unlock(&resource_user->mu);
       return false;
     }
@@ -215,11 +217,11 @@
 }
 
 /* returns true if any memory could be reclaimed from buffers */
-static bool bpscavenge(grpc_exec_ctx *exec_ctx,
-                       grpc_resource_quota *resource_quota) {
+static bool rq_scavenge(grpc_exec_ctx *exec_ctx,
+                        grpc_resource_quota *resource_quota) {
   grpc_resource_user *resource_user;
   while ((resource_user =
-              bulist_pop(resource_quota, GRPC_BULIST_NON_EMPTY_FREE_POOL))) {
+              rulist_pop(resource_quota, GRPC_RULIST_NON_EMPTY_FREE_POOL))) {
     gpr_mu_lock(&resource_user->mu);
     if (resource_user->free_pool > 0) {
       int64_t amt = resource_user->free_pool;
@@ -227,7 +229,7 @@
       resource_quota->free_pool += amt;
       if (grpc_resource_quota_trace) {
         gpr_log(GPR_DEBUG, "BP %s %s: scavenge %" PRId64
-                           " bytes; bp_free_pool -> %" PRId64,
+                           " bytes; rq_free_pool -> %" PRId64,
                 resource_quota->name, resource_user->name, amt,
                 resource_quota->free_pool);
       }
@@ -240,16 +242,16 @@
   return false;
 }
 
-/* returns true if reclaimation is proceeding */
-static bool bpreclaim(grpc_exec_ctx *exec_ctx,
-                      grpc_resource_quota *resource_quota, bool destructive) {
+/* returns true if reclamation is proceeding */
+static bool rq_reclaim(grpc_exec_ctx *exec_ctx,
+                       grpc_resource_quota *resource_quota, bool destructive) {
   if (resource_quota->reclaiming) return true;
-  grpc_bulist list = destructive ? GRPC_BULIST_RECLAIMER_DESTRUCTIVE
-                                 : GRPC_BULIST_RECLAIMER_BENIGN;
-  grpc_resource_user *resource_user = bulist_pop(resource_quota, list);
+  grpc_rulist list = destructive ? GRPC_RULIST_RECLAIMER_DESTRUCTIVE
+                                 : GRPC_RULIST_RECLAIMER_BENIGN;
+  grpc_resource_user *resource_user = rulist_pop(resource_quota, list);
   if (resource_user == NULL) return false;
   if (grpc_resource_quota_trace) {
-    gpr_log(GPR_DEBUG, "BP %s %s: initiate %s reclaimation",
+    gpr_log(GPR_DEBUG, "BP %s %s: initiate %s reclamation",
             resource_quota->name, resource_user->name,
             destructive ? "destructive" : "benign");
   }
@@ -262,7 +264,7 @@
 }
 
 /*******************************************************************************
- * bu_slice: a slice implementation that is backed by a grpc_resource_user
+ * ru_slice: a slice implementation that is backed by a grpc_resource_user
  */
 
 typedef struct {
@@ -270,22 +272,24 @@
   gpr_refcount refs;
   grpc_resource_user *resource_user;
   size_t size;
-} bu_slice_refcount;
+} ru_slice_refcount;
 
-static void bu_slice_ref(void *p) {
-  bu_slice_refcount *rc = p;
+static void ru_slice_ref(void *p) {
+  ru_slice_refcount *rc = p;
   gpr_ref(&rc->refs);
 }
 
-static void bu_slice_unref(void *p) {
-  bu_slice_refcount *rc = p;
+static void ru_slice_unref(void *p) {
+  ru_slice_refcount *rc = p;
   if (gpr_unref(&rc->refs)) {
     /* TODO(ctiller): this is dangerous, but I think safe for now:
        we have no guarantee here that we're at a safe point for creating an
        execution context, but we have no way of writing this code otherwise.
        In the future: consider lifting gpr_slice to grpc, and offering an
-       internal_{ref,unref} pair that is execution context aware. Alternatively,
-       make exec_ctx be thread local and 'do the right thing' (whatever that is)
+       internal_{ref,unref} pair that is execution context aware.
+       Alternatively,
+       make exec_ctx be thread local and 'do the right thing' (whatever that
+       is)
        if NULL */
     grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
     grpc_resource_user_free(&exec_ctx, rc->resource_user, rc->size);
@@ -294,11 +298,11 @@
   }
 }
 
-static gpr_slice bu_slice_create(grpc_resource_user *resource_user,
+static gpr_slice ru_slice_create(grpc_resource_user *resource_user,
                                  size_t size) {
-  bu_slice_refcount *rc = gpr_malloc(sizeof(bu_slice_refcount) + size);
-  rc->base.ref = bu_slice_ref;
-  rc->base.unref = bu_slice_unref;
+  ru_slice_refcount *rc = gpr_malloc(sizeof(ru_slice_refcount) + size);
+  rc->base.ref = ru_slice_ref;
+  rc->base.unref = ru_slice_unref;
   gpr_ref_init(&rc->refs, 1);
   rc->resource_user = resource_user;
   rc->size = size;
@@ -313,62 +317,62 @@
  * grpc_resource_quota internal implementation
  */
 
-static void bu_allocate(grpc_exec_ctx *exec_ctx, void *bu, grpc_error *error) {
+static void ru_allocate(grpc_exec_ctx *exec_ctx, void *bu, grpc_error *error) {
   grpc_resource_user *resource_user = bu;
-  if (bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_AWAITING_ALLOCATION)) {
-    bpstep_sched(exec_ctx, resource_user->resource_quota);
+  if (rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_AWAITING_ALLOCATION)) {
+    rq_step_sched(exec_ctx, resource_user->resource_quota);
   }
-  bulist_add_tail(resource_user, GRPC_BULIST_AWAITING_ALLOCATION);
+  rulist_add_tail(resource_user, GRPC_RULIST_AWAITING_ALLOCATION);
 }
 
-static void bu_add_to_free_pool(grpc_exec_ctx *exec_ctx, void *bu,
+static void ru_add_to_free_pool(grpc_exec_ctx *exec_ctx, void *bu,
                                 grpc_error *error) {
   grpc_resource_user *resource_user = bu;
-  if (!bulist_empty(resource_user->resource_quota,
-                    GRPC_BULIST_AWAITING_ALLOCATION) &&
-      bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_NON_EMPTY_FREE_POOL)) {
-    bpstep_sched(exec_ctx, resource_user->resource_quota);
+  if (!rulist_empty(resource_user->resource_quota,
+                    GRPC_RULIST_AWAITING_ALLOCATION) &&
+      rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_NON_EMPTY_FREE_POOL)) {
+    rq_step_sched(exec_ctx, resource_user->resource_quota);
   }
-  bulist_add_tail(resource_user, GRPC_BULIST_NON_EMPTY_FREE_POOL);
+  rulist_add_tail(resource_user, GRPC_RULIST_NON_EMPTY_FREE_POOL);
 }
 
-static void bu_post_benign_reclaimer(grpc_exec_ctx *exec_ctx, void *bu,
+static void ru_post_benign_reclaimer(grpc_exec_ctx *exec_ctx, void *bu,
                                      grpc_error *error) {
   grpc_resource_user *resource_user = bu;
-  if (!bulist_empty(resource_user->resource_quota,
-                    GRPC_BULIST_AWAITING_ALLOCATION) &&
-      bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_NON_EMPTY_FREE_POOL) &&
-      bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_RECLAIMER_BENIGN)) {
-    bpstep_sched(exec_ctx, resource_user->resource_quota);
+  if (!rulist_empty(resource_user->resource_quota,
+                    GRPC_RULIST_AWAITING_ALLOCATION) &&
+      rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_NON_EMPTY_FREE_POOL) &&
+      rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_RECLAIMER_BENIGN)) {
+    rq_step_sched(exec_ctx, resource_user->resource_quota);
   }
-  bulist_add_tail(resource_user, GRPC_BULIST_RECLAIMER_BENIGN);
+  rulist_add_tail(resource_user, GRPC_RULIST_RECLAIMER_BENIGN);
 }
 
-static void bu_post_destructive_reclaimer(grpc_exec_ctx *exec_ctx, void *bu,
+static void ru_post_destructive_reclaimer(grpc_exec_ctx *exec_ctx, void *bu,
                                           grpc_error *error) {
   grpc_resource_user *resource_user = bu;
-  if (!bulist_empty(resource_user->resource_quota,
-                    GRPC_BULIST_AWAITING_ALLOCATION) &&
-      bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_NON_EMPTY_FREE_POOL) &&
-      bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_RECLAIMER_BENIGN) &&
-      bulist_empty(resource_user->resource_quota,
-                   GRPC_BULIST_RECLAIMER_DESTRUCTIVE)) {
-    bpstep_sched(exec_ctx, resource_user->resource_quota);
+  if (!rulist_empty(resource_user->resource_quota,
+                    GRPC_RULIST_AWAITING_ALLOCATION) &&
+      rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_NON_EMPTY_FREE_POOL) &&
+      rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_RECLAIMER_BENIGN) &&
+      rulist_empty(resource_user->resource_quota,
+                   GRPC_RULIST_RECLAIMER_DESTRUCTIVE)) {
+    rq_step_sched(exec_ctx, resource_user->resource_quota);
   }
-  bulist_add_tail(resource_user, GRPC_BULIST_RECLAIMER_DESTRUCTIVE);
+  rulist_add_tail(resource_user, GRPC_RULIST_RECLAIMER_DESTRUCTIVE);
 }
 
-static void bu_destroy(grpc_exec_ctx *exec_ctx, void *bu, grpc_error *error) {
+static void ru_destroy(grpc_exec_ctx *exec_ctx, void *bu, grpc_error *error) {
   grpc_resource_user *resource_user = bu;
   GPR_ASSERT(resource_user->allocated == 0);
-  for (int i = 0; i < GRPC_BULIST_COUNT; i++) {
-    bulist_remove(resource_user, (grpc_bulist)i);
+  for (int i = 0; i < GRPC_RULIST_COUNT; i++) {
+    rulist_remove(resource_user, (grpc_rulist)i);
   }
   grpc_exec_ctx_sched(exec_ctx, resource_user->reclaimers[0],
                       GRPC_ERROR_CANCELLED, NULL);
@@ -379,17 +383,17 @@
                       GRPC_ERROR_NONE, NULL);
   if (resource_user->free_pool != 0) {
     resource_user->resource_quota->free_pool += resource_user->free_pool;
-    bpstep_sched(exec_ctx, resource_user->resource_quota);
+    rq_step_sched(exec_ctx, resource_user->resource_quota);
   }
 }
 
-static void bu_allocated_slices(grpc_exec_ctx *exec_ctx, void *ts,
+static void ru_allocated_slices(grpc_exec_ctx *exec_ctx, void *ts,
                                 grpc_error *error) {
   grpc_resource_user_slice_allocator *slice_allocator = ts;
   if (error == GRPC_ERROR_NONE) {
     for (size_t i = 0; i < slice_allocator->count; i++) {
       gpr_slice_buffer_add_indexed(
-          slice_allocator->dest, bu_slice_create(slice_allocator->resource_user,
+          slice_allocator->dest, ru_slice_create(slice_allocator->resource_user,
                                                  slice_allocator->length));
     }
   }
@@ -400,29 +404,29 @@
   int64_t size;
   grpc_resource_quota *resource_quota;
   grpc_closure closure;
-} bp_resize_args;
+} rq_resize_args;
 
-static void bp_resize(grpc_exec_ctx *exec_ctx, void *args, grpc_error *error) {
-  bp_resize_args *a = args;
+static void rq_resize(grpc_exec_ctx *exec_ctx, void *args, grpc_error *error) {
+  rq_resize_args *a = args;
   int64_t delta = a->size - a->resource_quota->size;
   a->resource_quota->size += delta;
   a->resource_quota->free_pool += delta;
   if (delta < 0 && a->resource_quota->free_pool < 0) {
-    bpstep_sched(exec_ctx, a->resource_quota);
+    rq_step_sched(exec_ctx, a->resource_quota);
   } else if (delta > 0 &&
-             !bulist_empty(a->resource_quota,
-                           GRPC_BULIST_AWAITING_ALLOCATION)) {
-    bpstep_sched(exec_ctx, a->resource_quota);
+             !rulist_empty(a->resource_quota,
+                           GRPC_RULIST_AWAITING_ALLOCATION)) {
+    rq_step_sched(exec_ctx, a->resource_quota);
   }
   grpc_resource_quota_internal_unref(exec_ctx, a->resource_quota);
   gpr_free(a);
 }
 
-static void bp_reclaimation_done(grpc_exec_ctx *exec_ctx, void *bp,
-                                 grpc_error *error) {
+static void rq_reclamation_done(grpc_exec_ctx *exec_ctx, void *bp,
+                                grpc_error *error) {
   grpc_resource_quota *resource_quota = bp;
   resource_quota->reclaiming = false;
-  bpstep_sched(exec_ctx, resource_quota);
+  rq_step_sched(exec_ctx, resource_quota);
   grpc_resource_quota_internal_unref(exec_ctx, resource_quota);
 }
 
@@ -444,10 +448,10 @@
     gpr_asprintf(&resource_quota->name, "anonymous_pool_%" PRIxPTR,
                  (intptr_t)resource_quota);
   }
-  grpc_closure_init(&resource_quota->bpstep_closure, bpstep, resource_quota);
-  grpc_closure_init(&resource_quota->bpreclaimation_done_closure,
-                    bp_reclaimation_done, resource_quota);
-  for (int i = 0; i < GRPC_BULIST_COUNT; i++) {
+  grpc_closure_init(&resource_quota->rq_step_closure, rq_step, resource_quota);
+  grpc_closure_init(&resource_quota->rq_reclamation_done_closure,
+                    rq_reclamation_done, resource_quota);
+  for (int i = 0; i < GRPC_RULIST_COUNT; i++) {
     resource_quota->roots[i] = NULL;
   }
   return resource_quota;
@@ -481,10 +485,10 @@
 void grpc_resource_quota_resize(grpc_resource_quota *resource_quota,
                                 size_t size) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  bp_resize_args *a = gpr_malloc(sizeof(*a));
+  rq_resize_args *a = gpr_malloc(sizeof(*a));
   a->resource_quota = grpc_resource_quota_internal_ref(resource_quota);
   a->size = (int64_t)size;
-  grpc_closure_init(&a->closure, bp_resize, a);
+  grpc_closure_init(&a->closure, rq_resize, a);
   grpc_combiner_execute(&exec_ctx, resource_quota->combiner, &a->closure,
                         GRPC_ERROR_NONE, false);
   grpc_exec_ctx_finish(&exec_ctx);
@@ -509,17 +513,17 @@
   return grpc_resource_quota_create(NULL);
 }
 
-static void *bp_copy(void *bp) {
+static void *rq_copy(void *bp) {
   grpc_resource_quota_ref(bp);
   return bp;
 }
 
-static void bp_destroy(void *bp) { grpc_resource_quota_unref(bp); }
+static void rq_destroy(void *bp) { grpc_resource_quota_unref(bp); }
 
-static int bp_cmp(void *a, void *b) { return GPR_ICMP(a, b); }
+static int rq_cmp(void *a, void *b) { return GPR_ICMP(a, b); }
 
 const grpc_arg_pointer_vtable *grpc_resource_quota_arg_vtable(void) {
-  static const grpc_arg_pointer_vtable vtable = {bp_copy, bp_destroy, bp_cmp};
+  static const grpc_arg_pointer_vtable vtable = {rq_copy, rq_destroy, rq_cmp};
   return &vtable;
 }
 
@@ -532,15 +536,15 @@
                              const char *name) {
   resource_user->resource_quota =
       grpc_resource_quota_internal_ref(resource_quota);
-  grpc_closure_init(&resource_user->allocate_closure, &bu_allocate,
+  grpc_closure_init(&resource_user->allocate_closure, &ru_allocate,
                     resource_user);
   grpc_closure_init(&resource_user->add_to_free_pool_closure,
-                    &bu_add_to_free_pool, resource_user);
+                    &ru_add_to_free_pool, resource_user);
   grpc_closure_init(&resource_user->post_reclaimer_closure[0],
-                    &bu_post_benign_reclaimer, resource_user);
+                    &ru_post_benign_reclaimer, resource_user);
   grpc_closure_init(&resource_user->post_reclaimer_closure[1],
-                    &bu_post_destructive_reclaimer, resource_user);
-  grpc_closure_init(&resource_user->destroy_closure, &bu_destroy,
+                    &ru_post_destructive_reclaimer, resource_user);
+  grpc_closure_init(&resource_user->destroy_closure, &ru_destroy,
                     resource_user);
   gpr_mu_init(&resource_user->mu);
   resource_user->allocated = 0;
@@ -551,7 +555,7 @@
   gpr_atm_no_barrier_store(&resource_user->on_done_destroy_closure, 0);
   resource_user->reclaimers[0] = NULL;
   resource_user->reclaimers[1] = NULL;
-  for (int i = 0; i < GRPC_BULIST_COUNT; i++) {
+  for (int i = 0; i < GRPC_RULIST_COUNT; i++) {
     resource_user->links[i].next = resource_user->links[i].prev = NULL;
   }
 #ifndef NDEBUG
@@ -678,22 +682,22 @@
   }
 }
 
-void grpc_resource_user_finish_reclaimation(grpc_exec_ctx *exec_ctx,
-                                            grpc_resource_user *resource_user) {
+void grpc_resource_user_finish_reclamation(grpc_exec_ctx *exec_ctx,
+                                           grpc_resource_user *resource_user) {
   if (grpc_resource_quota_trace) {
-    gpr_log(GPR_DEBUG, "BP %s %s: reclaimation complete",
+    gpr_log(GPR_DEBUG, "BP %s %s: reclamation complete",
             resource_user->resource_quota->name, resource_user->name);
   }
   grpc_combiner_execute(
       exec_ctx, resource_user->resource_quota->combiner,
-      &resource_user->resource_quota->bpreclaimation_done_closure,
+      &resource_user->resource_quota->rq_reclamation_done_closure,
       GRPC_ERROR_NONE, false);
 }
 
 void grpc_resource_user_slice_allocator_init(
     grpc_resource_user_slice_allocator *slice_allocator,
     grpc_resource_user *resource_user, grpc_iomgr_cb_func cb, void *p) {
-  grpc_closure_init(&slice_allocator->on_allocated, bu_allocated_slices,
+  grpc_closure_init(&slice_allocator->on_allocated, ru_allocated_slices,
                     slice_allocator);
   grpc_closure_init(&slice_allocator->on_done, cb, p);
   slice_allocator->resource_user = resource_user;
diff --git a/src/core/lib/iomgr/resource_quota.h b/src/core/lib/iomgr/resource_quota.h
index c4015b4..af94a19 100644
--- a/src/core/lib/iomgr/resource_quota.h
+++ b/src/core/lib/iomgr/resource_quota.h
@@ -38,6 +38,37 @@
 
 #include "src/core/lib/iomgr/exec_ctx.h"
 
+/** \file Tracks resource usage against a pool.
+
+    The current implementation tracks only memory usage, but in the future
+    this may be extended to (for example) threads and file descriptors.
+
+    A grpc_resource_quota represents the pooled resources, and
+    grpc_resource_user instances attach to the quota and consume those
+    resources. They also offer a vector for reclamation: if we become
+    resource constrained, grpc_resource_user instances are asked (in turn) to
+    free up whatever they can so that the system as a whole can make progress.
+
+    There are three kinds of reclamation that take place:
+    - an internal reclamation, where cached resource at the resource user level
+      is returned to the quota
+    - a benign reclamation phase, whereby resources that are in use but are not
+      helping anything make progress are reclaimed
+    - a destructive reclamation, whereby resources that are helping something
+      make progress may be enacted so that at least one part of the system can
+      complete.
+
+    These reclamations are tried in priority order, and only one reclamation
+    is outstanding for a quota at any given time (meaning that if a destructive
+    reclamation makes progress, we may follow up with a benign reclamation).
+
+    Future work will be to expose the current resource pressure so that back
+    pressure can be applied to avoid reclamation phases starting.
+
+    Resource users own references to resource quotas, and resource quotas
+    maintain lists of users (which users arrange to leave before they are
+    destroyed) */
+
 extern int grpc_resource_quota_trace;
 
 grpc_resource_quota *grpc_resource_quota_internal_ref(
@@ -47,46 +78,83 @@
 grpc_resource_quota *grpc_resource_quota_from_channel_args(
     const grpc_channel_args *channel_args);
 
+/* Resource users are kept in (potentially) several intrusive linked lists
+   at once. These are the list names. */
 typedef enum {
-  GRPC_BULIST_AWAITING_ALLOCATION,
-  GRPC_BULIST_NON_EMPTY_FREE_POOL,
-  GRPC_BULIST_RECLAIMER_BENIGN,
-  GRPC_BULIST_RECLAIMER_DESTRUCTIVE,
-  GRPC_BULIST_COUNT
-} grpc_bulist;
+  /* Resource users that are waiting for an allocation */
+  GRPC_RULIST_AWAITING_ALLOCATION,
+  /* Resource users that have free memory available for internal reclamation */
+  GRPC_RULIST_NON_EMPTY_FREE_POOL,
+  /* Resource users that have published a benign reclamation is available */
+  GRPC_RULIST_RECLAIMER_BENIGN,
+  /* Resource users that have published a destructive reclamation is
+     available */
+  GRPC_RULIST_RECLAIMER_DESTRUCTIVE,
+  /* Number of lists: must be last */
+  GRPC_RULIST_COUNT
+} grpc_rulist;
 
 typedef struct grpc_resource_user grpc_resource_user;
 
+/* Internal linked list pointers for a resource user */
 typedef struct {
   grpc_resource_user *next;
   grpc_resource_user *prev;
 } grpc_resource_user_link;
 
 struct grpc_resource_user {
+  /* The quota this resource user consumes from */
   grpc_resource_quota *resource_quota;
 
+  /* Closure to schedule an allocation onder the resource quota combiner lock */
   grpc_closure allocate_closure;
+  /* Closure to publish a non empty free pool under the resource quota combiner
+     lock */
   grpc_closure add_to_free_pool_closure;
 
 #ifndef NDEBUG
+  /* Canary object to detect leaked resource users with ASAN */
   void *asan_canary;
 #endif
 
   gpr_mu mu;
+  /* Total allocated memory outstanding by this resource user;
+     always positive */
   int64_t allocated;
+  /* The amount of memory this user has cached for its own use: to avoid quota
+     contention, each resource user can keep some memory aside from the quota,
+     and the quota can pull it back under memory pressure.
+     This value can become negative if more memory has been requested than
+     existed in the free pool, at which point the quota is consulted to bring
+     this value non-negative (asynchronously). */
   int64_t free_pool;
+  /* A list of closures to call once free_pool becomes non-negative - ie when
+     all outstanding allocations have been granted. */
   grpc_closure_list on_allocated;
+  /* True if we are currently trying to allocate from the quota, false if not */
   bool allocating;
+  /* True if we are currently trying to add ourselves to the non-free quota
+     list, false otherwise */
   bool added_to_free_pool;
 
+  /* Reclaimers: index 0 is the benign reclaimer, 1 is the destructive reclaimer
+   */
   grpc_closure *reclaimers[2];
+  /* Trampoline closures to finish reclamation and re-enter the quota combiner
+     lock */
   grpc_closure post_reclaimer_closure[2];
 
+  /* Closure to execute under the quota combiner to de-register and shutdown the
+     resource user */
   grpc_closure destroy_closure;
+  /* User supplied closure to call once the user has finished shutting down AND
+     all outstanding allocations have been freed */
   gpr_atm on_done_destroy_closure;
 
-  grpc_resource_user_link links[GRPC_BULIST_COUNT];
+  /* Links in the various grpc_rulist lists */
+  grpc_resource_user_link links[GRPC_RULIST_COUNT];
 
+  /* The name of this resource user, for debugging/tracing */
   char *name;
 };
 
@@ -99,17 +167,29 @@
 void grpc_resource_user_destroy(grpc_exec_ctx *exec_ctx,
                                 grpc_resource_user *resource_user);
 
+/* Allocate from the resource user (and it's quota).
+   If optional_on_done is NULL, then allocate immediately. This may push the
+   quota over-limit, at which point reclamation will kick in.
+   If optional_on_done is non-NULL, it will be scheduled when the allocation has
+   been granted by the quota. */
 void grpc_resource_user_alloc(grpc_exec_ctx *exec_ctx,
                               grpc_resource_user *resource_user, size_t size,
                               grpc_closure *optional_on_done);
+/* Release memory back to the quota */
 void grpc_resource_user_free(grpc_exec_ctx *exec_ctx,
                              grpc_resource_user *resource_user, size_t size);
+/* Post a memory reclaimer to the resource user. Only one benign and one
+   destructive reclaimer can be posted at once. When executed, the reclaimer
+   MUST call grpc_resource_user_finish_reclamation before it completes, to
+   return control to the resource quota. */
 void grpc_resource_user_post_reclaimer(grpc_exec_ctx *exec_ctx,
                                        grpc_resource_user *resource_user,
                                        bool destructive, grpc_closure *closure);
-void grpc_resource_user_finish_reclaimation(grpc_exec_ctx *exec_ctx,
-                                            grpc_resource_user *resource_user);
+/* Finish a reclamation step */
+void grpc_resource_user_finish_reclamation(grpc_exec_ctx *exec_ctx,
+                                           grpc_resource_user *resource_user);
 
+/* Helper to allocate slices from a resource user */
 typedef struct grpc_resource_user_slice_allocator {
   grpc_closure on_allocated;
   grpc_closure on_done;
@@ -119,10 +199,12 @@
   grpc_resource_user *resource_user;
 } grpc_resource_user_slice_allocator;
 
+/* Initialize a slice allocator */
 void grpc_resource_user_slice_allocator_init(
     grpc_resource_user_slice_allocator *slice_allocator,
     grpc_resource_user *resource_user, grpc_iomgr_cb_func cb, void *p);
 
+/* Allocate \a count slices of length \a length into \a dest. */
 void grpc_resource_user_alloc_slices(
     grpc_exec_ctx *exec_ctx,
     grpc_resource_user_slice_allocator *slice_allocator, size_t length,
diff --git a/src/core/lib/iomgr/tcp_client.h b/src/core/lib/iomgr/tcp_client.h
index b854e5a..d1b0e9c 100644
--- a/src/core/lib/iomgr/tcp_client.h
+++ b/src/core/lib/iomgr/tcp_client.h
@@ -39,6 +39,8 @@
 #include "src/core/lib/iomgr/pollset_set.h"
 #include "src/core/lib/iomgr/sockaddr.h"
 
+/* Channel arg (integer) setting how large a slice to try and read from the wire
+   each time recvmsg (or equivalent) is called */
 #define GRPC_ARG_TCP_READ_CHUNK_SIZE "grpc.experimental.tcp_read_chunk_size"
 
 /* Asynchronously connect to an address (specified as (addr, len)), and call
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index cc04b14..b9acdc1 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -90,7 +90,7 @@
     'bad_hostname': default_test_options,
     'binary_metadata': default_test_options,
     'resource_quota_server': default_test_options._replace(large_writes=True,
-                                                        proxyable=False),
+                                                           proxyable=False),
     'call_creds': default_test_options._replace(secure=True),
     'cancel_after_accept': default_test_options._replace(cpu_cost=LOWCPU),
     'cancel_after_client_done': default_test_options,
diff --git a/test/core/iomgr/resource_quota_test.c b/test/core/iomgr/resource_quota_test.c
index 5963ed0..0fb94a4 100644
--- a/test/core/iomgr/resource_quota_test.c
+++ b/test/core/iomgr/resource_quota_test.c
@@ -57,7 +57,7 @@
   GPR_ASSERT(error == GRPC_ERROR_NONE);
   reclaimer_args *a = args;
   grpc_resource_user_free(exec_ctx, a->resource_user, a->size);
-  grpc_resource_user_finish_reclaimation(exec_ctx, a->resource_user);
+  grpc_resource_user_finish_reclamation(exec_ctx, a->resource_user);
   grpc_closure_run(exec_ctx, a->then, GRPC_ERROR_NONE);
   gpr_free(a);
 }