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()
1103 XA_STATE_ORDER(xas, xa, start, order); in __check_store_iter()
1108 xas_lock(&xas); in __check_store_iter()
1109 xas_for_each_conflict(&xas, entry) { in __check_store_iter()
1115 xas_store(&xas, xa_mk_index(start)); in __check_store_iter()
1116 xas_unlock(&xas); in __check_store_iter()
1117 if (xas_nomem(&xas, GFP_KERNEL)) { in __check_store_iter()
1121 XA_BUG_ON(xa, xas_error(&xas)); in __check_store_iter()
1208 XA_STATE(xas, xa, j + index); in check_multi_find_2()
1213 xas_for_each(&xas, entry, ULONG_MAX) { in check_multi_find_2()
1308 XA_STATE(xas, xa, 0); in check_find_3()
1316 xas_set(&xas, j); in check_find_3()
1317 xas_for_each_marked(&xas, entry, k, XA_MARK_0) in check_find_3()
1321 xas.xa_node != XAS_RESTART); in check_find_3()
1365 XA_STATE(xas, xa, 0); in xa_find_entry()
1370 xas_for_each(&xas, entry, ULONG_MAX) { in xa_find_entry()
1371 if (xas_retry(&xas, entry)) in xa_find_entry()
1378 xas_pause(&xas); in xa_find_entry()
1382 return entry ? xas.xa_index : -1; in xa_find_entry()
1419 XA_STATE(xas, xa, 0); in check_pause()
1432 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1440 xas_set(&xas, 0); in check_pause()
1442 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1445 xas_pause(&xas); in check_pause()
1461 xas_set(&xas, 0); in check_pause()
1463 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1474 xas_set(&xas, 1 % (1UL << (order_limit - 1))); in check_pause()
1476 xas_for_each(&xas, entry, ULONG_MAX) { in check_pause()
1480 xas_pause(&xas); in check_pause()
1491 XA_STATE(xas, xa, 0); in check_move_tiny()
1495 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_tiny()
1496 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_tiny()
1500 xas_set(&xas, 0); in check_move_tiny()
1501 XA_BUG_ON(xa, xas_next(&xas) != xa_mk_index(0)); in check_move_tiny()
1502 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_tiny()
1503 xas_set(&xas, 0); in check_move_tiny()
1504 XA_BUG_ON(xa, xas_prev(&xas) != xa_mk_index(0)); in check_move_tiny()
1505 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move_tiny()
1513 XA_STATE(xas, xa, 0); in check_move_max()
1517 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX)); in check_move_max()
1518 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL); in check_move_max()
1521 xas_set(&xas, 0); in check_move_max()
1523 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX)); in check_move_max()
1524 xas_pause(&xas); in check_move_max()
1525 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL); in check_move_max()
1534 XA_STATE(xas, xa, 0); in check_move_small()
1542 void *entry = xas_next(&xas); in check_move_small()
1544 XA_BUG_ON(xa, xas.xa_node == XAS_RESTART); in check_move_small()
1545 XA_BUG_ON(xa, xas.xa_index != i); in check_move_small()
1551 xas_next(&xas); in check_move_small()
1552 XA_BUG_ON(xa, xas.xa_index != i); in check_move_small()
1555 void *entry = xas_prev(&xas); in check_move_small()
1558 XA_BUG_ON(xa, xas.xa_node == XAS_RESTART); in check_move_small()
1559 XA_BUG_ON(xa, xas.xa_index != i); in check_move_small()
1566 xas_set(&xas, ULONG_MAX); in check_move_small()
1567 XA_BUG_ON(xa, xas_next(&xas) != NULL); in check_move_small()
1568 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move_small()
1569 XA_BUG_ON(xa, xas_next(&xas) != xa_mk_value(0)); in check_move_small()
1570 XA_BUG_ON(xa, xas.xa_index != 0); in check_move_small()
1571 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move_small()
1572 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move_small()
1582 XA_STATE(xas, xa, (1 << 16) - 1); in check_move()
1590 void *entry = xas_prev(&xas); in check_move()
1593 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1596 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move()
1597 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move()
1600 void *entry = xas_next(&xas); in check_move()
1602 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1610 i = xas.xa_index; in check_move()
1614 void *entry = xas_prev(&xas); in check_move()
1620 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1623 XA_BUG_ON(xa, xas_prev(&xas) != NULL); in check_move()
1624 XA_BUG_ON(xa, xas.xa_index != ULONG_MAX); in check_move()
1627 void *entry = xas_next(&xas); in check_move()
1632 XA_BUG_ON(xa, i != xas.xa_index); in check_move()
1652 XA_STATE_ORDER(xas, xa, index, order); in xa_store_many_order()
1656 xas_lock(&xas); in xa_store_many_order()
1657 XA_BUG_ON(xa, xas_find_conflict(&xas)); in xa_store_many_order()
1658 xas_create_range(&xas); in xa_store_many_order()
1659 if (xas_error(&xas)) in xa_store_many_order()
1662 XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(index + i))); in xa_store_many_order()
1663 xas_next(&xas); in xa_store_many_order()
1666 xas_unlock(&xas); in xa_store_many_order()
1667 } while (xas_nomem(&xas, GFP_KERNEL)); in xa_store_many_order()
1669 XA_BUG_ON(xa, xas_error(&xas)); in xa_store_many_order()
1697 XA_STATE(xas, NULL, 0); in check_create_range_3()
1698 xas_set_err(&xas, -EEXIST); in check_create_range_3()
1699 xas_create_range(&xas); in check_create_range_3()
1700 XA_BUG_ON(NULL, xas_error(&xas) != -EEXIST); in check_create_range_3()
1706 XA_STATE_ORDER(xas, xa, index, order); in check_create_range_4()
1707 unsigned long base = xas.xa_index; in check_create_range_4()
1712 xas_lock(&xas); in check_create_range_4()
1713 xas_create_range(&xas); in check_create_range_4()
1714 if (xas_error(&xas)) in check_create_range_4()
1717 void *old = xas_store(&xas, xa_mk_index(base + i)); in check_create_range_4()
1718 if (xas.xa_index == index) in check_create_range_4()
1722 xas_next(&xas); in check_create_range_4()
1725 xas_unlock(&xas); in check_create_range_4()
1726 } while (xas_nomem(&xas, GFP_KERNEL)); in check_create_range_4()
1728 XA_BUG_ON(xa, xas_error(&xas)); in check_create_range_4()
1738 XA_STATE_ORDER(xas, xa, index, order); in check_create_range_5()
1745 xas_lock(&xas); in check_create_range_5()
1746 xas_create_range(&xas); in check_create_range_5()
1747 xas_unlock(&xas); in check_create_range_5()
1748 } while (xas_nomem(&xas, GFP_KERNEL)); in check_create_range_5()
1826 XA_STATE_ORDER(xas, xa, index, new_order); in check_split_1()
1833 xas_split_alloc(&xas, xa, order, GFP_KERNEL); in check_split_1()
1834 xas_lock(&xas); in check_split_1()
1835 xas_split(&xas, xa, order); in check_split_1()
1838 xas_unlock(&xas); in check_split_1()
1848 xas_set_order(&xas, index, 0); in check_split_1()
1851 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_1) { in check_split_1()
1864 XA_STATE_ORDER(xas, xa, index, new_order); in check_split_2()
1872 xas_set_err(&xas, -ENOMEM); in check_split_2()
1873 XA_BUG_ON(xa, !xas_nomem(&xas, GFP_KERNEL)); in check_split_2()
1875 xas_lock(&xas); in check_split_2()
1876 xas_try_split(&xas, xa, order); in check_split_2()
1879 XA_BUG_ON(xa, !xas_error(&xas) || xas_error(&xas) != -EINVAL); in check_split_2()
1880 xas_unlock(&xas); in check_split_2()
1885 xas_unlock(&xas); in check_split_2()
1895 xas_set_order(&xas, index, 0); in check_split_2()
1898 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_1) { in check_split_2()
1905 xas_destroy(&xas); in check_split_2()
2012 XA_STATE(xas, xa, index); in check_workingset()
2013 xas_set_update(&xas, test_update_node); in check_workingset()
2016 xas_lock(&xas); in check_workingset()
2017 xas_store(&xas, xa_mk_value(0)); in check_workingset()
2018 xas_next(&xas); in check_workingset()
2019 xas_store(&xas, xa_mk_value(1)); in check_workingset()
2020 xas_unlock(&xas); in check_workingset()
2021 } while (xas_nomem(&xas, GFP_KERNEL)); in check_workingset()
2025 xas_lock(&xas); in check_workingset()
2026 xas_next(&xas); in check_workingset()
2027 xas_store(&xas, &xas); in check_workingset()
2030 xas_store(&xas, xa_mk_value(2)); in check_workingset()
2031 xas_unlock(&xas); in check_workingset()
2049 XA_STATE(xas, xa, 1 << order); in check_account()
2053 xas_load(&xas); in check_account()
2054 XA_BUG_ON(xa, xas.xa_node->count == 0); in check_account()
2055 XA_BUG_ON(xa, xas.xa_node->count > (1 << order)); in check_account()
2056 XA_BUG_ON(xa, xas.xa_node->nr_values != 0); in check_account()
2061 XA_BUG_ON(xa, xas.xa_node->count != xas.xa_node->nr_values * 2); in check_account()
2064 XA_BUG_ON(xa, xas.xa_node->nr_values != 0); in check_account()
2094 XA_STATE(xas, xa, 0); in check_xas_get_order()
2102 xas_set_order(&xas, i << order, order); in check_xas_get_order()
2104 xas_lock(&xas); in check_xas_get_order()
2105 xas_store(&xas, xa_mk_value(i)); in check_xas_get_order()
2106 xas_unlock(&xas); in check_xas_get_order()
2107 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xas_get_order()
2110 xas_set_order(&xas, j, 0); in check_xas_get_order()
2112 xas_load(&xas); in check_xas_get_order()
2113 XA_BUG_ON(xa, xas_get_order(&xas) != order); in check_xas_get_order()
2117 xas_lock(&xas); in check_xas_get_order()
2118 xas_set_order(&xas, i << order, order); in check_xas_get_order()
2119 xas_store(&xas, NULL); in check_xas_get_order()
2120 xas_unlock(&xas); in check_xas_get_order()
2127 XA_STATE(xas, xa, 0); in check_xas_conflict_get_order()
2137 xas_set_order(&xas, i << order, order); in check_xas_conflict_get_order()
2139 xas_lock(&xas); in check_xas_conflict_get_order()
2140 xas_store(&xas, xa_mk_value(i)); in check_xas_conflict_get_order()
2141 xas_unlock(&xas); in check_xas_conflict_get_order()
2142 } while (xas_nomem(&xas, GFP_KERNEL)); in check_xas_conflict_get_order()
2150 xas_set_order(&xas, j + (1 << k), k); in check_xas_conflict_get_order()
2151 xas_lock(&xas); in check_xas_conflict_get_order()
2152 xas_for_each_conflict(&xas, entry) { in check_xas_conflict_get_order()
2154 XA_BUG_ON(xa, xas_get_order(&xas) != order); in check_xas_conflict_get_order()
2158 xas_unlock(&xas); in check_xas_conflict_get_order()
2163 xas_set_order(&xas, (i & ~1UL) << order, order + 1); 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()
2174 xas_set_order(&xas, i << order, order); in check_xas_conflict_get_order()
2175 xas_lock(&xas); in check_xas_conflict_get_order()
2176 xas_store(&xas, NULL); in check_xas_conflict_get_order()
2177 xas_unlock(&xas); in check_xas_conflict_get_order()