# linux2021: adamtsai ## 測驗 α-1 Linux kernel bit rotation operation source: `include/linux/bitops.h`: roll*, rolr* :::warning TODO: Illustrate the use cases inside the Linux kernel. ::: Bit rotation or whatever any of bitwise operation are very essential operations. You can find there are lots of usage in hashcode like SHA, checksum, etc. ## 測驗 α-2 may be, cause there are some discussion in gcc mailing list about the optimization for common constructs of bit operation. FYI, https://gcc.gnu.org/legacy-ml/gcc-patches/2007-11/msg01112.html :::warning TODO: analyze the IR generated by GCC and see if the optimizer really works as expected. ::: ## 測驗 β-1 For power of 2 cases, alignment can be done with bit clear simply. It is a trivial problem. :::warning Can you write an efficient implementation which deals with **any** sizes of alignments? ::: ## 測驗 β-2 There are various power of 2 round up/down macros in Linux kernel. They are used in lots of places. For what I most familier with, block layer or filesytem use them to calculate the maximum size of data they can handle at a time.