Lines Matching refs:xas
74 XA_STATE_ORDER(xas, xa, index, order); in xa_store_order()
78 xas_lock(&xas); in xa_store_order()
79 curr = xas_store(&xas, entry); in xa_store_order()
80 xas_unlock(&xas); in xa_store_order()
81 } while (xas_nomem(&xas, gfp)); in xa_store_order()
104 XA_STATE(xas, xa, 0); in check_xas_retry()
111 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_value(0)); in check_xas_retry()
113 XA_BUG_ON(xa, !xa_is_retry(xas_reload(&xas))); in check_xas_retry()
114 XA_BUG_ON(xa, xas_retry(&xas, NULL)); in check_xas_retry()
115 XA_BUG_ON(xa, xas_retry(&xas, xa_mk_value(0))); in check_xas_retry()
116 xas_reset(&xas); in check_xas_retry()
117 XA_BUG_ON(xa, xas.xa_node != XAS_RESTART); in check_xas_retry()
118 XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0)); in check_xas_retry()
119 XA_BUG_ON(xa, xas.xa_node != NULL); in check_xas_retry()
125 XA_BUG_ON(xa, !xa_is_internal(xas_reload(&xas))); in check_xas_retry()
126 xas.xa_node = XAS_RESTART; in check_xas_retry()
127 XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0)); in check_xas_retry()
131 xas_lock(&xas); in check_xas_retry()
132 xas_set(&xas, 0); in check_xas_retry()
133 xas_store(&xas, XA_RETRY_ENTRY); in check_xas_retry()
134 xas_set(&xas, 1); in check_xas_retry()
135 xas_store(&xas, XA_RETRY_ENTRY); in check_xas_retry()
137 xas_set(&xas, 0); in check_xas_retry()
138 xas_for_each(&xas, entry, ULONG_MAX) { in check_xas_retry()
139 xas_store(&xas, xa_mk_index(xas.xa_index)); in check_xas_retry()
141 xas_unlock(&xas); in check_xas_retry()
220 XA_STATE(xas, xa, i); in check_xa_mark_1()
230 xas_for_each(&xas, entry, ULONG_MAX) in check_xa_mark_1()
236 xas_set(&xas, 0); in check_xa_mark_1()
239 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0) in check_xa_mark_1()
256 XA_STATE(xas, xa, 0); in check_xa_mark_2()
263 xas_lock(&xas); in check_xa_mark_2()
264 xas_load(&xas); in check_xa_mark_2()
265 xas_init_marks(&xas); in check_xa_mark_2()
266 xas_unlock(&xas); in check_xa_mark_2()
274 xas_reset(&xas); in check_xa_mark_2()
276 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0) in check_xa_mark_2()
281 xas_lock(&xas); in check_xa_mark_2()
282 xas_for_each(&xas, entry, ULONG_MAX) { in check_xa_mark_2()
283 xas_init_marks(&xas); in check_xa_mark_2()
284 XA_BUG_ON(xa, !xa_get_mark(xa, xas.xa_index, XA_MARK_0)); in check_xa_mark_2()
285 XA_BUG_ON(xa, !xas_get_mark(&xas, XA_MARK_0)); in check_xa_mark_2()
287 xas_unlock(&xas); in check_xa_mark_2()
295 XA_STATE(xas, xa, 0x41); in check_xa_mark_3()
303 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0) { in check_xa_mark_3()
326 XA_STATE(xas, xa, 1); in check_xa_shrink()
339 xas_lock(&xas); in check_xa_shrink()
340 XA_BUG_ON(xa, xas_load(&xas) != xa_mk_value(1)); in check_xa_shrink()
341 node = xas.xa_node; in check_xa_shrink()
343 XA_BUG_ON(xa, xas_store(&xas, NULL) != xa_mk_value(1)); in check_xa_shrink()
345 XA_BUG_ON(xa, xas.xa_node != XAS_BOUNDS); in check_xa_shrink()
347 XA_BUG_ON(xa, xas_load(&xas) != NULL); in check_xa_shrink()
348 xas_unlock(&xas); in check_xa_shrink()
547 XA_STATE(xas, xa, 0); in check_xas_erase()
553 xas_set(&xas, j); in check_xas_erase()
555 xas_lock(&xas); in check_xas_erase()
556 xas_store(&xas, xa_mk_index(j)); in check_xas_erase()
557 xas_unlock(&xas); in check_xas_erase()
558 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xas_erase()
561 xas_set(&xas, ULONG_MAX); in check_xas_erase()
563 xas_lock(&xas); in check_xas_erase()
564 xas_store(&xas, xa_mk_value(0)); in check_xas_erase()
565 xas_unlock(&xas); in check_xas_erase()
566 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xas_erase()
568 xas_lock(&xas); in check_xas_erase()
569 xas_store(&xas, NULL); in check_xas_erase()
571 xas_set(&xas, 0); in check_xas_erase()
573 xas_for_each(&xas, entry, ULONG_MAX) { in check_xas_erase()
575 xas_store(&xas, NULL); in check_xas_erase()
578 xas_unlock(&xas); in check_xas_erase()
587 XA_STATE(xas, xa, index); in check_multi_store_1()
597 xas_lock(&xas); in check_multi_store_1()
598 XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(min)) != xa_mk_index(index)); in check_multi_store_1()
599 xas_unlock(&xas); in check_multi_store_1()
612 XA_STATE(xas, xa, index); in check_multi_store_2()
615 xas_lock(&xas); in check_multi_store_2()
616 XA_BUG_ON(xa, xas_store(&xas, xa_mk_value(1)) != xa_mk_value(0)); in check_multi_store_2()
617 XA_BUG_ON(xa, xas.xa_index != index); in check_multi_store_2()
618 XA_BUG_ON(xa, xas_store(&xas, NULL) != xa_mk_value(1)); in check_multi_store_2()
619 xas_unlock(&xas); in check_multi_store_2()
626 XA_STATE(xas, xa, 0); in check_multi_store_3()
632 xas_lock(&xas); in check_multi_store_3()
633 xas_for_each(&xas, entry, ULONG_MAX) { in check_multi_store_3()
638 xas_set(&xas, index + 1); in check_multi_store_3()
639 xas_for_each(&xas, entry, ULONG_MAX) { in check_multi_store_3()
644 xas_unlock(&xas); in check_multi_store_3()
737 XA_STATE(xas, xa, index); in check_xa_multi_store_adv_add()
743 xas_set_order(&xas, index, order); in check_xa_multi_store_adv_add()
746 xas_lock_irq(&xas); in check_xa_multi_store_adv_add()
747 xas_store(&xas, p); in check_xa_multi_store_adv_add()
748 xas_unlock_irq(&xas); in check_xa_multi_store_adv_add()
756 XA_BUG_ON(xa, xas_error(&xas) && xas_error(&xas) != -ENOMEM); in check_xa_multi_store_adv_add()
757 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xa_multi_store_adv_add()
759 XA_BUG_ON(xa, xas_error(&xas)); in check_xa_multi_store_adv_add()
768 XA_STATE(xas, xa, index); in check_xa_multi_store_adv_del_entry()
770 xas_set_order(&xas, index, order); in check_xa_multi_store_adv_del_entry()
771 xas_store(&xas, NULL); in check_xa_multi_store_adv_del_entry()
772 xas_init_marks(&xas); in check_xa_multi_store_adv_del_entry()
787 XA_STATE(xas, xa, index); in test_get_entry()
793 xas_reset(&xas); in test_get_entry()
794 p = xas_load(&xas); in test_get_entry()
795 if (xas_retry(&xas, p)) in test_get_entry()
1116 XA_STATE_ORDER(xas, xa, start, order); in __check_store_iter()
1121 xas_lock(&xas); in __check_store_iter()
1122 xas_for_each_conflict(&xas, entry) { in __check_store_iter()
1128 xas_store(&xas, xa_mk_index(start)); in __check_store_iter()
1129 xas_unlock(&xas); in __check_store_iter()
1130 if (xas_nomem(&xas, GFP_KERNEL)) { in __check_store_iter()
1134 XA_BUG_ON(xa, xas_error(&xas)); in __check_store_iter()
1221 XA_STATE(xas, xa, j + index); in check_multi_find_2()
1226 xas_for_each(&xas, entry, ULONG_MAX) { in check_multi_find_2()
1321 XA_STATE(xas, xa, 0); in check_find_3()
1329 xas_set(&xas, j); in check_find_3()
1330 xas_for_each_marked(&xas, entry, k, XA_MARK_0) in check_find_3()
1334 xas.xa_node != XAS_RESTART); in check_find_3()
1378 XA_STATE(xas, xa, 0); in xa_find_entry()
1383 xas_for_each(&xas, entry, ULONG_MAX) { in xa_find_entry()
1384 if (xas_retry(&xas, entry)) in xa_find_entry()
1391 xas_pause(&xas); in xa_find_entry()
1395 return entry ? xas.xa_index : -1; in xa_find_entry()
1432 XA_STATE(xas, xa, 0); in check_pause()
1445 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1453 xas_set(&xas, 0); in check_pause()
1455 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1458 xas_pause(&xas); in check_pause()
1474 xas_set(&xas, 0); in check_pause()
1476 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1487 xas_set(&xas, 1 % (1UL << (order_limit - 1))); in check_pause()
1489 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1493 xas_pause(&xas); in check_pause()
1504 XA_STATE(xas, xa, 0); in check_move_tiny()
1508 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_tiny()
1509 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_tiny()
1513 xas_set(&xas, 0); in check_move_tiny()
1514 XA_BUG_ON(xa, xas_next(&xas) != xa_mk_index(0)); in check_move_tiny()
1515 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_tiny()
1516 xas_set(&xas, 0); in check_move_tiny()
1517 XA_BUG_ON(xa, xas_prev(&xas) != xa_mk_index(0)); in check_move_tiny()
1518 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move_tiny()
1526 XA_STATE(xas, xa, 0); in check_move_max()
1530 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX)); in check_move_max()
1531 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL); in check_move_max()
1534 xas_set(&xas, 0); in check_move_max()
1536 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX)); in check_move_max()
1537 xas_pause(&xas); in check_move_max()
1538 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL); in check_move_max()
1547 XA_STATE(xas, xa, 0); in check_move_small()
1555 void *entry = xas_next(&xas); in check_move_small()
1557 XA_BUG_ON(xa, xas.xa_node == XAS_RESTART); in check_move_small()
1558 XA_BUG_ON(xa, xas.xa_index != i); in check_move_small()
1564 xas_next(&xas); in check_move_small()
1565 XA_BUG_ON(xa, xas.xa_index != i); in check_move_small()
1568 void *entry = xas_prev(&xas); in check_move_small()
1571 XA_BUG_ON(xa, xas.xa_node == XAS_RESTART); in check_move_small()
1572 XA_BUG_ON(xa, xas.xa_index != i); in check_move_small()
1579 xas_set(&xas, ULONG_MAX); in check_move_small()
1580 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_small()
1581 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move_small()
1582 XA_BUG_ON(xa, xas_next(&xas) != xa_mk_value(0)); in check_move_small()
1583 XA_BUG_ON(xa, xas.xa_index != 0); in check_move_small()
1584 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move_small()
1585 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move_small()
1595 XA_STATE(xas, xa, (1 << 16) - 1); in check_move()
1603 void *entry = xas_prev(&xas); in check_move()
1606 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1609 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move()
1610 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move()
1613 void *entry = xas_next(&xas); in check_move()
1615 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1623 i = xas.xa_index; in check_move()
1627 void *entry = xas_prev(&xas); in check_move()
1633 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1636 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move()
1637 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move()
1640 void *entry = xas_next(&xas); in check_move()
1645 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1665 XA_STATE_ORDER(xas, xa, index, order); in xa_store_many_order()
1669 xas_lock(&xas); in xa_store_many_order()
1670 XA_BUG_ON(xa, xas_find_conflict(&xas)); in xa_store_many_order()
1671 xas_create_range(&xas); in xa_store_many_order()
1672 if (xas_error(&xas)) in xa_store_many_order()
1675 XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(index + i))); in xa_store_many_order()
1676 xas_next(&xas); in xa_store_many_order()
1679 xas_unlock(&xas); in xa_store_many_order()
1680 } while (xas_nomem(&xas, GFP_KERNEL)); in xa_store_many_order()
1682 XA_BUG_ON(xa, xas_error(&xas)); in xa_store_many_order()
1710 XA_STATE(xas, NULL, 0); in check_create_range_3()
1711 xas_set_err(&xas, -EEXIST); in check_create_range_3()
1712 xas_create_range(&xas); in check_create_range_3()
1713 XA_BUG_ON(NULL, xas_error(&xas) != -EEXIST); in check_create_range_3()
1719 XA_STATE_ORDER(xas, xa, index, order); in check_create_range_4()
1720 unsigned long base = xas.xa_index; in check_create_range_4()
1725 xas_lock(&xas); in check_create_range_4()
1726 xas_create_range(&xas); in check_create_range_4()
1727 if (xas_error(&xas)) in check_create_range_4()
1730 void *old = xas_store(&xas, xa_mk_index(base + i)); in check_create_range_4()
1731 if (xas.xa_index == index) in check_create_range_4()
1735 xas_next(&xas); in check_create_range_4()
1738 xas_unlock(&xas); in check_create_range_4()
1739 } while (xas_nomem(&xas, GFP_KERNEL)); in check_create_range_4()
1741 XA_BUG_ON(xa, xas_error(&xas)); in check_create_range_4()
1751 XA_STATE_ORDER(xas, xa, index, order); in check_create_range_5()
1758 xas_lock(&xas); in check_create_range_5()
1759 xas_create_range(&xas); in check_create_range_5()
1760 xas_unlock(&xas); in check_create_range_5()
1761 } while (xas_nomem(&xas, GFP_KERNEL)); in check_create_range_5()
1839 XA_STATE_ORDER(xas, xa, index, new_order); in check_split_1()
1846 xas_split_alloc(&xas, xa, order, GFP_KERNEL); in check_split_1()
1847 xas_lock(&xas); in check_split_1()
1848 xas_split(&xas, xa, order); in check_split_1()
1851 xas_unlock(&xas); in check_split_1()
1861 xas_set_order(&xas, index, 0); in check_split_1()
1864 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_1) { in check_split_1()
1877 XA_STATE_ORDER(xas, xa, index, new_order); in check_split_2()
1885 xas_set_err(&xas, -ENOMEM); in check_split_2()
1886 XA_BUG_ON(xa, !xas_nomem(&xas, GFP_KERNEL)); in check_split_2()
1888 xas_lock(&xas); in check_split_2()
1889 xas_try_split(&xas, xa, order); in check_split_2()
1892 XA_BUG_ON(xa, !xas_error(&xas) || xas_error(&xas) != -EINVAL); in check_split_2()
1893 xas_unlock(&xas); in check_split_2()
1898 xas_unlock(&xas); in check_split_2()
1908 xas_set_order(&xas, index, 0); in check_split_2()
1911 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_1) { in check_split_2()
1918 xas_destroy(&xas); in check_split_2()
2025 XA_STATE(xas, xa, index); in check_workingset()
2026 xas_set_update(&xas, test_update_node); in check_workingset()
2029 xas_lock(&xas); in check_workingset()
2030 xas_store(&xas, xa_mk_value(0)); in check_workingset()
2031 xas_next(&xas); in check_workingset()
2032 xas_store(&xas, xa_mk_value(1)); in check_workingset()
2033 xas_unlock(&xas); in check_workingset()
2034 } while (xas_nomem(&xas, GFP_KERNEL)); in check_workingset()
2038 xas_lock(&xas); in check_workingset()
2039 xas_next(&xas); in check_workingset()
2040 xas_store(&xas, &xas); in check_workingset()
2043 xas_store(&xas, xa_mk_value(2)); in check_workingset()
2044 xas_unlock(&xas); in check_workingset()
2062 XA_STATE(xas, xa, 1 << order); in check_account()
2066 xas_load(&xas); in check_account()
2067 XA_BUG_ON(xa, xas.xa_node->count == 0); in check_account()
2068 XA_BUG_ON(xa, xas.xa_node->count > (1 << order)); in check_account()
2069 XA_BUG_ON(xa, xas.xa_node->nr_values != 0); in check_account()
2074 XA_BUG_ON(xa, xas.xa_node->count != xas.xa_node->nr_values * 2); in check_account()
2077 XA_BUG_ON(xa, xas.xa_node->nr_values != 0); in check_account()
2107 XA_STATE(xas, xa, 0); in check_xas_get_order()
2115 xas_set_order(&xas, i << order, order); in check_xas_get_order()
2117 xas_lock(&xas); in check_xas_get_order()
2118 xas_store(&xas, xa_mk_value(i)); in check_xas_get_order()
2119 xas_unlock(&xas); in check_xas_get_order()
2120 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xas_get_order()
2123 xas_set_order(&xas, j, 0); in check_xas_get_order()
2125 xas_load(&xas); in check_xas_get_order()
2126 XA_BUG_ON(xa, xas_get_order(&xas) != order); in check_xas_get_order()
2130 xas_lock(&xas); in check_xas_get_order()
2131 xas_set_order(&xas, i << order, order); in check_xas_get_order()
2132 xas_store(&xas, NULL); in check_xas_get_order()
2133 xas_unlock(&xas); in check_xas_get_order()
2140 XA_STATE(xas, xa, 0); in check_xas_conflict_get_order()
2150 xas_set_order(&xas, i << order, order); in check_xas_conflict_get_order()
2152 xas_lock(&xas); in check_xas_conflict_get_order()
2153 xas_store(&xas, xa_mk_value(i)); in check_xas_conflict_get_order()
2154 xas_unlock(&xas); in check_xas_conflict_get_order()
2155 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xas_conflict_get_order()
2163 xas_set_order(&xas, j + (1 << k), k); in check_xas_conflict_get_order()
2164 xas_lock(&xas); in check_xas_conflict_get_order()
2165 xas_for_each_conflict(&xas, entry) { in check_xas_conflict_get_order()
2167 XA_BUG_ON(xa, xas_get_order(&xas) != order); in check_xas_conflict_get_order()
2171 xas_unlock(&xas); in check_xas_conflict_get_order()
2176 xas_set_order(&xas, (i & ~1UL) << order, order + 1); in check_xas_conflict_get_order()
2177 xas_lock(&xas); in check_xas_conflict_get_order()
2178 xas_for_each_conflict(&xas, entry) { in check_xas_conflict_get_order()
2180 XA_BUG_ON(xa, xas_get_order(&xas) != order); in check_xas_conflict_get_order()
2184 xas_unlock(&xas); in check_xas_conflict_get_order()
2187 xas_set_order(&xas, i << order, order); in check_xas_conflict_get_order()
2188 xas_lock(&xas); in check_xas_conflict_get_order()
2189 xas_store(&xas, NULL); in check_xas_conflict_get_order()
2190 xas_unlock(&xas); in check_xas_conflict_get_order()