Lines Matching defs:class

69  * class changes.
102 * type/class objects for the DDT are searched for that key. If its found, its
107 * (during spa_sync()), type and class are recalculated for entry (see
233 * If the dedup class cannot satisfy a DDT allocation, treat as over quota
365 ddt_object_create(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
370 uint64_t *objectp = &ddt->ddt_object[type][class];
377 ddt_object_name(ddt, type, class, name);
390 &ddt->ddt_histogram[type][class], tx));
394 ddt_object_destroy(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
399 uint64_t *objectp = &ddt->ddt_object[type][class];
405 ddt_object_name(ddt, type, class, name);
408 ASSERT(ddt_histogram_empty(&ddt->ddt_histogram[type][class]));
409 VERIFY0(ddt_object_count(ddt, type, class, &count));
414 memset(&ddt->ddt_object_stats[type][class], 0, sizeof (ddt_object_t));
420 ddt_object_load(ddt_t *ddt, ddt_type_t type, ddt_class_t class)
422 ddt_object_t *ddo = &ddt->ddt_object_stats[type][class];
437 ddt_object_name(ddt, type, class, name);
440 sizeof (uint64_t), 1, &ddt->ddt_object[type][class]);
446 &ddt->ddt_histogram[type][class]);
453 error = ddt_object_info(ddt, type, class, &doi);
457 error = ddt_object_count(ddt, type, class, &count);
469 ddt_object_sync(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
472 ddt_object_t *ddo = &ddt->ddt_object_stats[type][class];
477 ddt_object_name(ddt, type, class, name);
481 &ddt->ddt_histogram[type][class], tx));
486 VERIFY0(ddt_object_info(ddt, type, class, &doi));
487 VERIFY0(ddt_object_count(ddt, type, class, &count));
495 ddt_object_exists(ddt_t *ddt, ddt_type_t type, ddt_class_t class)
497 return (!!ddt->ddt_object[type][class]);
501 ddt_object_lookup(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
504 if (!ddt_object_exists(ddt, type, class))
508 ddt->ddt_object[type][class], &dde->dde_key,
513 ddt_object_contains(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
516 if (!ddt_object_exists(ddt, type, class))
520 ddt->ddt_object[type][class], ddk));
524 ddt_object_prefetch(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
527 if (!ddt_object_exists(ddt, type, class))
531 ddt->ddt_object[type][class], ddk);
535 ddt_object_prefetch_all(ddt_t *ddt, ddt_type_t type, ddt_class_t class)
537 if (!ddt_object_exists(ddt, type, class))
541 ddt->ddt_object[type][class]);
545 ddt_object_update(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
548 ASSERT(ddt_object_exists(ddt, type, class));
551 ddt->ddt_object[type][class], &ddlwe->ddlwe_key,
556 ddt_object_remove(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
559 ASSERT(ddt_object_exists(ddt, type, class));
562 ddt->ddt_object[type][class], ddk, tx));
566 ddt_object_walk(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
569 ASSERT(ddt_object_exists(ddt, type, class));
572 ddt->ddt_object[type][class], walk, &ddlwe->ddlwe_key,
576 ddlwe->ddlwe_class = class;
583 ddt_object_count(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
586 ASSERT(ddt_object_exists(ddt, type, class));
589 ddt->ddt_object[type][class], count));
593 ddt_object_info(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
596 if (!ddt_object_exists(ddt, type, class))
599 return (dmu_object_info(ddt->ddt_os, ddt->ddt_object[type][class],
604 ddt_object_name(ddt_t *ddt, ddt_type_t type, ddt_class_t class,
609 ddt_ops[type]->ddt_op_name, ddt_class_name[class]);
991 /* Over quota if allocating outside of this special class */
1018 * a. the dedup or special allocation class could not satisfy a DDT
1020 * b. the dedup or special allocation class has exceeded its 85% limit
1032 * For automatic quota, table size is limited by dedup or special class
1047 * Load all DDT entries for each type/class combination. This is
1057 for (ddt_class_t class = 0; class < DDT_CLASSES;
1058 class++) {
1059 ddt_object_prefetch_all(ddt, type, class);
1115 ddt_class_t class;
1177 /* Record the time this class was created (used by ddt prune) */
1235 for (class = 0; class < DDT_CLASSES; class++) {
1236 error = ddt_object_lookup(ddt, type, class, dde);
1251 dde->dde_class = class; /* will be DDT_CLASSES if no entry found */
1338 for (ddt_class_t class = 0; class < DDT_CLASSES; class++) {
1339 ddt_object_prefetch(ddt, type, class, &ddk);
1401 for (ddt_class_t class = 0; class < DDT_CLASSES; class++) {
1402 ASSERT(!ddt_object_exists(ddt, type, class));
1506 for (ddt_class_t class = 0; class < DDT_CLASSES; class++) {
1507 ddt_object_name(ddt, type, class, name);
1641 for (ddt_class_t class = 0; class < DDT_CLASSES;
1642 class++) {
1643 error = ddt_object_load(ddt, type, class);
1699 for (ddt_class_t class = 0; class <= max_class; class++) {
1700 if (ddt_object_contains(ddt, type, class, &ddk) == 0)
1720 for (ddt_class_t class = 0; class < DDT_CLASSES; class++) {
1723 * of the block. For anything in the UNIQUE class,
1726 if (class != DDT_CLASS_UNIQUE &&
1727 ddt_object_lookup(ddt, type, class, dde) == 0)
1834 * Count all the entries stored for each type/class, and updates the
1836 * type/class, the whole object is removed. If all objects for the DDT
1843 for (ddt_class_t class = 0; class < DDT_CLASSES; class++) {
1844 if (ddt_object_exists(ddt, type, class)) {
1845 ddt_object_sync(ddt, type, class, tx);
1846 VERIFY0(ddt_object_count(ddt, type, class,
1851 for (ddt_class_t class = 0; class < DDT_CLASSES; class++) {
1852 if (tcount == 0 && ddt_object_exists(ddt, type, class))
1853 ddt_object_destroy(ddt, type, class, tx);
1890 * Compute the target class, so we can decide whether or not to inform
1901 * If the class changes, the order that we scan this bp changes. If it
1903 * class changing while we are doing ddt_walk(), and when we are
1952 /* Select the best class for the entry. */
1957 * If an existing entry changed type or class, or its refcount reached
2254 for (ddt_class_t class = 0;
2255 class < DDT_CLASSES; class++) {
2256 if (ddt_object_exists(ddt, type, class))
2257 ddt_object_sync(ddt, type, class, tx);
2594 * Interate over all the entries in the DDT unique class.