Lines Matching +full:1 +full:eb
16 #define PROCESS_UNLOCK (1 << 0)
17 #define PROCESS_RELEASE (1 << 1)
18 #define PROCESS_TEST_LOCKED (1 << 2)
103 state->end + 1 - state->start, flags_str); in dump_extent_io_tree()
162 set_extent_bit(tmp, 0, sectorsize - 1, EXTENT_DELALLOC, NULL); in test_find_delalloc()
164 end = start + PAGE_SIZE - 1; in test_find_delalloc()
171 if (start != 0 || end != (sectorsize - 1)) { in test_find_delalloc()
173 sectorsize - 1, start, end); in test_find_delalloc()
193 set_extent_bit(tmp, sectorsize, max_bytes - 1, EXTENT_DELALLOC, NULL); in test_find_delalloc()
195 end = start + PAGE_SIZE - 1; in test_find_delalloc()
202 if (start != test_start || end != max_bytes - 1) { in test_find_delalloc()
204 test_start, max_bytes - 1, start, end); in test_find_delalloc()
229 end = start + PAGE_SIZE - 1; in test_find_delalloc()
236 if (end != test_start + PAGE_SIZE - 1) { in test_find_delalloc()
248 set_extent_bit(tmp, max_bytes, total_dirty - 1, EXTENT_DELALLOC, NULL); in test_find_delalloc()
250 end = start + PAGE_SIZE - 1; in test_find_delalloc()
257 if (start != test_start || end != total_dirty - 1) { in test_find_delalloc()
259 test_start, total_dirty - 1, start, end); in test_find_delalloc()
285 end = start + PAGE_SIZE - 1; in test_find_delalloc()
298 if (start != test_start && end != test_start + PAGE_SIZE - 1) { in test_find_delalloc()
300 test_start, test_start + PAGE_SIZE - 1, start, end); in test_find_delalloc()
312 clear_extent_bits(tmp, 0, total_dirty - 1, (unsigned)-1); in test_find_delalloc()
316 process_page_range(inode, 0, total_dirty - 1, in test_find_delalloc()
322 static int check_eb_bitmap(unsigned long *bitmap, struct extent_buffer *eb) in check_eb_bitmap() argument
326 for (i = 0; i < eb->len * BITS_PER_BYTE; i++) { in check_eb_bitmap()
330 bit1 = !!extent_buffer_test_bit(eb, 0, i); in check_eb_bitmap()
335 read_extent_buffer(eb, &has, i / BITS_PER_BYTE, 1); in check_eb_bitmap()
344 bit1 = !!extent_buffer_test_bit(eb, i / BITS_PER_BYTE, in check_eb_bitmap()
350 read_extent_buffer(eb, &has, i / BITS_PER_BYTE, 1); in check_eb_bitmap()
364 struct extent_buffer *eb, in test_bitmap_set() argument
371 extent_buffer_bitmap_set(eb, byte_start, bit_start, bit_len); in test_bitmap_set()
372 ret = check_eb_bitmap(bitmap, eb); in test_bitmap_set()
379 struct extent_buffer *eb, in test_bitmap_clear() argument
386 extent_buffer_bitmap_clear(eb, byte_start, bit_start, bit_len); in test_bitmap_clear()
387 ret = check_eb_bitmap(bitmap, eb); in test_bitmap_clear()
392 static int __test_eb_bitmaps(unsigned long *bitmap, struct extent_buffer *eb) in __test_eb_bitmaps() argument
395 unsigned long byte_len = eb->len; in __test_eb_bitmaps()
399 ret = test_bitmap_clear("clear all run 1", bitmap, eb, 0, 0, in __test_eb_bitmaps()
404 ret = test_bitmap_set("set all", bitmap, eb, 0, 0, byte_len * BITS_PER_BYTE); in __test_eb_bitmaps()
408 ret = test_bitmap_clear("clear all run 2", bitmap, eb, 0, 0, in __test_eb_bitmaps()
413 ret = test_bitmap_set("same byte set", bitmap, eb, 0, 2, 4); in __test_eb_bitmaps()
417 ret = test_bitmap_clear("same byte partial clear", bitmap, eb, 0, 4, 1); in __test_eb_bitmaps()
421 ret = test_bitmap_set("cross byte set", bitmap, eb, 2, 4, 8); in __test_eb_bitmaps()
425 ret = test_bitmap_set("cross multi byte set", bitmap, eb, 4, 4, 24); in __test_eb_bitmaps()
429 ret = test_bitmap_clear("cross byte clear", bitmap, eb, 2, 6, 4); in __test_eb_bitmaps()
433 ret = test_bitmap_clear("cross multi byte clear", bitmap, eb, 4, 6, 20); in __test_eb_bitmaps()
439 ret = test_bitmap_set("cross page set", bitmap, eb, in __test_eb_bitmaps()
445 ret = test_bitmap_set("cross page set all", bitmap, eb, 0, 0, in __test_eb_bitmaps()
450 ret = test_bitmap_clear("cross page clear", bitmap, eb, in __test_eb_bitmaps()
462 ret = test_bitmap_clear("clear all run 3", bitmap, eb, 0, 0, in __test_eb_bitmaps()
470 if (x & (1U << j)) { in __test_eb_bitmaps()
471 bitmap_set(bitmap, i * 32 + j, 1); in __test_eb_bitmaps()
472 extent_buffer_bitmap_set(eb, 0, i * 32 + j, 1); in __test_eb_bitmaps()
477 ret = check_eb_bitmap(bitmap, eb); in __test_eb_bitmaps()
490 struct extent_buffer *eb = NULL; in test_eb_bitmaps() local
508 eb = __alloc_dummy_extent_buffer(fs_info, 0, nodesize); in test_eb_bitmaps()
509 if (!eb) { in test_eb_bitmaps()
515 ret = __test_eb_bitmaps(bitmap, eb); in test_eb_bitmaps()
519 free_extent_buffer(eb); in test_eb_bitmaps()
525 eb = __alloc_dummy_extent_buffer(fs_info, sectorsize, nodesize); in test_eb_bitmaps()
526 if (!eb) { in test_eb_bitmaps()
532 ret = __test_eb_bitmaps(bitmap, eb); in test_eb_bitmaps()
534 free_extent_buffer(eb); in test_eb_bitmaps()
552 if (start != 0 || end != -1) { in test_find_first_clear_extent_bit()
559 * Set 1M-4M alloc/discard and 32M-64M thus leaving a hole between in test_find_first_clear_extent_bit()
562 set_extent_bit(&tree, SZ_1M, SZ_4M - 1, in test_find_first_clear_extent_bit()
568 if (start != 0 || end != SZ_1M - 1) { in test_find_first_clear_extent_bit()
575 set_extent_bit(&tree, SZ_32M, SZ_64M - 1, in test_find_first_clear_extent_bit()
584 if (start != SZ_4M || end != SZ_32M - 1) { in test_find_first_clear_extent_bit()
597 if (start != SZ_4M || end != SZ_32M - 1) { in test_find_first_clear_extent_bit()
607 set_extent_bit(&tree, SZ_64M, SZ_64M + SZ_8M - 1, CHUNK_ALLOCATED, NULL); in test_find_first_clear_extent_bit()
611 if (start != SZ_64M || end != SZ_64M + SZ_8M - 1) { in test_find_first_clear_extent_bit()
624 if (start != SZ_64M || end != SZ_64M + SZ_8M - 1) { in test_find_first_clear_extent_bit()
632 * and end should be -1 in test_find_first_clear_extent_bit()
634 find_first_clear_extent_bit(&tree, -1, &start, &end, CHUNK_TRIMMED); in test_find_first_clear_extent_bit()
635 if (start != SZ_64M + SZ_8M || end != -1) { in test_find_first_clear_extent_bit()
646 clear_extent_bits(&tree, 0, (u64)-1, CHUNK_TRIMMED | CHUNK_ALLOCATED); in test_find_first_clear_extent_bit()
651 static void dump_eb_and_memory_contents(struct extent_buffer *eb, void *memory, in dump_eb_and_memory_contents() argument
654 for (int i = 0; i < eb->len; i++) { in dump_eb_and_memory_contents()
655 struct page *page = eb->pages[i >> PAGE_SHIFT]; in dump_eb_and_memory_contents()
658 if (memcmp(addr, memory + i, 1) != 0) { in dump_eb_and_memory_contents()
660 test_err("eb and memory diffs at byte %u, eb has 0x%02x memory has 0x%02x", in dump_eb_and_memory_contents()
667 static int verify_eb_and_memory(struct extent_buffer *eb, void *memory, in verify_eb_and_memory() argument
670 for (int i = 0; i < (eb->len >> PAGE_SHIFT); i++) { in verify_eb_and_memory()
671 void *eb_addr = page_address(eb->pages[i]); in verify_eb_and_memory()
674 dump_eb_and_memory_contents(eb, memory, test_name); in verify_eb_and_memory()
685 static void init_eb_and_memory(struct extent_buffer *eb, void *memory) in init_eb_and_memory() argument
687 get_random_bytes(memory, eb->len); in init_eb_and_memory()
688 write_extent_buffer(eb, memory, 0, eb->len); in init_eb_and_memory()
694 struct extent_buffer *eb = NULL; in test_eb_mem_ops() local
713 eb = __alloc_dummy_extent_buffer(fs_info, SZ_1M, nodesize); in test_eb_mem_ops()
714 if (!eb) { in test_eb_mem_ops()
720 init_eb_and_memory(eb, memory); in test_eb_mem_ops()
721 ret = verify_eb_and_memory(eb, memory, "full eb write"); in test_eb_mem_ops()
726 memcpy_extent_buffer(eb, 0, 16, 16); in test_eb_mem_ops()
727 ret = verify_eb_and_memory(eb, memory, "same page non-overlapping memcpy 1"); in test_eb_mem_ops()
732 memcpy_extent_buffer(eb, 0, 2048, 16); in test_eb_mem_ops()
733 ret = verify_eb_and_memory(eb, memory, "same page non-overlapping memcpy 2"); in test_eb_mem_ops()
737 memcpy_extent_buffer(eb, 0, 2048, 2048); in test_eb_mem_ops()
738 ret = verify_eb_and_memory(eb, memory, "same page non-overlapping memcpy 3"); in test_eb_mem_ops()
743 memmove_extent_buffer(eb, 512, 256, 512); in test_eb_mem_ops()
744 ret = verify_eb_and_memory(eb, memory, "same page overlapping memcpy 1"); in test_eb_mem_ops()
749 memmove_extent_buffer(eb, 2048, 512, 2048); in test_eb_mem_ops()
750 ret = verify_eb_and_memory(eb, memory, "same page overlapping memcpy 2"); in test_eb_mem_ops()
754 memmove_extent_buffer(eb, 512, 2048, 2048); in test_eb_mem_ops()
755 ret = verify_eb_and_memory(eb, memory, "same page overlapping memcpy 3"); in test_eb_mem_ops()
761 memcpy_extent_buffer(eb, 0, 4096 - 128, 256); in test_eb_mem_ops()
762 ret = verify_eb_and_memory(eb, memory, "cross page non-overlapping memcpy 1"); in test_eb_mem_ops()
767 memcpy_extent_buffer(eb, 4096 - 128, 4096 + 128, 256); in test_eb_mem_ops()
768 ret = verify_eb_and_memory(eb, memory, "cross page non-overlapping memcpy 2"); in test_eb_mem_ops()
773 memmove_extent_buffer(eb, 4096 - 128, 4096 - 64, 256); in test_eb_mem_ops()
774 ret = verify_eb_and_memory(eb, memory, "cross page overlapping memcpy 1"); in test_eb_mem_ops()
779 memmove_extent_buffer(eb, 4096 - 64, 4096 - 128, 256); in test_eb_mem_ops()
780 ret = verify_eb_and_memory(eb, memory, "cross page overlapping memcpy 2"); in test_eb_mem_ops()
785 free_extent_buffer(eb); in test_eb_mem_ops()