Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ocfs2: Remove masklog ML_RESERVATIONS.

Remove mlog(0) from fs/ocfs2/reservations.c and the masklog RESERVATIONS.

Signed-off-by: Tao Ma <boyu.mt@taobao.com>

Tao Ma 2661836e 402b4183

+142 -33
-1
fs/ocfs2/cluster/masklog.c
··· 104 104 define_mask(EXPORT), 105 105 define_mask(QUOTA), 106 106 define_mask(BASTS), 107 - define_mask(RESERVATIONS), 108 107 define_mask(CLUSTER), 109 108 define_mask(ERROR), 110 109 define_mask(NOTICE),
-1
fs/ocfs2/cluster/masklog.h
··· 106 106 #define ML_EXPORT 0x0000000010000000ULL /* ocfs2 export operations */ 107 107 #define ML_QUOTA 0x0000000040000000ULL /* ocfs2 quota operations */ 108 108 #define ML_BASTS 0x0000000100000000ULL /* dlmglue asts and basts */ 109 - #define ML_RESERVATIONS 0x0000000200000000ULL /* ocfs2 alloc reservations */ 110 109 #define ML_CLUSTER 0x0000000400000000ULL /* cluster stack */ 111 110 112 111 /* bits that are infrequently given and frequently matched in the high word */
+116
fs/ocfs2/ocfs2_trace.h
··· 1809 1809 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_rec); 1810 1810 1811 1811 /* End of trace events for fs/ocfs2/xattr.c. */ 1812 + 1813 + /* Trace events for fs/ocfs2/reservations.c. */ 1814 + 1815 + DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resv_insert); 1816 + 1817 + DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_resmap_find_free_bits_begin); 1818 + 1819 + DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resmap_find_free_bits_end); 1820 + 1821 + TRACE_EVENT(ocfs2_resv_find_window_begin, 1822 + TP_PROTO(unsigned int r_start, unsigned int r_end, unsigned int goal, 1823 + unsigned int wanted, int empty_root), 1824 + TP_ARGS(r_start, r_end, goal, wanted, empty_root), 1825 + TP_STRUCT__entry( 1826 + __field(unsigned int, r_start) 1827 + __field(unsigned int, r_end) 1828 + __field(unsigned int, goal) 1829 + __field(unsigned int, wanted) 1830 + __field(int, empty_root) 1831 + ), 1832 + TP_fast_assign( 1833 + __entry->r_start = r_start; 1834 + __entry->r_end = r_end; 1835 + __entry->goal = goal; 1836 + __entry->wanted = wanted; 1837 + __entry->empty_root = empty_root; 1838 + ), 1839 + TP_printk("%u %u %u %u %d", __entry->r_start, __entry->r_end, 1840 + __entry->goal, __entry->wanted, __entry->empty_root) 1841 + ); 1842 + 1843 + DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resv_find_window_prev); 1844 + 1845 + DEFINE_OCFS2_INT_INT_EVENT(ocfs2_resv_find_window_next); 1846 + 1847 + DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_cannibalize_resv_begin); 1848 + 1849 + TRACE_EVENT(ocfs2_cannibalize_resv_end, 1850 + TP_PROTO(unsigned int start, unsigned int end, unsigned int len, 1851 + unsigned int last_start, unsigned int last_len), 1852 + TP_ARGS(start, end, len, last_start, last_len), 1853 + TP_STRUCT__entry( 1854 + __field(unsigned int, start) 1855 + __field(unsigned int, end) 1856 + __field(unsigned int, len) 1857 + __field(unsigned int, last_start) 1858 + __field(unsigned int, last_len) 1859 + ), 1860 + TP_fast_assign( 1861 + __entry->start = start; 1862 + __entry->end = end; 1863 + __entry->len = len; 1864 + __entry->last_start = last_start; 1865 + __entry->last_len = last_len; 1866 + ), 1867 + TP_printk("%u %u %u %u %u", __entry->start, __entry->end, 1868 + __entry->len, __entry->last_start, __entry->last_len) 1869 + ); 1870 + 1871 + DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resmap_resv_bits); 1872 + 1873 + TRACE_EVENT(ocfs2_resmap_claimed_bits_begin, 1874 + TP_PROTO(unsigned int cstart, unsigned int cend, unsigned int clen, 1875 + unsigned int r_start, unsigned int r_end, unsigned int r_len, 1876 + unsigned int last_start, unsigned int last_len), 1877 + TP_ARGS(cstart, cend, clen, r_start, r_end, 1878 + r_len, last_start, last_len), 1879 + TP_STRUCT__entry( 1880 + __field(unsigned int, cstart) 1881 + __field(unsigned int, cend) 1882 + __field(unsigned int, clen) 1883 + __field(unsigned int, r_start) 1884 + __field(unsigned int, r_end) 1885 + __field(unsigned int, r_len) 1886 + __field(unsigned int, last_start) 1887 + __field(unsigned int, last_len) 1888 + ), 1889 + TP_fast_assign( 1890 + __entry->cstart = cstart; 1891 + __entry->cend = cend; 1892 + __entry->clen = clen; 1893 + __entry->r_start = r_start; 1894 + __entry->r_end = r_end; 1895 + __entry->r_len = r_len; 1896 + __entry->last_start = last_start; 1897 + __entry->last_len = last_len; 1898 + ), 1899 + TP_printk("%u %u %u %u %u %u %u %u", 1900 + __entry->cstart, __entry->cend, __entry->clen, 1901 + __entry->r_start, __entry->r_end, __entry->r_len, 1902 + __entry->last_start, __entry->last_len) 1903 + ); 1904 + 1905 + TRACE_EVENT(ocfs2_resmap_claimed_bits_end, 1906 + TP_PROTO(unsigned int start, unsigned int end, unsigned int len, 1907 + unsigned int last_start, unsigned int last_len), 1908 + TP_ARGS(start, end, len, last_start, last_len), 1909 + TP_STRUCT__entry( 1910 + __field(unsigned int, start) 1911 + __field(unsigned int, end) 1912 + __field(unsigned int, len) 1913 + __field(unsigned int, last_start) 1914 + __field(unsigned int, last_len) 1915 + ), 1916 + TP_fast_assign( 1917 + __entry->start = start; 1918 + __entry->end = end; 1919 + __entry->len = len; 1920 + __entry->last_start = last_start; 1921 + __entry->last_len = last_len; 1922 + ), 1923 + TP_printk("%u %u %u %u %u", __entry->start, __entry->end, 1924 + __entry->len, __entry->last_start, __entry->last_len) 1925 + ); 1926 + 1927 + /* End of trace events for fs/ocfs2/reservations.c. */ 1812 1928 #endif /* _TRACE_OCFS2_H */ 1813 1929 1814 1930 /* This part must be outside protection */
+26 -31
fs/ocfs2/reservations.c
··· 30 30 #include <linux/bitops.h> 31 31 #include <linux/list.h> 32 32 33 - #define MLOG_MASK_PREFIX ML_RESERVATIONS 34 33 #include <cluster/masklog.h> 35 34 36 35 #include "ocfs2.h" 36 + #include "ocfs2_trace.h" 37 37 38 38 #ifdef CONFIG_OCFS2_DEBUG_FS 39 39 #define OCFS2_CHECK_RESERVATIONS ··· 321 321 322 322 assert_spin_locked(&resv_lock); 323 323 324 - mlog(0, "Insert reservation start: %u len: %u\n", new->r_start, 325 - new->r_len); 324 + trace_ocfs2_resv_insert(new->r_start, new->r_len); 326 325 327 326 while (*p) { 328 327 parent = *p; ··· 422 423 unsigned int best_start, best_len = 0; 423 424 int offset, start, found; 424 425 425 - mlog(0, "Find %u bits within range (%u, len %u) resmap len: %u\n", 426 - wanted, search_start, search_len, resmap->m_bitmap_len); 426 + trace_ocfs2_resmap_find_free_bits_begin(search_start, search_len, 427 + wanted, resmap->m_bitmap_len); 427 428 428 429 found = best_start = best_len = 0; 429 430 ··· 462 463 *rlen = best_len; 463 464 *rstart = best_start; 464 465 465 - mlog(0, "Found start: %u len: %u\n", best_start, best_len); 466 + trace_ocfs2_resmap_find_free_bits_end(best_start, best_len); 466 467 467 468 return *rlen; 468 469 } ··· 486 487 * - our window should be last in all reservations 487 488 * - need to make sure we don't go past end of bitmap 488 489 */ 489 - 490 - mlog(0, "resv start: %u resv end: %u goal: %u wanted: %u\n", 491 - resv->r_start, ocfs2_resv_end(resv), goal, wanted); 490 + trace_ocfs2_resv_find_window_begin(resv->r_start, ocfs2_resv_end(resv), 491 + goal, wanted, RB_EMPTY_ROOT(root)); 492 492 493 493 assert_spin_locked(&resv_lock); 494 494 ··· 496 498 * Easiest case - empty tree. We can just take 497 499 * whatever window of free bits we want. 498 500 */ 499 - 500 - mlog(0, "Empty root\n"); 501 - 502 501 clen = ocfs2_resmap_find_free_bits(resmap, wanted, goal, 503 502 resmap->m_bitmap_len - goal, 504 503 &cstart, &clen); ··· 519 524 prev_resv = ocfs2_find_resv_lhs(resmap, goal); 520 525 521 526 if (prev_resv == NULL) { 522 - mlog(0, "Goal on LHS of leftmost window\n"); 523 - 524 527 /* 525 528 * A NULL here means that the search code couldn't 526 529 * find a window that starts before goal. ··· 563 570 next_resv = NULL; 564 571 } 565 572 573 + trace_ocfs2_resv_find_window_prev(prev_resv->r_start, 574 + ocfs2_resv_end(prev_resv)); 575 + 566 576 prev = &prev_resv->r_node; 567 577 568 578 /* Now we do a linear search for a window, starting at 'prev_rsv' */ 569 579 while (1) { 570 580 next = rb_next(prev); 571 581 if (next) { 572 - mlog(0, "One more resv found in linear search\n"); 573 582 next_resv = rb_entry(next, 574 583 struct ocfs2_alloc_reservation, 575 584 r_node); ··· 580 585 gap_end = next_resv->r_start - 1; 581 586 gap_len = gap_end - gap_start + 1; 582 587 } else { 583 - mlog(0, "No next node\n"); 584 588 /* 585 589 * We're at the rightmost edge of the 586 590 * tree. See if a reservation between this ··· 590 596 gap_end = resmap->m_bitmap_len - 1; 591 597 } 592 598 599 + trace_ocfs2_resv_find_window_next(next ? next_resv->r_start: -1, 600 + next ? ocfs2_resv_end(next_resv) : -1); 593 601 /* 594 602 * No need to check this gap if we have already found 595 603 * a larger region of free bits. ··· 650 654 lru_resv = list_first_entry(&resmap->m_lru, 651 655 struct ocfs2_alloc_reservation, r_lru); 652 656 653 - mlog(0, "lru resv: start: %u len: %u end: %u\n", lru_resv->r_start, 654 - lru_resv->r_len, ocfs2_resv_end(lru_resv)); 657 + trace_ocfs2_cannibalize_resv_begin(lru_resv->r_start, 658 + lru_resv->r_len, 659 + ocfs2_resv_end(lru_resv)); 655 660 656 661 /* 657 662 * Cannibalize (some or all) of the target reservation and ··· 681 684 resv->r_len = shrink; 682 685 } 683 686 684 - mlog(0, "Reservation now looks like: r_start: %u r_end: %u " 685 - "r_len: %u r_last_start: %u r_last_len: %u\n", 686 - resv->r_start, ocfs2_resv_end(resv), resv->r_len, 687 - resv->r_last_start, resv->r_last_len); 687 + trace_ocfs2_cannibalize_resv_end(resv->r_start, ocfs2_resv_end(resv), 688 + resv->r_len, resv->r_last_start, 689 + resv->r_last_len); 688 690 689 691 ocfs2_resv_insert(resmap, resv); 690 692 } ··· 744 748 if ((resv->r_flags & OCFS2_RESV_FLAG_TMP) || wanted < *clen) 745 749 wanted = *clen; 746 750 747 - mlog(0, "empty reservation, find new window\n"); 748 751 /* 749 752 * Try to get a window here. If it works, we must fall 750 753 * through and test the bitmap . This avoids some ··· 752 757 * that inode. 753 758 */ 754 759 ocfs2_resv_find_window(resmap, resv, wanted); 760 + trace_ocfs2_resmap_resv_bits(resv->r_start, resv->r_len); 755 761 } 756 762 757 763 BUG_ON(ocfs2_resv_empty(resv)); ··· 809 813 810 814 spin_lock(&resv_lock); 811 815 812 - mlog(0, "claim bits: cstart: %u cend: %u clen: %u r_start: %u " 813 - "r_end: %u r_len: %u, r_last_start: %u r_last_len: %u\n", 814 - cstart, cend, clen, resv->r_start, ocfs2_resv_end(resv), 815 - resv->r_len, resv->r_last_start, resv->r_last_len); 816 + trace_ocfs2_resmap_claimed_bits_begin(cstart, cend, clen, resv->r_start, 817 + ocfs2_resv_end(resv), resv->r_len, 818 + resv->r_last_start, 819 + resv->r_last_len); 816 820 817 821 BUG_ON(cstart < resv->r_start); 818 822 BUG_ON(cstart > ocfs2_resv_end(resv)); ··· 829 833 if (!ocfs2_resv_empty(resv)) 830 834 ocfs2_resv_mark_lru(resmap, resv); 831 835 832 - mlog(0, "Reservation now looks like: r_start: %u r_end: %u " 833 - "r_len: %u r_last_start: %u r_last_len: %u\n", 834 - resv->r_start, ocfs2_resv_end(resv), resv->r_len, 835 - resv->r_last_start, resv->r_last_len); 836 + trace_ocfs2_resmap_claimed_bits_end(resv->r_start, ocfs2_resv_end(resv), 837 + resv->r_len, resv->r_last_start, 838 + resv->r_last_len); 836 839 837 840 ocfs2_check_resmap(resmap); 838 841